yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
ai_service.h
Go to the documentation of this file.
1#ifndef YAZE_SRC_CLI_SERVICE_AI_AI_SERVICE_H_
2#define YAZE_SRC_CLI_SERVICE_AI_AI_SERVICE_H_
3
4#include <memory>
5#include <string>
6#include <vector>
7
8#include "absl/status/statusor.h"
10
11namespace yaze {
12class Rom;
13
14namespace cli {
15namespace agent {
16struct ChatMessage;
17}
18// Abstract interface for AI services
19class AIService {
20 public:
21 virtual ~AIService() = default;
22
23 // Provide the AI service with the active ROM so prompts can include
24 // project-specific context.
25 virtual void SetRomContext(Rom* rom) { (void)rom; }
26
27 // Generate a response from a single prompt.
28 virtual absl::StatusOr<AgentResponse> GenerateResponse(
29 const std::string& prompt) = 0;
30
31 // Generate a response from a conversation history.
32 virtual absl::StatusOr<AgentResponse> GenerateResponse(
33 const std::vector<agent::ChatMessage>& history) = 0;
34};
35
36// Mock implementation for testing
37class MockAIService : public AIService {
38 public:
39 void SetRomContext(Rom* rom) override { (void)rom; }
40 absl::StatusOr<AgentResponse> GenerateResponse(
41 const std::string& prompt) override;
42 absl::StatusOr<AgentResponse> GenerateResponse(
43 const std::vector<agent::ChatMessage>& history) override;
44};
45
46} // namespace cli
47} // namespace yaze
48
49#endif // YAZE_SRC_CLI_SERVICE_AI_AI_SERVICE_H_
The Rom class is used to load, save, and modify Rom data.
Definition rom.h:71
virtual ~AIService()=default
virtual absl::StatusOr< AgentResponse > GenerateResponse(const std::vector< agent::ChatMessage > &history)=0
virtual absl::StatusOr< AgentResponse > GenerateResponse(const std::string &prompt)=0
virtual void SetRomContext(Rom *rom)
Definition ai_service.h:25
void SetRomContext(Rom *rom) override
Definition ai_service.h:39
absl::StatusOr< AgentResponse > GenerateResponse(const std::string &prompt) override
Definition ai_service.cc:89
Main namespace for the application.