[GH-ISSUE #88] Function Calling比以前难触发了 #83

Open
opened 2026-10-26 21:07:36 +00:00 by bsakaguchi · 10 comments
Owner

Originally created by @whoisfucker on GitHub (Sep 8, 2024).
Original GitHub issue: https://github.com/deepseek-ai/DeepSeek-V2/issues/88

最近的Function Calling功能比以前难触发,我在提示词中只能加入:每一次使用工具都请使用正确的Function Calling格式

模型配置
image

Originally created by @whoisfucker on GitHub (Sep 8, 2024). Original GitHub issue: https://github.com/deepseek-ai/DeepSeek-V2/issues/88 最近的Function Calling功能比以前难触发,我在提示词中只能加入:每一次使用工具都请使用正确的Function Calling格式 模型配置 ![image](https://github.com/user-attachments/assets/ae19552f-e69a-47bb-8d82-dd2386c0aad1)
Author
Owner

@k99k5 commented on GitHub (Sep 9, 2024):

最近的Function Calling功能比以前难触发,我在提示词中只能加入:每一次使用工具都请使用正确的Function Calling格式

模型配置 image

我已经无法触发了,现在"tool_choice": "required"之后就只会返回空。。。

<!-- gh-comment-id:2336984850 --> @k99k5 commented on GitHub (Sep 9, 2024): > 最近的Function Calling功能比以前难触发,我在提示词中只能加入:每一次使用工具都请使用正确的Function Calling格式 > > 模型配置 ![image](https://private-user-images.githubusercontent.com/4996887/365458756-ae19552f-e69a-47bb-8d82-dd2386c0aad1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjU4NDg3NzQsIm5iZiI6MTcyNTg0ODQ3NCwicGF0aCI6Ii80OTk2ODg3LzM2NTQ1ODc1Ni1hZTE5NTUyZi1lNjlhLTQ3YmItOGQ4Mi1kZDIzODZjMGFhZDEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDkwOSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA5MDlUMDIyMTE0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YTg0NjNjYjk5OWMyMzRkNWQ2MTRlN2I4ZDg2MTlkZWUyZTZkMzRiY2MxNmZmYWIyN2U4YTQ2MWI4ZWEyMGQ4NSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.WZkXVfnMdV_gy1QhvSfc_uRtuS24cEokd8Mk31L0p2Q) 我已经无法触发了,现在"tool_choice": "required"之后就只会返回空。。。
Author
Owner

@wssnail commented on GitHub (Sep 12, 2024):

我也遇到了,携带上下文的时候,只有第一次能触发。

<!-- gh-comment-id:2345471447 --> @wssnail commented on GitHub (Sep 12, 2024): 我也遇到了,携带上下文的时候,只有第一次能触发。
Author
Owner

@mujiannan commented on GitHub (Sep 14, 2024):

最近的Function Calling功能比以前难触发,我在提示词中只能加入:每一次使用工具都请使用正确的Function Calling格式
模型配置 image

我已经无法触发了,现在"tool_choice": "required"之后就只会返回空。。。

同样问题,提示词明确指定了,它仍然不调用。参数里强制要求调用函数,它就连content带tool_calls都一言不发。

<!-- gh-comment-id:2350882690 --> @mujiannan commented on GitHub (Sep 14, 2024): > > 最近的Function Calling功能比以前难触发,我在提示词中只能加入:每一次使用工具都请使用正确的Function Calling格式 > > 模型配置 ![image](https://private-user-images.githubusercontent.com/4996887/365458756-ae19552f-e69a-47bb-8d82-dd2386c0aad1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjU4NDg3NzQsIm5iZiI6MTcyNTg0ODQ3NCwicGF0aCI6Ii80OTk2ODg3LzM2NTQ1ODc1Ni1hZTE5NTUyZi1lNjlhLTQ3YmItOGQ4Mi1kZDIzODZjMGFhZDEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDkwOSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA5MDlUMDIyMTE0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YTg0NjNjYjk5OWMyMzRkNWQ2MTRlN2I4ZDg2MTlkZWUyZTZkMzRiY2MxNmZmYWIyN2U4YTQ2MWI4ZWEyMGQ4NSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.WZkXVfnMdV_gy1QhvSfc_uRtuS24cEokd8Mk31L0p2Q) > > 我已经无法触发了,现在"tool_choice": "required"之后就只会返回空。。。 同样问题,提示词明确指定了,它仍然不调用。参数里强制要求调用函数,它就连`content`带`tool_calls`都一言不发。
Author
Owner

@whoisfucker commented on GitHub (Sep 17, 2024):

deepseek的工具调用能力可能比kimi和gpt4o-mini还差一些。

基于langgraph的对比实验:

我要求AI做下面的事情,使用基于openai规则的langgraph进行工具调用,对比gpt4o-mini和deepseek的结果。

提示词要求需要先下载文件,再解析文件,因此需要LLM调用两次工具,gpt4o-mini(kimi等)可以调用两次,但deepseek只调用了一次。

提示词为:

总结视频的过程,必须依次严格执行:
(1)必须先复述链接,方便用户查看
(2)先调用“download_bilibili_video_subtitles"工具,这个工具返回一个字幕文件
(3)必须先把这字幕文件名告诉用户,告诉完才能进行下一步
(4)调用"summary_text_or_file"工具,来总结这个视频的内容,第一个参数一般为“分段概括视频内容(500字内)”,如果用户强调要求有时间段,第一个参数需要设置为“分段概括视频内容(500字内),段末用括号标注对应段的起始时间(精确到秒)”

如果使用openai gpt4o-mini 可以得到正确的结果:

用户:
请总结这个视频内容:https://www.bilibili.com/video/BV1xw4m167H3

openai gpt4o-mini:
您提供的视频链接是:https://www.bilibili.com/video/BV1xw4m167H3

接下来,我将下载该视频的字幕文件。请稍等。我已成功下载视频的字幕文件,文件名为:tmpvu1rx0dq.srt。

接下来,我将对这个字幕文件进行内容总结。请稍等。视频内容主要讨论了社会中。。。。。。。。。。。。。。(这里太长省略了)

如果使用deepseek得到错误的结果:

用户:
请总结这个视频内容:https://www.bilibili.com/video/BV1xw4m167H3

Deepseek:
好的,我将按照您的要求来总结这个视频内容。

首先,复述链接:https://www.bilibili.com/video/BV1xw4m167H3

接下来,我将调用“download_bilibili_video_subtitles”工具来下载视频的字幕文件。

我已经下载了字幕文件,文件名为:C:\Users\aiqqq\AppData\Local\Temp\tmpmb1qsvrd.srt

接下来,我将调用“summary_text_or_file”工具来总结这个视频的内容。

(第一次调用download_bilibili_video_subtitles确实成功了,但是第二次调用失败了,并没有真的调用summary_text_or_file工具,有时候甚至会输出一个json,包含name和parameter等字段,但是就是不运行工具)

<!-- gh-comment-id:2354250970 --> @whoisfucker commented on GitHub (Sep 17, 2024): ### deepseek的工具调用能力可能比kimi和gpt4o-mini还差一些。 ### 基于langgraph的对比实验: 我要求AI做下面的事情,使用基于openai规则的langgraph进行工具调用,对比gpt4o-mini和deepseek的结果。 提示词要求需要先下载文件,再解析文件,因此需要LLM调用两次工具,gpt4o-mini(kimi等)可以调用两次,但deepseek只调用了一次。 ### 提示词为: 总结视频的过程,必须依次严格执行: (1)必须先复述链接,方便用户查看 (2)先调用“download_bilibili_video_subtitles"工具,这个工具返回一个字幕文件 (3)必须先把这字幕文件名告诉用户,告诉完才能进行下一步 (4)调用"summary_text_or_file"工具,来总结这个视频的内容,第一个参数一般为“分段概括视频内容(500字内)”,如果用户强调要求有时间段,第一个参数需要设置为“分段概括视频内容(500字内),段末用括号标注对应段的起始时间(精确到秒)” ### 如果使用openai gpt4o-mini 可以得到正确的结果: 用户: 请总结这个视频内容:https://www.bilibili.com/video/BV1xw4m167H3 openai gpt4o-mini: 您提供的视频链接是:https://www.bilibili.com/video/BV1xw4m167H3 接下来,我将下载该视频的字幕文件。请稍等。我已成功下载视频的字幕文件,文件名为:tmpvu1rx0dq.srt。 接下来,我将对这个字幕文件进行内容总结。请稍等。视频内容主要讨论了社会中。。。。。。。。。。。。。。(这里太长省略了) ### 如果使用deepseek得到错误的结果: 用户: 请总结这个视频内容:https://www.bilibili.com/video/BV1xw4m167H3 Deepseek: 好的,我将按照您的要求来总结这个视频内容。 首先,复述链接:https://www.bilibili.com/video/BV1xw4m167H3 接下来,我将调用“download_bilibili_video_subtitles”工具来下载视频的字幕文件。 我已经下载了字幕文件,文件名为:C:\Users\aiqqq\AppData\Local\Temp\tmpmb1qsvrd.srt 接下来,我将调用“summary_text_or_file”工具来总结这个视频的内容。 (第一次调用download_bilibili_video_subtitles确实成功了,但是第二次调用失败了,并没有真的调用summary_text_or_file工具,有时候甚至会输出一个json,包含name和parameter等字段,但是就是不运行工具)
Author
Owner

@jymsy commented on GitHub (Sep 23, 2024):

越升级越垃圾,2.5之前还挺好的

<!-- gh-comment-id:2367150603 --> @jymsy commented on GitHub (Sep 23, 2024): 越升级越垃圾,2.5之前还挺好的
Author
Owner

@duanhaowei commented on GitHub (Dec 4, 2024):

现在试了完全不行

<!-- gh-comment-id:2516719748 --> @duanhaowei commented on GitHub (Dec 4, 2024): 现在试了完全不行
Author
Owner

@jie65535 commented on GitHub (Dec 20, 2024):

我目前遇到的现象是,凡是请求时提供了tools,DeepSeek都一定会调用tool。进而导致无限循环直到token溢出。

我只能通过在调用tool得到结果之后的请求时不提供tools来手工控制回答... 传 ToolChoice.Auto 没有任何效果。

<!-- gh-comment-id:2557519768 --> @jie65535 commented on GitHub (Dec 20, 2024): 我目前遇到的现象是,凡是请求时提供了tools,DeepSeek都一定会调用tool。进而导致无限循环直到token溢出。 我只能通过在调用tool得到结果之后的请求时不提供tools来手工控制回答... 传 `ToolChoice.Auto` 没有任何效果。
Author
Owner

@Wzb3422 commented on GitHub (Dec 23, 2024):

我目前遇到的现象是,凡是请求时提供了tools,DeepSeek都一定会调用tool。进而导致无限循环直到token溢出。

我只能通过在调用tool得到结果之后的请求时不提供tools来手工控制回答... 传 ToolChoice.Auto 没有任何效果。

Same senario happens to me. It seems that deepseek can not properly follow tools.function.description to determine when to (and not to) invoke the function.

<!-- gh-comment-id:2558971819 --> @Wzb3422 commented on GitHub (Dec 23, 2024): > 我目前遇到的现象是,凡是请求时提供了tools,DeepSeek都一定会调用tool。进而导致无限循环直到token溢出。 > > 我只能通过在调用tool得到结果之后的请求时不提供tools来手工控制回答... 传 `ToolChoice.Auto` 没有任何效果。 Same senario happens to me. It seems that deepseek can not properly follow `tools.function.description` to determine when to (and not to) invoke the function.
Author
Owner

@syyou3 commented on GitHub (Dec 25, 2024):

我目前遇到的现象是,凡是请求时提供了tools,DeepSeek都一定会调用tool。进而导致无限循环直到token溢出。

我只能通过在调用tool得到结果之后的请求时不提供tools来手工控制回答... 传 ToolChoice.Auto 没有任何效果。

我也遇到了,这个问题现在能解决吗

<!-- gh-comment-id:2561679088 --> @syyou3 commented on GitHub (Dec 25, 2024): > 我目前遇到的现象是,凡是请求时提供了tools,DeepSeek都一定会调用tool。进而导致无限循环直到token溢出。 > > 我只能通过在调用tool得到结果之后的请求时不提供tools来手工控制回答... 传 `ToolChoice.Auto` 没有任何效果。 我也遇到了,这个问题现在能解决吗
Author
Owner

@JoeLan96 commented on GitHub (Feb 8, 2025):

我也遇到了同样的问题,函数调用会重复调用,然后卡死。之前 V2 是正常的

<!-- gh-comment-id:2645739672 --> @JoeLan96 commented on GitHub (Feb 8, 2025): 我也遇到了同样的问题,函数调用会重复调用,然后卡死。之前 V2 是正常的
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
deepseek-ai/DeepSeek-V2#83
No description provided.