🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
ChatTools.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "ChatTool.hpp"
25#include <vector>
26#include <memory>
27
28AST_NAMESPACE_BEGIN
29
39{
40public:
41 ChatTools() = default;
42 ChatTools(bool initAsDefault);
43 ~ChatTools() = default;
44public:
48 std::string handleToolCall(const JsonValue& toolCall);
49
52 void addTool(std::unique_ptr<ChatTool>&& tool){tools_.push_back(std::move(tool));}
53
54 template<typename Func>
55 ChatTool* addTool(Func func)
56 {
57 ChatTool* tool = new ChatToolGeneric<Func>(func);
58 addTool(std::unique_ptr<ChatTool>(tool));
59 return tool;
60 }
61
63 void clearTools(){tools_.clear();}
64
67 JsonValue toJson() const;
68private:
69 A_DISABLE_COPY(ChatTools);
70 std::vector<std::unique_ptr<ChatTool>> tools_;
71};
72
73
76AST_NAMESPACE_END
通用模板封装
定义 ChatTool.hpp:86
AI工具基类
定义 ChatTool.hpp:40
AI工具集合
定义 ChatTools.hpp:39
void clearTools()
清除所有工具
定义 ChatTools.hpp:63
void addTool(std::unique_ptr< ChatTool > &&tool)
添加工具
定义 ChatTools.hpp:52
JSON 值类
定义 JsonValue.hpp:47