THUDM / ChatGLM3

ChatGLM3 series: Open Bilingual Chat LLMs | 开源双语对话语言模型
Apache License 2.0
13.31k stars 1.55k forks source link

官方的所有openai_api实现的函数调用全部失效了 #1207

Closed jnchen closed 3 months ago

jnchen commented 4 months ago

System Info / 系統信息

openai_api_demo/openai_api_request.py tools_using_demo/openai_api_demo.py 上述提供的demo全部无法调用函数,只有composite_demo中基于huggingface的可以成功

Who can help? / 谁可以帮助到您?

No response

Information / 问题信息

Reproduction / 复现过程

直接跑

Expected behavior / 期待表现

函数调用功能恢复

jnchen commented 4 months ago

6c0afae6e4cf6a24143c67d976d295cd1869de50 这次提交是为了改进agent chat,作者提供的截图中,也是使用了新的web endpoint /agent/chat,为什么提交上来却是改的/v1/chat/completions ? 代码里面直接把所有的外部传入的tools声明完全屏蔽,只放开tools包下定义的函数。 另外 在 #1164 中 @zRzRzRzRzRzRzR 提到 ”API在对接的时候是不做执行工具的部分的“,为什么最后还是把这个pr合并进来了,函数定义只能在本项目中进行,函数的执行当然也只能本项目来做了。。。

jnchen commented 4 months ago

临时方案: 检出 7bd44df08d1476a264724bff59010bede3f79fbf ,function call 功能正常

zRzRzRzRzRzRzR commented 3 months ago

贡献者又提了一个pr,一起看下么

jnchen commented 3 months ago

贡献者又提了一个pr,一起看下么

好的,我看了一下,恢复了默认配置下,外部tools的传入。可以解决我这个issue的问题。

lilongxian commented 3 months ago

我从的本地研发代码复制时少了复制了tools参数,你发现的非常及时,参数已补。

lilongxian commented 3 months ago

两种模式兼容,Openai接口参数已经完备,第二种模式可以满足一些没有api key等因素而无法使用openai标准接口部署的场景,无需用户自己写调度算法,用户可以专心编写自己的工具箱tools,允许用户修改接口路由参数等,自定义和适配性很强,调度算法也具备了工具调度异常的自修复能力,提升用户体验。 第一种模式用在具有openai接口使用条件的场景,流式体验很好。

lilongxian commented 3 months ago

@jnchen 环境变量已添加,你这个建议很好,谢谢了!

jnchen commented 3 months ago

@jnchen 环境变量已添加,你这个建议很好,谢谢了!

感谢贡献