如何使用DeepSeek Function Calling
时间:2026-07-25 | 作者:318050 | 阅读:0要想让DeepSeek大模型自动调用外部工具——比如查天气、查股价、搜网页——就得走Function Calling流程。
不是直接发个请求就能出结果,而是模型先生成结构化调用指令。你截获指令后执行函数,再把结果喂回去,让模型续写回答。
整个过程分几步走,咱们一步步拆开说。
定义可调用的函数工具
第一步,把你要接入的业务逻辑包装成标准格式的字典,塞进tools列表里。
每个工具必须包含三部分:type、function.name、function.description和function.parameters。
举个例子,查询杭州天气,需要写清楚参数location是字符串类型且必填:
【parameters中required字段必须显式声明,漏掉会导致模型不触发调用】
另外,function.description不能敷衍了事。比如写“获取天气”就不够——得写成“获取指定城市的实时天气状况,包括温度和天气现象”。越具体,模型识别越准。
发送带tools的消息给DeepSeek API
初始化OpenAI客户端时,base_url必须设为https://api.deepseek.com,model固定用deepseek-chat。
调用client.chat.completions.create时,除了messages,必须传入tools参数。否则模型根本不知道你提供了哪些工具。
操作很简单,直接把tools列表塞进参数就行。
捕获并解析模型返回的tool_calls
这一步分三小步:
- 第一步:检查
response.choices[0].message.tool_calls是否存在。如果为空,说明模型没决定调用函数,直接取.content即可。 - 第二步:若存在
tool_calls,遍历每个调用项,提取id、function.name和function.arguments。
注意:arguments是字符串格式的JSON片段,不是完整JSON对象——流式响应中,参数可能被分段返回,必须拼接完整后再json.loads(),否则会报JSONDecodeError。 - 第三步:根据
name匹配你预先定义的函数,用json.loads(arguments)后的字典作为参数,执行本地函数。
把函数执行结果回传给模型
有两种办法:
- 方法一:构造
role为tool的新消息,包含tool_call_id(必须与原调用id完全一致)和content(函数返回值字符串)。 - 方法二:把这条
tool消息追加到原始messages末尾,再次调用API发起第二轮请求。
注意,这轮请求不再传tools参数——因为任务已执行完毕,模型只需基于结果生成自然语言回复。
最终response.choices[0].message.content就是用户看到的答案。
来源:整理自互联网
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多-
- DeepSeek融资500亿买国产算力招人冲刺AGI
- 时间:2026-07-25
-
- DeepSeek回答太短如何补充更多细节与技巧
- 时间:2026-07-25
-
- DeepSeek reasoner模型推理内容读取方法
- 时间:2026-07-25
-
- DeepSeek研究报告需求撰写指南
- 时间:2026-07-25
-
- DeepSeek生成准确SQL语句的实用技巧
- 时间:2026-07-25
-
- DeepSeek回答跑题原因与调整方法
- 时间:2026-07-25
-
- DeepSeek深度思考模式使用教程
- 时间:2026-07-25
-
- DeepSeek提示词无效的解决方法
- 时间:2026-07-25
精选合集
更多大家都在玩
热门话题
大家都在看
更多-
- iOS 13.5.1电池续航差是电池耗电问题吗
- 时间:2026-07-25
-
- 苹果教育优惠开启 附购买攻略
- 时间:2026-07-25
-
- 苹果iOS 14 beta 2 测试版主要更新内容:除细节变化外修复多项Bug
- 时间:2026-07-25
-
- iOS 14 beta 2 是否解决内存占用过多问题?
- 时间:2026-07-25
-
- 受欢迎的奥特曼游戏有哪些
- 时间:2026-07-25
-
- iOS 14信息应用5大更新变化
- 时间:2026-07-25
-
- iOS 14正式版上线时间公布 官方全新介绍
- 时间:2026-07-25
-
- 最新苹果iOS 14 Beta 2版本更新内容全解析与升级教程
- 时间:2026-07-25
