deepseek-recipe:DeepSeek 开源的 API 协议转换与 Token 编解码组件,统一 OpenAI 与 Anthropic 三种格式 Vibe 项目

统一三种API格式的Token编解码组件

项目简介

deepseek-recipe 是 DeepSeek 随推理框架 DeepInfer 一同开源的生产级 Token 编解码与协议转换组件,Rust 编写并提供 Python 绑定,仓库 github.com/deepseek-ai/deepseek-recipe。它解决的问题很具体:主流 API 格式有三种,OpenAI 的 Chat Completions、OpenAI 的 Responses、Anthropic 的 Messages,字段命名、思考模式、工具调用写法各不相同。它把这些请求统一转换成同一种 Conversation 格式,再按模型版本渲染 prompt、编码成 Token ID,最后把模型输出翻回各家格式流式返回。

核心功能

  • 三种格式互转:Messages、Chat Completions、Responses 全覆盖,支持文本、图片、思考模式、客户端工具调用与 prefix 续写。
  • Prompt 渲染与编码:把 V4 与 V4.1 会话渲染成模型 prompt,或配合 tokenizer 直接编码成 Token ID。
  • 生成参数处理:思考模式、推理强度、temperature、top_p、输出上限;resolve_max_tokens 会校验上下文长度并补默认值——非思考 8192,思考 65536,思考且 max 档 131072。
  • 输出解析:推理内容、工具调用、JSON 输出、停止序列,挂上 tokenizer 还能统计 reasoning_tokens。
  • 结构化输出:支持 Chat Completions 的 json_schema 与 regex、Responses 的 text.format,转换阶段校验 JSON Schema 并写入 prompt。
  • 特殊 Token 语义统一:用户发言起点、思考结束、工具调用边界由特殊 Token 标记,避免跨格式转换时错位。

技术实现

项目以 Rust 库形式发布,同时提供 Python 绑定,把协议转换与模型推理解耦得很彻底:转换层只负责结构映射、prompt 渲染与 Token 编解码,模型推理、工具执行、HTTP 传输全由调用方提供。这意味着它可以接到任意推理后端,无论是自建集群、第三方 API 还是本地引擎。

转换过程还会为请求选出 OutputConstraint:带工具且工具选择不为 none 的请求约束到工具调用块,其余按 JSON、JSON Schema 或正则约束生成。这把「格式正确」从依赖模型的自觉,变成了协议层的硬约束,对做 Agent 工具调用的服务尤其重要。

快速上手

  1. 克隆仓库,先读 README 与 docs/tokenizer.md、docs/streaming.md,弄清数据流。
  2. 按项目说明构建 Rust 库,或安装对应的 Python 绑定。
  3. 准备 V4 与 V4.1 的 tokenizer,把会话对象编码成 Token ID。
  4. 调用 ConversationRequest 完成 prompt 渲染与 max_tokens 解析,再交给自己的推理后端执行。
  5. 用 StreamProcessor 处理流式输出,把 Token 逐个翻回 Chat Completions 或 Responses 格式返回给客户端。

适用人群

自建推理服务的平台团队、要同时对外提供 OpenAI 与 Anthropic 风格接口的 API 网关开发者、私有化环境里跑 DeepSeek 需要自己拼 prompt 的工程师,以及对多家模型供应商格式差异头疼的应用开发者。

官方链接

https://github.com/deepseek-ai/deepseek-recipe

团队信息

由 AI 猎手自动发现

评论与建议

0 条评论