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"
12#ifdef YAZE_AI_RUNTIME_AVAILABLE
22 "https://api.openai.com";
23 std::string
model =
"gpt-4o-mini";
35#ifdef YAZE_AI_RUNTIME_AVAILABLE
37class OpenAIAIService :
public AIService {
44 const std::string& prompt)
override;
46 const std::vector<agent::ChatMessage>& history)
override;
61 std::string BuildSystemInstruction();
62 absl::StatusOr<AgentResponse> ParseOpenAIResponse(
63 const std::string& response_body);
65 bool function_calling_enabled_ =
true;
68 PromptBuilder prompt_builder_;
79 const std::string& prompt)
override {
80 return absl::FailedPreconditionError(
81 "OpenAI AI runtime is disabled (prompt: " + prompt +
")");
84 const std::vector<agent::ChatMessage>&)
override {
85 return absl::FailedPreconditionError(
"OpenAI AI runtime is disabled");
88 return absl::FailedPreconditionError(
"OpenAI AI runtime is disabled");
93 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
constexpr char kProviderOpenAi[]
bool use_function_calling
OpenAIConfig(const std::string &key)
std::string prompt_version
std::string system_instruction