返回首頁

GitHub Repo

LangChain 社群回報 DeepSeek 工具結果膨脹,中文測例 token 用量增至 5.7 倍

11 月 1 日的 LangChain 社群回報指出,DeepSeek 整合會將清單形式的中文工具結果轉成跳脫字串,增加輸入成本。另一名參與者已回報離線重現,但 API 用量倍率仍來自原作者測試,尚未見正式修補合併。

Dirck van Baburen · Public domain · Image source
zh-Hant

LangChain 的 DeepSeek 整合套件出現一項與中文代理工作流程直接相關的序列化問題。11 月 1 日提交的回報指出,langchain-deepseek 1.1.1 處理清單形式的 ToolMessage 時,會把內容區塊整體轉成 JSON 字串;作者提供的中文測例由 188 字元膨脹至 1,041 字元,另一名參與者也回報離線重現相同結果。公開回報與討論

關鍵在於 JSON 被放在哪一層。回報中的工具原先已產生中文 JSON 文字,再包進文字區塊;整合層接著對整份清單呼叫 json.dumps。Python 官方文件確認,預設的 ensure_ascii=True 會跳脫非 ASCII 字元,因此中文可能變成 \uXXXX,而內層 JSON 的引號也需再次跳脫。這些額外表示若保留在模型讀取的內容字串中,就會改變實際輸入。Python JSON 文件

作者另以相同對話及工具設定呼叫 deepseek-chat,只替換工具訊息內容。空字串基準為 312 個提示 token,直接傳文字為 416 個,清單區塊形式則為 903 個;扣除基準後,工具結果分別占 104 與 591 個 token,約差 5.7 倍。這個倍率只描述該筆工具結果,不能解讀為整段對話或所有中文請求都增加相同比例。測試設定與數據

LangChain 官方文件將 ChatDeepSeek 列為支援工具呼叫及 token 用量回報的整合。對使用中文搜尋結果、知識庫摘要的工程團隊,這次回報提示應檢查最終送出的訊息內容,並以 API 用量確認成本;僅觀察工具原始輸出的長度,可能漏掉轉換層的額外負擔。這是依目前機制推導的工程影響,尚無跨工作負載量測。整合文件

社群建議將純文字區塊串接為文字,混合區塊則保留 JSON 並關閉 ASCII 跳脫。截至查核時,議題仍開啟,未見維護者確認或關聯修補 PR;後續應觀察區塊結構是否需要保留,以及混合內容的相容性測試。修補討論

來源

  1. LangChain issue #41609:DeepSeek 清單形式工具結果的 ASCII 跳脫問題
  2. Python json:ensure_ascii 與序列化規則
  3. ChatDeepSeek integration