Closed Jimmy-L99 closed 1 month ago
不太行,fc格式和lc要求的不太一样,这个需要你自行转换(一般是正则或者其他链路)
感谢指教!另外还有个问题想请教一下,对于langchain agent的多工具调用,tools = [RAG, function2, function3],我试过如果只是tools = [RAG],可以正常回答;但是多工具的话,就没法正常触发RAG了,这跟模型能力有关系还是提示词有关?
GLM-4没有多工具同时调用的能力,因此只会选择一个
是的,本意是想让它从多个工具里面选一个,测试的时候可以选RAG,但没法给出正常回答了。
如果选到了RAG后续不能正常回答吗,其实我建议fc的节点调用模型,非fc的节点,比如RAG总结的节点是另一个LLM
System Info / 系統信息
python3.11.9
Who can help? / 谁可以帮助到您?
No response
Information / 问题信息
Reproduction / 复现过程
想请教一下langchain tool调用,比如我按照langchain文档构建RAG,并将RAG retriever转换成tool。
我的理解是langchain tool需要经过api的process_response,得到function_name和arguments,函数最后得到的function_call是一个json格式的字符串:
最后glm应该输出的消息字典是:
但api_server的process_response函数内容打印如下:
2024-08-30 09:43:44.091 | DEBUG | main:process_response:179 - ==== function_name ====
2024-08-30 09:43:44.091 | DEBUG | main:process_response:181 - ==== arguments ====
代码里面的字符串处理貌似没有正确得到function_name和正确arguments格式,所以想请教一下,这里是要自己根据langchain所需格式进行调整? 另外,tool的description作用只是结合handle_single_conversation函数里面加上tool使用方法的提示词,最后让大模型输出tool_calls吗?
Expected behavior / 期待表现
大模型成功调用tool进行回答