🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
OpenAI.hpp
浏览该文件的文档.
1
19
20#pragma once
21
22#include "AstGlobal.h"
23#include "AstAI/LLMClient.hpp"
24#include "AstAI/ChatMessage.hpp"
25#include "AstAI/ChatTool.hpp"
26#include "AstUtil/StringView.hpp"
27#include <string>
28#include <vector>
29#include <map>
30
31AST_NAMESPACE_BEGIN
32
38class JsonValue;
39
41class AST_AI_API OpenAI: public LLMClient {
42public:
45 OpenAI();
46
50 OpenAI(const std::string& apiKey, const std::string& baseUrl);
51
52 #if 0
59 std::string chat(
60 const std::string& model, const std::vector<ChatMessage>& messages,
61 const std::vector<ChatTool>& tools = {}, float temperature = 0.7f
62 );
63 #endif
64public: // 底层json接口
65
66 using LLMClient::chat; // 引入基类便捷封装 chat(JsonValue)
67
72 errc_t chat(const JsonValue& request, JsonValue& response) override;
73
79 errc_t chatStream(const JsonValue& request,
80 ChatEventHandler& handler,
81 JsonValue& accumulatedResult) override;
82
85 void setApiKey(StringView apiKey){apiKey_ = std::string(apiKey);}
86
89 void setBaseUrl(StringView baseUrl){baseUrl_ = std::string(baseUrl);}
90protected:
91 const std::string& apiKey() const { return apiKey_; }
92 const std::string& baseUrl() const { return baseUrl_; }
93private:
94 std::string apiKey_;
95 std::string baseUrl_;
96};
97
100AST_NAMESPACE_END
流式聊天事件处理器
定义 ChatEventHandler.hpp:42
JSON 值类
定义 JsonValue.hpp:47
大语言模型客户端接口
定义 LLMClient.hpp:39
virtual errc_t chatStream(const JsonValue &request, ChatEventHandler &handler, JsonValue &accumulatedResult)
发送流式聊天请求
定义 LLMClient.cpp:41
virtual errc_t chat(const JsonValue &request, JsonValue &response)=0
发送聊天请求(纯虚接口,子类必须实现)
OpenAI客户端
定义 OpenAI.hpp:41
void setApiKey(StringView apiKey)
设置API密钥
定义 OpenAI.hpp:85
void setBaseUrl(StringView baseUrl)
设置API基础URL
定义 OpenAI.hpp:89