尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
DS2API OpenAI Chat接口完整参考:/v1/chat/completions 参数逐项说明
DS2API OpenAI Chat接口完整参考/v1/chat/completions 参数逐项说明【免费下载链接】ds2apiDeepSeek-Compatible Middleware Interface: A technical exploration project in Go, focusing on high-concurrency protocol adaptation. It serves as a reference implementation for converting diverse web protocols into standardized formats.项目地址: https://gitcode.com/GitHub_Trending/ds/ds2apiDS2API 是一个 Go 语言编写的 DeepSeek 兼容中间件将 DeepSeek 上游协议适配为标准 OpenAI 风格接口让你无需改造现有代码就能调用 DeepSeek。本文以/v1/chat/completions这一 OpenAI Chat 补全接口为核心逐项说明请求参数、模型别名、流式行为与工具调用Tool Calling的返回形态帮助你快速完成对接与排错。接口基础Base URL 与鉴权方式在写代码之前先明确三件事请求发到哪里、用什么鉴权、请求头长什么样。项目说明Base URLhttp://localhost:5001或你的部署域名规范路径POST /v1/chat/completions根路径别名POST /chat/completions同一套 handlerContent-Typeapplication/json必须是合法 UTF-8鉴权支持三种传参方式任选其一即可Authorization: Bearer tokenx-api-key: token无Bearer前缀请求头X-Ds2-Source等自定义头也可携带来源信息token 的语义取决于它是否在config.keys中在 keys 里 → 托管账号模式服务端自动轮询选择 DeepSeek 账号不在 keys 里 → 直通模式token 被直接当作 DeepSeek token 使用。进阶用法请求头X-Ds2-Target-Account: email_or_mobile可指定使用某个托管账号账号不存在或队列耗尽时返回429。完整鉴权规则与路由总览见官方文档API.md。请求参数逐项说明请求体采用标准 OpenAI 结构。必填只有两个字段model与messages其余均为可选。逐项说明如下。1.modelstring必填支持三类取值DeepSeek 原生模型如deepseek-v4-flash、deepseek-v4-pro、deepseek-v4-vision内置 aliasgpt-4o、gpt-5、o3、claude-opus-4-6、gemini-2.5-pro等常见名称会自动映射内置别名定义在 internal/config/models.go可在config.model_aliases中覆盖-nothinking后缀如deepseek-v4-pro-nothinking无论请求里是否显式开启 thinking都会强制关闭思考输出。⚠️ 退役历史模型如gpt-3.5*、claude-1.*会被显式拒绝未知模型返回invalid_request_error不做启发式兜底。2.messagesarray必填标准 OpenAI 消息数组system/user/assistant/tool角色均支持。多轮对话的历史消息由你自行携带服务端会将其归一化为 DeepSeek 的单轮 prompt。3.streamboolean选填默认false。设为true时返回 SSE 流每段格式为data: json\n\n以data: [DONE]结束。4.toolsarray选填标准 Function Calling 定义type: functionname/description/parameters。传入后 DS2API 会在 prompt 层注入工具提示并对上游输出做防泄漏解析识别到工具调用时以结构化tool_calls返回普通文本不受影响。5. 兼容透传字段选填以下字段被显式收集并透传给上游最终效果由上游决定temperature、top_p、max_tokens、max_completion_tokens、presence_penalty、frequency_penalty、stop。透传逻辑可参考 collectOpenAIChatPassThrough{ model: deepseek-v4-pro, messages: [{role: user, content: 你好}], stream: false, temperature: 0.7, max_tokens: 4096 }响应结构说明非流式响应{ id: chat_session_id, object: chat.completion, model: deepseek-v4-pro, choices: [ { index: 0, message: { role: assistant, content: 最终回复, reasoning_content: 思考内容开启 thinking 时 }, finish_reason: stop } ], usage: { prompt_tokens: 10, completion_tokens: 20, total_tokens: 30, completion_tokens_details: {reasoning_tokens: 5} } }注意usage中新增的completion_tokens_details.reasoning_tokens它是思考链消耗的 token 数方便你区分可见正文与内部推理的成本。流式响应stream: trueSSE 事件序列非常规整data: {object:chat.completion.chunk,choices:[{delta:{role:assistant},index:0}]} data: {choices:[{delta:{reasoning_content:...},index:0}]} data: {choices:[{delta:{content:...},index:0}]} data: {choices:[{delta:{},index:0,finish_reason:stop}],usage:{...}} data: [DONE]行为要点首个 delta 固定携带role: assistant开启 thinking 时先输出delta.reasoning_content再输出delta.content最后一段携带finish_reason与usagetoken 计数优先透传上游 SSE上游缺失时才回退本地估算。Tool Calls 返回形态当请求含tools且模型决定调用工具时DS2API 的返回行为如下非流式返回message.tool_calls同时finish_reason为tool_calls、message.content为null{ choices: [{ index: 0, message: { role: assistant, content: null, tool_calls: [{ id: call_xxx, type: function, function: {name: get_weather, arguments: {\city\:\beijing\}} }] }, finish_reason: tool_calls }] }流式命中高置信特征后立即输出delta.tool_calls持续发送 arguments 增量无需等待完整工具参数闭合已确认的工具片段不会回流到delta.content。几个值得了解的边界行为代码块豁免Markdown fenced code block 或行内 code span 中的tool_calls仅视为示例文本不会被执行空参数不丢弃显式空字符串或纯空白参数会按空字符串进入结构化tool_calls是否拒绝缺参由你的工具执行侧决定thinking 兜底若可见正文为空但思维链里包含工具调用收尾阶段会补发标准tool_calls输出。快速上手cURL 最小示例非流式调用curl http://localhost:5001/v1/chat/completions \ -H Authorization: Bearer your-api-key \ -H Content-Type: application/json \ -d { model: deepseek-v4-pro, messages: [{role: user, content: 用一句话介绍 DS2API}], stream: false }流式调用只需把stream改为true并加-N禁止 curl 缓冲curl -N http://localhost:5001/v1/chat/completions \ -H Authorization: Bearer your-api-key \ -H Content-Type: application/json \ -d {model:deepseek-v4-flash,messages:[{role:user,content:hi}],stream:true}常见问题排查现象原因与处理400 invalid json请求体不是合法 UTF-8 JSONmodel xxx is not available模型名不在原生列表、alias 映射或model_aliases配置中401token 无效或托管账号登录失败429托管账号队列耗尽或指定X-Ds2-Target-Account的账号不可用413 request body too large请求体超过大小上限通用上限约 100 MiB 量级上游 thinking-only 空输出服务端会自动在同一 session 内重试一次托管模式下仍失败时会切号 fresh retry小结DS2API 的/v1/chat/completions在保持标准 OpenAI 语义的前提下额外提供了模型 alias 自动映射、-nothinking强制关思考、reasoning_tokens用量拆分与工具调用防泄漏解析等能力。接入时你只需要三件事换成新的 Base URL、配置一个 key、按本文参数表组装请求体。想继续深入可参考完整接口文档含 Responses、Claude、Gemini、Ollama 兼容接口API.md请求归一化实现参数如何被解析与透传request_normalize.goChat handler 主流程鉴权 → 归一化 → 非流式/流式分派handler_chat.go架构设计与部署说明docs/ARCHITECTURE.md、docs/DEPLOY.md【免费下载链接】ds2apiDeepSeek-Compatible Middleware Interface: A technical exploration project in Go, focusing on high-concurrency protocol adaptation. It serves as a reference implementation for converting diverse web protocols into standardized formats.项目地址: https://gitcode.com/GitHub_Trending/ds/ds2api创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

语音识别特征提取:从Python零实现Log-Mel谱图

语音识别特征提取:从Python零实现Log-Mel谱图

1. 为什么语音识别的第一步不是“听懂”,而是“看懂”声音的形状 很多人刚接触语音识别,第一反应是:“我要训练一个模型,让它听出我说的是‘打开灯’还是‘关掉空调’。”这想法没错,但实际动手时,十有八九…

📅 2026/9/15 17:55:28
EIP-7609 解读:为 TLOAD/TSTORE 引入超线性定价模型,重构瞬态存储 Gas 成本

EIP-7609 解读:为 TLOAD/TSTORE 引入超线性定价模型,重构瞬态存储 Gas 成本

EIP-7609 解读:为 TLOAD/TSTORE 引入超线性定价模型,重构瞬态存储 Gas 成本 【免费下载链接】EIPs The Ethereum Improvement Proposal repository 项目地址: https://gitcode.com/GitHub_Trending/ei/EIPs EIP-7609 是 Ethereum Improvement Pro…

📅 2026/9/15 17:55:28
网页的制作与建设全流程拆解:一份保姆级建站教程

网页的制作与建设全流程拆解:一份保姆级建站教程

网页的制作与建设全流程拆解:一份保姆级建站教程 域名买好了,服务器租下了,为什么网站还是打不开?这是我在过去十年接到的最频繁的问题。很多客户以为只要交了钱,网页就会像变魔术一样出现,结果卡在 DNS 解析、SSL…

📅 2026/9/15 17:55:28
MORE NEWS

更多资讯

📰

2023年免费FTP客户端推荐:Win11下五大工具实测对比与安全配置指南

干IT这行的,谁电脑里没装过两三个FTP客户端?从给同事传个安装包,到把整站静态资源推到服务器,再到从生产环境拉日志排查问题,这工具看着不起眼,真用起来却天天离不开。尤其是换到Windows 11之后&#xff0c…

📰

Qinglong 面板首次访问如何初始化登录账号并进入系统

Qinglong 面板首次访问如何初始化登录账号并进入系统 【免费下载链接】qinglong 支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台(Timed task management platform supporting Python3, JavaScript, Shell, Typescript) 项目地址: ht…

📰

阅读与社交能力的科学解析

1. 阅读量与性格特质的迷思:数据与现实的碰撞"读书多的人越不开朗"这个观点在社交网络上时常被提起,乍看似乎有些道理——我们印象中那些埋头书堆的学者确实常常给人沉默寡言的印象。但当我真正开始梳理相关研究和数据时,发现这个命…

📰

Uvicorn 快速上手:用 Python 构建 ASGI Web 服务的完整实战指南

Uvicorn 快速上手:用 Python 构建 ASGI Web 服务的完整实战指南 【免费下载链接】uvicorn An ASGI web server, for Python. 🦄 项目地址: https://gitcode.com/GitHub_Trending/uv/uvicorn Uvicorn 是一个基于 ASGI(Asynchronous Ser…

📰

LangChain4j OceanBase 向量存储集成实战:从相似度检索到混合检索的完整指南

LangChain4j OceanBase 向量存储集成实战:从相似度检索到混合检索的完整指南 【免费下载链接】langchain4j LangChain4j is an idiomatic, open-source Java library for building LLM-powered applications on the JVM. It offers a unified API over popular LLM …

📰

真机Canvas导出失败?用剪贴板文案替代canvasToTempFilePath

1. 项目概述:为什么真机上Canvas导出总失败?这根本不是代码写错了“真机Canvas导出失败”——这句话在微信小程序开发群里每天至少刷屏二十次。我去年带三个团队做教育类互动课件,几乎每个项目都卡在这个环节:开发者工具里一切正常…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬