1#ifndef YAZE_SRC_CLI_ANTHROPIC_AI_SERVICE_H_
2#define YAZE_SRC_CLI_ANTHROPIC_AI_SERVICE_H_
7#include "absl/status/status.h"
8#include "absl/status/statusor.h"
12#ifdef YAZE_AI_RUNTIME_AVAILABLE
21 std::string
model =
"claude-3-5-sonnet-20241022";
33#ifdef YAZE_AI_RUNTIME_AVAILABLE
35class AnthropicAIService :
public AIService {
42 const std::string& prompt)
override;
44 const std::vector<agent::ChatMessage>& history)
override;
59 std::string BuildSystemInstruction();
60 absl::StatusOr<AgentResponse> ParseAnthropicResponse(
61 const std::string& response_body);
63 bool function_calling_enabled_ =
true;
65 AnthropicConfig config_;
66 PromptBuilder prompt_builder_;
77 const std::string& prompt)
override {
78 return absl::FailedPreconditionError(
79 "Anthropic AI runtime is disabled (prompt: " + prompt +
")");
82 const std::vector<agent::ChatMessage>&)
override {
83 return absl::FailedPreconditionError(
"Anthropic AI runtime is disabled");
86 return absl::FailedPreconditionError(
"Anthropic AI runtime is disabled");
91 return absl::FailedPreconditionError(
"Anthropic 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::string &prompt) override
absl::StatusOr< std::vector< ModelInfo > > ListAvailableModels() override
absl::StatusOr< AgentResponse > GenerateResponse(const std::vector< agent::ChatMessage > &) override
std::vector< std::string > GetAvailableTools() const
std::string GetProviderName() const override
absl::Status CheckAvailability()
void EnableFunctionCalling(bool)
void SetRomContext(Rom *) override
AnthropicAIService(const AnthropicConfig &)
constexpr char kProviderAnthropic[]
AnthropicConfig(const std::string &key)
bool use_function_calling
std::string prompt_version
AnthropicConfig()=default
std::string system_instruction