QwenLM / Qwen-Agent

Agent framework and applications built upon Qwen>=2.0, featuring Function Calling, Code Interpreter, RAG, and Chrome extension.
https://pypi.org/project/qwen-agent/
Other
3.25k stars 317 forks source link

支持强制使用工具吗 #91

Open joyvw opened 7 months ago

joyvw commented 7 months ago

在测试functions功能时,我参考了 https://github.com/QwenLM/Qwen-Agent/blob/main/examples/function_calling.py 中的functions使用。 好像目前不支持类似 openai tool_choice 或者 function_call 的功能 。请问后续会有更新吗?

JianxinMa commented 7 months ago

目前还没加这个功能,主要是两个考虑:

xcpuma commented 7 months ago

有这需求啊

vcredit-azure commented 6 months ago

有这个需求啊

1006076811 commented 5 months ago

目前还没加这个功能,主要是两个考虑:

  • 不知道需求量大不大,因此优先级没排上来。
  • 我之前测试gpt的时候,发现即使指定了tool,似乎gpt也依然会有概率不用插件(比如缺少某些信息时、问题明显无关时)—— 因此我不太清楚大家对tool_choice的预期行为是怎样的。

实现强制使用tool有没有什么思路

JianxinMa commented 5 months ago

目前还没加这个功能,主要是两个考虑:

  • 不知道需求量大不大,因此优先级没排上来。
  • 我之前测试gpt的时候,发现即使指定了tool,似乎gpt也依然会有概率不用插件(比如缺少某些信息时、问题明显无关时)—— 因此我不太清楚大家对tool_choice的预期行为是怎样的。

实现强制使用tool有没有什么思路

有思路,不难。但项目人手不太够,我还在抽空找时间实现。

1006076811 commented 5 months ago

目前还没加这个功能,主要是两个考虑:

  • 不知道需求量大不大,因此优先级没排上来。
  • 我之前测试gpt的时候,发现即使指定了tool,似乎gpt也依然会有概率不用插件(比如缺少某些信息时、问题明显无关时)—— 因此我不太清楚大家对tool_choice的预期行为是怎样的。

实现强制使用tool有没有什么思路

有思路,不难。但项目人手不太够,我还在抽空找时间实现。

具体的思路能提供一下吗,我看看能不能为社区做点贡献:)

DYHouse commented 5 months ago

目前还没加这个功能,主要是两个考虑:

  • 不知道需求量大不大,因此优先级没排上来。
  • 我之前测试gpt的时候,发现即使指定了tool,似乎gpt也依然会有概率不用插件(比如缺少某些信息时、问题明显无关时)—— 因此我不太清楚大家对tool_choice的预期行为是怎样的。

实现强制使用tool有没有什么思路

有思路,不难。但项目人手不太够,我还在抽空找时间实现。

可以提供一下思路吗?正好遇到这种场景

JianxinMa commented 3 months ago

刚在main分支新增加了实验功能:“并行函数调用” 和 “强制指定调用的工具(tool_choice/function_choice)”。

示例:

注:tool_choice功能使用dashscope的模型服务(model_server=dashscope)时会稳定些。但使用openai api兼容接口启动的模型服务有概率不听tool_choice的指令 —— 这是因为很多openai api兼容接口缺少某些特定的功能。 (这个缺陷就是我为啥拖延到今天才push上来这个功能的原因,但感觉再拖下去就不礼貌了.jpg

joyvw commented 3 months ago

刚在main分支新增加了实验功能:“并行函数调用” 和 “强制指定调用的工具(tool_choice/function_choice)”。

示例:

注:tool_choice功能使用dashscope的模型服务(model_server=dashscope)时会稳定些。但使用openai api兼容接口启动的模型服务有概率不听tool_choice的指令 —— 这是因为很多openai api兼容接口缺少某些特定的功能。 (这个缺陷就是我为啥拖延到今天才push上来这个功能的原因,但感觉再拖下去就不礼貌了.jpg

感谢感谢, 马上测试一下(本地就是用vllm部署的openai api兼容接口 0.0)。

ccp123456789 commented 3 months ago

刚在main分支新增加了实验功能:“并行函数调用” 和 “强制指定调用的工具(tool_choice/function_choice)”。 示例:

注:tool_choice功能使用dashscope的模型服务(model_server=dashscope)时会稳定些。但使用openai api兼容接口启动的模型服务有概率不听tool_choice的指令 —— 这是因为很多openai api兼容接口缺少某些特定的功能。 (这个缺陷就是我为啥拖延到今天才push上来这个功能的原因,但感觉再拖下去就不礼貌了.jpg

感谢感谢, 马上测试一下(本地就是用vllm部署的openai api兼容接口 0.0)。 vllm部署的openai接口肯定是不能测试的,vllm不支持function call

joyvw commented 2 months ago

刚在main分支新增加了实验功能:“并行函数调用” 和 “强制指定调用的工具(tool_choice/function_choice)”。 示例:

注:tool_choice功能使用dashscope的模型服务(model_server=dashscope)时会稳定些。但使用openai api兼容接口启动的模型服务有概率不听tool_choice的指令 —— 这是因为很多openai api兼容接口缺少某些特定的功能。 (这个缺陷就是我为啥拖延到今天才push上来这个功能的原因,但感觉再拖下去就不礼貌了.jpg

感谢感谢, 马上测试一下(本地就是用vllm部署的openai api兼容接口 0.0)。 vllm部署的openai接口肯定是不能测试的,vllm不支持function call

上个版本的qwen_agent的function_call ,我也使用vllm部署的openapi的接口感觉是可以的。看现在的实现是用ReAct, 把function的信息拼到system message后面,这样直接用chat模型也能调用了。

joyvw commented 2 months ago

刚在main分支新增加了实验功能:“并行函数调用” 和 “强制指定调用的工具(tool_choice/function_choice)”。

示例:

注:tool_choice功能使用dashscope的模型服务(model_server=dashscope)时会稳定些。但使用openai api兼容接口启动的模型服务有概率不听tool_choice的指令 —— 这是因为很多openai api兼容接口缺少某些特定的功能。 (这个缺陷就是我为啥拖延到今天才push上来这个功能的原因,但感觉再拖下去就不礼貌了.jpg

这个commit使用的指令适合qwen1.5吗,感觉用Qwen2-7B-Instruct的效果比qwen1.5-34b还稳定