yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
yaze::cli::GeminiAIService Class Reference

#include <gemini_ai_service.h>

Inheritance diagram for yaze::cli::GeminiAIService:
Collaboration diagram for yaze::cli::GeminiAIService:

Public Member Functions

 GeminiAIService (const GeminiConfig &config)
 
void SetRomContext (Rom *rom) override
 
absl::StatusOr< AgentResponseGenerateResponse (const std::string &prompt) override
 
absl::StatusOr< AgentResponseGenerateResponse (const std::vector< agent::ChatMessage > &history) override
 
absl::Status CheckAvailability ()
 
void EnableFunctionCalling (bool enable=true)
 
std::vector< std::string > GetAvailableTools () const
 
absl::StatusOr< AgentResponseGenerateMultimodalResponse (const std::string &image_path, const std::string &prompt)
 
- Public Member Functions inherited from yaze::cli::AIService
virtual ~AIService ()=default
 

Private Member Functions

std::string BuildSystemInstruction ()
 
std::string BuildFunctionCallSchemas ()
 
absl::StatusOr< AgentResponseParseGeminiResponse (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_
 

Detailed Description

Definition at line 30 of file gemini_ai_service.h.

Constructor & Destructor Documentation

◆ GeminiAIService()

Member Function Documentation

◆ SetRomContext()

void yaze::cli::GeminiAIService::SetRomContext ( Rom rom)
overridevirtual

Reimplemented from yaze::cli::AIService.

Definition at line 183 of file gemini_ai_service.cc.

References prompt_builder_, and yaze::cli::PromptBuilder::SetRom().

Here is the call graph for this function:

◆ GenerateResponse() [1/2]

absl::StatusOr< AgentResponse > yaze::cli::GeminiAIService::GenerateResponse ( const std::string &  prompt)
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().

Here is the call graph for this function:

◆ GenerateResponse() [2/2]

◆ CheckAvailability()

absl::Status yaze::cli::GeminiAIService::CheckAvailability ( )

◆ EnableFunctionCalling()

void yaze::cli::GeminiAIService::EnableFunctionCalling ( bool  enable = true)

Definition at line 120 of file gemini_ai_service.cc.

References function_calling_enabled_.

◆ GetAvailableTools()

std::vector< std::string > yaze::cli::GeminiAIService::GetAvailableTools ( ) const

Definition at line 124 of file gemini_ai_service.cc.

◆ GenerateMultimodalResponse()

◆ BuildSystemInstruction()

std::string yaze::cli::GeminiAIService::BuildSystemInstruction ( )
private

Definition at line 177 of file gemini_ai_service.cc.

References yaze::cli::PromptBuilder::BuildSystemInstruction(), and prompt_builder_.

Referenced by GeminiAIService().

Here is the call graph for this function:

◆ BuildFunctionCallSchemas()

std::string yaze::cli::GeminiAIService::BuildFunctionCallSchemas ( )
private

◆ ParseGeminiResponse()

◆ EncodeImageToBase64()

absl::StatusOr< std::string > yaze::cli::GeminiAIService::EncodeImageToBase64 ( const std::string &  image_path) const
private

Definition at line 618 of file gemini_ai_service.cc.

Referenced by GenerateMultimodalResponse().

Member Data Documentation

◆ function_calling_enabled_

bool yaze::cli::GeminiAIService::function_calling_enabled_ = true
private

Definition at line 62 of file gemini_ai_service.h.

Referenced by EnableFunctionCalling(), GeminiAIService(), and GenerateResponse().

◆ config_

◆ prompt_builder_

PromptBuilder yaze::cli::GeminiAIService::prompt_builder_
private

The documentation for this class was generated from the following files: