DeepSeek API 升級,支持續寫、FIM、Function Calling、JSON Output

DeepSeek2024年7月26日
今天,DeepSeek API 迎來更新,裝備了新的接口功能,來釋放模型的更多潛力:

更新接口 /chat/completions

  • JSON Output
  • Function Calling
  • 對話前綴續寫(Beta)
  • 8K 最長輸出(Beta)

新增接口 /completions

  • FIM 補全(Beta)

所有新功能,均可使用 deepseek-chat deepseek-coder 模型調用。

更新接口 /chat/completions

1.JSON Output,增強內容格式

DeepSeek API 新增 JSON Output 功能,兼容 OpenAI API,能夠強制模型輸出 JSON 格式的字符串。
在進行數據處理等任務時,該功能可以讓模型按預定格式返回 JSON,方便後續對模型輸出內容進行解析,提高程序流程的自動化能力。

要使用 JSON Output 功能,需要:

  1. 設置 response_format 參數爲 {'type': 'json_object'}

  2. 用戶需要在提示詞中,指導模型輸出 JSON 的格式,來確保輸出格式符合預期

  3. 合理設置 max_tokens ,防止 JSON 字符串被中途截斷

以下爲一個 JSON Output 功能的使用樣例。在這個樣例中,用戶給出一段文本,模型對文本中的問題 & 答案進行格式化輸出。

2. Function Calling,連接物理世界

DeepSeek API 新增 Function Calling 功能,兼容 OpenAI API,通過調用外部工具,來增強模型與物理世界交互的能力。
Function Calling 功能支持傳入多個 Function(最多 128 個),支持並行 Function Calling。
下圖展示了將 deepseek-coder 整合到開源大模型前端 LobeChat 的效果。在這個例子中,我們開啓了“網站爬蟲”插件,來實現對網站的爬取和總結。
下圖展示了使用 Function Calling 功能的交互過程:

3. 對話前綴續寫(Beta),更靈活的輸出控制

對話前綴續寫沿用了 對話補全 的 API 格式,允許用戶指定最後一條 assistant 消息的前綴,來讓模型按照該前綴進行補全。該功能也可用於輸出長度達到 max_tokens 被截斷後,將被截斷的消息進行拼接,重新發送請求對被截斷內容進行續寫。

要使用對話前綴續寫功能,需要:

  1. 設置 base_url

    https://api.deepseek.com/beta 來開啓 Beta 功能

  2. 確保 messages 列表裏最後一條消息的 role assistant 並設置最後一條消息的 prefix 參數爲 True
    如: {"role": "assistant": "content": "在很久很久以前,", "prefix": True}

以下爲對話前綴續寫功能的使用樣例。在這個例子裏,設置了 assistant 消息開頭爲 '```python\n' ,以強制其以代碼塊開始,並設置 stop 參數爲 '```' ,讓模型不輸出多餘的內容。

4. 8K 最長輸出(Beta),釋放更長可能
爲了滿足更長文本輸出的場景,我們在 Beta 版 API 中,將 max_tokens 參數的上限調整爲 8K。

要提高到 8K 最長輸出,需要:

  1. 設置 base_url

    https://api.deepseek.com/beta 來開啓 Beta 功能

  2. max_tokens 默認爲 4096。開啓 Beta 功能後, max_tokens 最大可設置爲 8192


新增接口 /completions

1.FIM 補全(Beta),使能續寫場景

DeepSeek API 新增 FIM補全接口,兼容 OpenAI 的 FIM 補全 API,允許用戶提供自定義的前綴/後綴(可選),讓模型進行內容補全。該功能常用於故事續寫、代碼補全等場景。FIM 補全接口收費與對話補全相同。
要使用 FIM 補全接口,需要設置 base_url https://api.deepseek.com/beta 來開啓 Beta 功能。
以下爲 FIM 補全接口的使用樣例。在這個例子中,用戶提供斐波那契數列函數的開頭和結尾,模型對中間內容進行補全。



更新說明

所有新功能的詳細調用方法,請參考 DeepSeek API 官方文檔:

https://platform.deepseek.com/api-docs/zh-cn/

Beta 接口已開放給所有用戶使用,用戶需要設置 base_url https://api.deepseek.com/beta 來開啓 Beta 功能。

Beta 接口屬於不穩定接口,後續測試、發佈計劃會靈活變動,敬請諒解。
相關模型版本,在功能穩定後會發佈到開源社區,敬請期待。

點擊下方閱讀原文查看詳細指南