#include <gemini_ai_service.h>
Public Member Functions | |
GeminiAIService (const GeminiConfig &config) | |
void | SetRomContext (Rom *rom) override |
absl::StatusOr< AgentResponse > | GenerateResponse (const std::string &prompt) override |
absl::StatusOr< AgentResponse > | GenerateResponse (const std::vector< agent::ChatMessage > &history) override |
absl::Status | CheckAvailability () |
void | EnableFunctionCalling (bool enable=true) |
std::vector< std::string > | GetAvailableTools () const |
absl::StatusOr< AgentResponse > | GenerateMultimodalResponse (const std::string &image_path, const std::string &prompt) |
![]() | |
virtual | ~AIService ()=default |
Private Member Functions | |
std::string | BuildSystemInstruction () |
std::string | BuildFunctionCallSchemas () |
absl::StatusOr< AgentResponse > | ParseGeminiResponse (const std::string &response_body) |
absl::StatusOr< std::string > | EncodeImageToBase64 (const std::string &image_path) const |
Private Attributes | |
bool | function_calling_enabled_ = true |
GeminiConfig | config_ |
PromptBuilder | prompt_builder_ |
Definition at line 30 of file gemini_ai_service.h.
|
explicit |
Definition at line 45 of file gemini_ai_service.cc.
References BuildSystemInstruction(), yaze::cli::PromptBuilder::BuildSystemInstructionWithExamples(), config_, yaze::util::PlatformPaths::FindAsset(), function_calling_enabled_, yaze::cli::PromptBuilder::LoadResourceCatalogue(), prompt_builder_, yaze::cli::GeminiConfig::prompt_version, yaze::cli::GeminiConfig::system_instruction, yaze::cli::GeminiConfig::use_enhanced_prompting, and yaze::cli::GeminiConfig::verbose.
|
overridevirtual |
Reimplemented from yaze::cli::AIService.
Definition at line 183 of file gemini_ai_service.cc.
References prompt_builder_, and yaze::cli::PromptBuilder::SetRom().
|
overridevirtual |
Implements yaze::cli::AIService.
Definition at line 270 of file gemini_ai_service.cc.
References GenerateResponse(), and yaze::cli::agent::ChatMessage::kUser.
Referenced by GenerateResponse().
|
overridevirtual |
Implements yaze::cli::AIService.
Definition at line 275 of file gemini_ai_service.cc.
References yaze::cli::GeminiConfig::api_key, BuildFunctionCallSchemas(), yaze::cli::PromptBuilder::BuildPromptFromHistory(), config_, function_calling_enabled_, yaze::cli::agent::ChatMessage::kAgent, yaze::cli::agent::ChatMessage::kUser, yaze::cli::GeminiConfig::max_output_tokens, yaze::cli::GeminiConfig::model, ParseGeminiResponse(), prompt_builder_, yaze::cli::GeminiConfig::system_instruction, yaze::cli::GeminiConfig::temperature, and yaze::cli::GeminiConfig::verbose.
absl::Status yaze::cli::GeminiAIService::CheckAvailability | ( | ) |
Definition at line 187 of file gemini_ai_service.cc.
References yaze::cli::GeminiConfig::api_key, config_, yaze::cli::GeminiConfig::model, and yaze::cli::GeminiConfig::verbose.
void yaze::cli::GeminiAIService::EnableFunctionCalling | ( | bool | enable = true | ) |
Definition at line 120 of file gemini_ai_service.cc.
References function_calling_enabled_.
std::vector< std::string > yaze::cli::GeminiAIService::GetAvailableTools | ( | ) | const |
Definition at line 124 of file gemini_ai_service.cc.
absl::StatusOr< AgentResponse > yaze::cli::GeminiAIService::GenerateMultimodalResponse | ( | const std::string & | image_path, |
const std::string & | prompt | ||
) |
Definition at line 686 of file gemini_ai_service.cc.
References yaze::cli::GeminiConfig::api_key, config_, EncodeImageToBase64(), yaze::cli::GeminiConfig::max_output_tokens, yaze::cli::GeminiConfig::model, ParseGeminiResponse(), yaze::cli::GeminiConfig::temperature, and yaze::cli::GeminiConfig::verbose.
Referenced by yaze::cli::ai::VisionActionRefiner::AnalyzeScreenshot(), yaze::cli::ai::VisionActionRefiner::ExtractVisibleWidgets(), yaze::editor::EditorManager::Initialize(), yaze::cli::ai::VisionActionRefiner::LocateUIElement(), yaze::test::TEST_F(), yaze::test::TEST_F(), yaze::test::TEST_F(), yaze::test::TEST_F(), yaze::test::TEST_F(), and yaze::cli::ai::VisionActionRefiner::VerifyAction().
|
private |
Definition at line 177 of file gemini_ai_service.cc.
References yaze::cli::PromptBuilder::BuildSystemInstruction(), and prompt_builder_.
Referenced by GeminiAIService().
|
private |
Definition at line 136 of file gemini_ai_service.cc.
References yaze::cli::PromptBuilder::BuildFunctionCallSchemas(), config_, yaze::util::PlatformPaths::FindAsset(), prompt_builder_, and yaze::cli::GeminiConfig::verbose.
Referenced by GenerateResponse().
|
private |
Definition at line 467 of file gemini_ai_service.cc.
References yaze::cli::ToolCall::args, yaze::cli::AgentResponse::commands, config_, yaze::cli::AgentResponse::reasoning, yaze::cli::AgentResponse::text_response, yaze::cli::AgentResponse::tool_calls, yaze::cli::ToolCall::tool_name, and yaze::cli::GeminiConfig::verbose.
Referenced by GenerateMultimodalResponse(), and GenerateResponse().
|
private |
Definition at line 618 of file gemini_ai_service.cc.
Referenced by GenerateMultimodalResponse().
|
private |
Definition at line 62 of file gemini_ai_service.h.
Referenced by EnableFunctionCalling(), GeminiAIService(), and GenerateResponse().
|
private |
Definition at line 64 of file gemini_ai_service.h.
Referenced by BuildFunctionCallSchemas(), CheckAvailability(), GeminiAIService(), GenerateMultimodalResponse(), GenerateResponse(), and ParseGeminiResponse().
|
private |
Definition at line 65 of file gemini_ai_service.h.
Referenced by BuildFunctionCallSchemas(), BuildSystemInstruction(), GeminiAIService(), GenerateResponse(), and SetRomContext().