1#ifndef YAZE_SRC_CLI_GEMINI_AI_SERVICE_H_
2#define YAZE_SRC_CLI_GEMINI_AI_SERVICE_H_
7#include "absl/status/status.h"
8#include "absl/status/statusor.h"
17 std::string
model =
"gemini-2.5-flash";
37 const std::string& prompt)
override;
39 const std::vector<agent::ChatMessage>& history)
override;
50 const std::string& image_path,
const std::string& prompt);
56 const std::string& response_body);
60 const std::string& image_path)
const;
The Rom class is used to load, save, and modify Rom data.
absl::StatusOr< AgentResponse > GenerateMultimodalResponse(const std::string &image_path, const std::string &prompt)
absl::Status CheckAvailability()
std::string BuildFunctionCallSchemas()
void EnableFunctionCalling(bool enable=true)
std::vector< std::string > GetAvailableTools() const
std::string BuildSystemInstruction()
void SetRomContext(Rom *rom) override
absl::StatusOr< std::string > EncodeImageToBase64(const std::string &image_path) const
bool function_calling_enabled_
absl::StatusOr< AgentResponse > ParseGeminiResponse(const std::string &response_body)
PromptBuilder prompt_builder_
absl::StatusOr< AgentResponse > GenerateResponse(const std::string &prompt) override
Main namespace for the application.
bool use_function_calling
std::string prompt_version
GeminiConfig(const std::string &key)
bool use_enhanced_prompting
std::string system_instruction