1#ifndef YAZE_SRC_CLI_OPENAI_AI_SERVICE_H_
2#define YAZE_SRC_CLI_OPENAI_AI_SERVICE_H_
7#include "absl/status/status.h"
8#include "absl/status/statusor.h"
11#ifdef YAZE_AI_RUNTIME_AVAILABLE
20 std::string
model =
"gpt-4o-mini";
32#ifdef YAZE_AI_RUNTIME_AVAILABLE
34class OpenAIAIService :
public AIService {
41 const std::string& prompt)
override;
43 const std::vector<agent::ChatMessage>& history)
override;
58 std::string BuildSystemInstruction();
59 std::string BuildFunctionCallSchemas();
60 absl::StatusOr<AgentResponse> ParseOpenAIResponse(
61 const std::string& response_body);
63 bool function_calling_enabled_ =
true;
66 PromptBuilder prompt_builder_;
77 const std::string& prompt)
override {
78 return absl::FailedPreconditionError(
79 "OpenAI AI runtime is disabled (prompt: " + prompt +
")");
82 const std::vector<agent::ChatMessage>&)
override {
83 return absl::FailedPreconditionError(
"OpenAI AI runtime is disabled");
86 return absl::FailedPreconditionError(
"OpenAI AI runtime is disabled");
91 return absl::FailedPreconditionError(
"OpenAI AI runtime is disabled");
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
absl::StatusOr< AgentResponse > GenerateResponse(const std::vector< agent::ChatMessage > &) override
absl::StatusOr< AgentResponse > GenerateResponse(const std::string &prompt) override
absl::StatusOr< std::vector< ModelInfo > > ListAvailableModels() override
void SetRomContext(Rom *) override
std::string GetProviderName() const override
absl::Status CheckAvailability()
void EnableFunctionCalling(bool)
OpenAIAIService(const OpenAIConfig &)
std::vector< std::string > GetAvailableTools() const
bool use_function_calling
OpenAIConfig(const std::string &key)
std::string prompt_version
std::string system_instruction