第20章 DeepSeek API 重大升级:新增 Function Calling、JSON Output 等多项功能
# DeepSeek API 升级 # 新增支持 Chat Prefix Completion、FIM、Function Calling 与 JSON Output
今天,DeepSeek API 发布重大更新,带来一系列全新的接口功能,进一步释放模型潜力:
更新版 API /chat/completions
- JSON Output - Function Calling - Chat Prefix Completion(Beta) - 8K max_tokens(Beta)
全新 API /completions
- FIM Completion(Beta)
以上所有新功能均对 deepseek-chat 和 deepseek-coder 两个模型开放。
## 更新版 API /chat/completions ## 1. JSON Output,强化格式化输出
DeepSeek API 现已支持 JSON Output,兼容 OpenAI API,可强制模型输出合法的 JSON 格式字符串。
在数据处理等任务中,该功能可以让模型按预定义格式返回 JSON,方便后续解析模型输出,提升程序流程的自动化能力。
使用 JSON Output 需要以下步骤:
- 将 response_format 设为 {'type': 'json_object'} - 在 prompt 中引导模型输出 JSON 格式,确保输出符合预期 - 合理设置 max_tokens,防止 JSON 字符串被中途截断
以下是 JSON Output 的使用示例。示例中用户提供一段文本,模型将文本中的问答内容格式化为 JSON。
详细指南请参考 JSON Output Guide。 ## 2. Function Calling,连接物理世界
DeepSeek API 现已支持 Function Calling,兼容 OpenAI API,让模型能够通过外部工具与物理世界交互。
Function Calling 支持单次调用传入多个函数(最多 128 个),并支持并行函数调用。
下图展示了将 deepseek-coder 接入开源大模型前端 LobeChat 的效果。本例中我们启用了“网页爬虫”插件,进行网页抓取和内容总结。
下图展示了使用 Function Calling 功能的交互过程:
详细指南请参考 Tool Calls Guide。 ## 3. Chat Prefix Completion(Beta),更灵活的输出控制
Chat Prefix Completion 沿用 Chat Completion 的 API 格式,允许用户指定最后一条 assistant 消息的前缀,由模型续写完成。该功能还可用于拼接因达到 max_tokens 上限而被截断的消息,重新发起请求以继续输出被截断的内容。
使用 Chat Prefix Completion 需要以下步骤:
- 将 base_url 设为 https://api.deepseek.com/beta 以启用 Beta 功能 - 确保 messages 列表中最后一条消息的 role 为 assistant,并将该消息的 prefix 参数设为 True,例如:{"role": "assistant", "content": "Once upon a time,", "prefix": True}
以下是使用 Chat Prefix Completion 的示例。示例中将 assistant 消息的开头设为 '```python\n',强制输出以代码块开始,并将 stop 参数设为 '```',防止模型输出多余内容。
详细指南请参考 Chat Prefix Completion Guide。 ## 4. 8K max_tokens(Beta),释放更长输出的可能
为满足需要更长文本输出的场景,我们在 Beta API 中将 max_tokens 参数的上限调整为 8K。
使用 8K max_tokens 需要以下步骤:
- 将 base_url 设为 https://api.deepseek.com/beta 以启用 Beta 功能 - max_tokens 默认值为 4096,启用 Beta API 后最高可设为 8192
## 全新 API /completions ## 1. FIM Completion(Beta),开启更多补全场景
DeepSeek API 现已支持 FIM(Fill-In-the-Middle)Completion,兼容 OpenAI FIM Completion API,允许用户提供自定义的前缀和后缀(可选),由模型补全中间内容。该功能常用于故事续写、代码补全等场景。FIM Completion API 的计费标准与 Chat Completion API 相同。
使用 FIM Completion 时,需将 base_url 设为 https://api.deepseek.com/beta 以启用 Beta 功能。
以下是使用 FIM Completion API 的示例。示例中用户提供了斐波那契函数的开头和结尾,由模型补全中间部分。
详细指南请参考 FIM Completion Guide。
更新说明
- Beta API 对所有用户开放。使用时需将 base_url 设为 https://api.deepseek.com/beta 以启用 Beta 功能 - Beta API 属于不稳定版本,后续测试和发布计划可能灵活调整,感谢理解 - 相关模型版本将在功能稳定后发布至开源社区