工具交互
在用户进行工具交互前,需要先执行完成前置操作,之后可以使用问答的方式对GaussMaster服务进行提问,后台接口为/v1/api/app/intelligent-interaction。此接口参数“mode”的值必须为“tool_interaction”,即当前模式为工具交互,API详情请参考API: /v1/api/app/intelligent-interaction。工具交互默认支持多轮对话,对话记录长度为1轮。用户可以通过参数"history_len"指定对话记录的长度,可支持的对话记录长度为[1-3],即大语言模型最多可以记住3轮对话历史。
工具交互的流程图如下图1所示:
工具交互约束
- 用户可以使用华为云提供的pangu-38b开源模型工具,识别准确率为90%。也可以指定其他开源模型,通过接口的形式进行调用,使用其他开源模型做工具交互时,识别准确率无法保证。
- 智能运维中工具交互支持参数追问,参数不全时可基于历史内容进行补全。
- DBMind/openGauss组件不可用/升级等场景下,GaussMaster服务会受到影响。
- GaussMaster智能运维不提供前台页面,且目前只支持中文问答。
当前内部已支持的DBmind工具(API)共22个(其中告警查询需要用到DBMind的两个API),如下表:
表 1 API列表
工具交互参考示例
工具交互调用API详情如下:
curl -X 'POST' 'https://x.x.x.x:x/v1/api/app/intelligent-interaction' -H 'accept: application/json' -H 'Content-Type: application/json' -d '{
"query":"数据库test_db中有条sql语句select* from t1 where id = 10000;请帮我进行一下索引推荐",
"mode":"tool_interaction",
"user_id":"user123",
"session_id":"session123",
"history_len ":1
}' --cacert /path/xxx.crt --key /path/xxx.key --cert /path/xxx.crt --pass "***"
工具交互的结果以流式返回,结果中包含多行,每行以“data:”开头,以“\n\n”结尾:
data:{"data":[{"content":"工具匹配中...","type":"progress"}],"success":true}\n\n
data:{"data":[{"content":"提取参数中...","type":"progress"}],"success":true}\n\n
data:{"data":[{"content":"工具调用中...","type":"progress"}],"success":true}\n\n
data:{"data":[{"color":"black","content":"推荐的索引如下表所示:","type":"str"},{"content":{"headers":["索引描述","预计占用","预计提升"],"rows":[["CREATEINDEX idx_t1_id ON public.t1(id);","2.49MB","99.91%"]]},"type":"table"}],"success":true}\n\n
data:{"data":[{"content":"DONE","type":"progress"}],"success":true}\n\n
说明: 在工具交互的过程中,会在日志中记录各阶段的耗时,包括如下4个阶段:
- 推理工具。
- 推理参数。
- 调用工具。
- 调用大语言模型。 日志级别为INFO,用户可以根据需要查看各阶段的耗时。
意见反馈