🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
ChatTool.hpp
1
19
20#pragma once
21
22#include "AstGlobal.h"
23#include "AstUtil/StringView.hpp"
24#include "AstUtil/JsonValue.hpp"
25#include <string>
26
27AST_NAMESPACE_BEGIN
28
35class JsonValue;
36
40{
41public:
42 ChatTool() = default;
43
44 virtual ~ChatTool() = default;
48 virtual std::string call(const JsonValue& arguments) = 0;
49
52 const std::string& name() const { return name_; }
53
56 void setName(StringView name){name_ = std::string(name);}
57
60 const std::string& description() const { return description_; }
61
64 void setDescription(StringView description){description_ = std::string(description);}
65
68 const JsonValue& parameters() const { return parameters_; }
69
72 void setParameters(const JsonValue& parameters){parameters_ = parameters;}
73
76 JsonValue toJson() const;
77private:
78 std::string name_;
79 std::string description_;
80 JsonValue parameters_;
81};
82
84template<typename Func>
86{
87public:
88 ChatToolGeneric(Func func) : func_(std::move(func)) {}
89 std::string call(const JsonValue& arguments) override { return func_(arguments); }
90private:
91 Func func_;
92};
93
94
98AST_NAMESPACE_END
通用模板封装
定义 ChatTool.hpp:86
std::string call(const JsonValue &arguments) override
调用工具
定义 ChatTool.hpp:89
AI工具基类
定义 ChatTool.hpp:40
void setParameters(const JsonValue &parameters)
设置工具参数schema
定义 ChatTool.hpp:72
virtual std::string call(const JsonValue &arguments)=0
调用工具
const JsonValue & parameters() const
获取工具参数schema
定义 ChatTool.hpp:68
const std::string & description() const
获取工具描述
定义 ChatTool.hpp:60
void setName(StringView name)
设置工具名称
定义 ChatTool.hpp:56
const std::string & name() const
获取工具名称
定义 ChatTool.hpp:52
void setDescription(StringView description)
设置工具描述
定义 ChatTool.hpp:64
JSON 值类
定义 JsonValue.hpp:47