怎么调用 deepseek 新版模型

接入与开发

面向开发者,讲清 deepseek 新版与 R1 模型从鉴权、请求体到超时并发降级的工程落地做法,避开协议层空谈。

很多开发者拿到 Key 之后能跑通一条 hello world,却在接进项目时卡住:模型名该填哪个、流式怎么开、超时设多久、并发上来就报错、日志里看不出一次请求到底慢在哪贵在哪。这篇不讲协议兼容层,也不讲客户端怎么配,只给接入与开发环节的判断标准和排查顺序,让你把调用稳稳接进自己的服务里。

拿到 Key 能跑通一条 hello world,跟把一个调用稳稳接进自己的服务,是两回事。真正卡人的地方往往很碎:模型名到底填哪个、流式开不开、超时给多久、并发一上来就报错、日志里看不出一次请求慢在哪贵在哪。这篇不讲协议兼容层,也不讲客户端怎么配,只给接入和开发环节的判断标准与排查顺序。

先把一个前提说清楚:模型名、接口路径、计费口径这些会变,别靠记忆里的写法硬编码。接入前先到站内官方页面对一遍当前口径,把变动点集中到配置层,后面换版本才不至于满仓库改代码。

先确认调用哪个入口和哪个模型名

接入第一步不是写代码,是确认两件事:请求打到哪个入口,以及请求体里模型名填什么。走官方直连和走兼容层,路径和字段可能不完全一样,这个口径以站内页面为准,不要照搬别人的示例。

入口地址
决定你用的是哪套鉴权与字段约定,接入前去官方页面核一遍当前口径
模型名
当成配置项而非硬编码,写进环境变量或配置文件,换版本只改一处
推理类输出
带思维链的模型响应会多出相关字段,别用只认 content 的老结构解析
  • 先把一次真实响应的原始结构打印出来,看清楚有哪些字段,再动手写解析,不要凭印象写
  • 模型名统一从配置读,禁止散落在业务代码里,搜索一遍确认没有漏网的字符串
  • 不确定用哪个模型时,到 /models 对照当前模型清单,别靠记忆填
  • 鉴权失败先确认是不是入口和 Key 对不上,换入口时 Key 未必通用

请求体怎么写,流式要不要开

请求体通常只有模型名和消息数组是必填,温度、最大长度这类按任务调。流式不是性能开关,而是体验和工程复杂度的取舍:面向用户界面开流式,后台批处理用非流式更好做重试和统计。

场景流式理由
面向用户的对话界面开首字出现更快,等待感低
后台批处理 / 批任务不开一次性拿到完整结果,重试和统计简单
长文生成且要落库看情况落库用非流式,边生成边展示用流式
需要中间过程展示开可以边收边渲染,但解析逻辑要更严谨
  • 开流式就要处理半包:按行切分数据块,遇到结束标记再收尾,别假设一次网络读取就是完整一条消息
  • 断连要有兜底,客户端断开时及时停止后续请求,避免白花额度
  • 把每次请求的模型名、耗时、用量一起写进日志,后面排查才有依据
  • 温度这类参数按任务定:聊天可以放宽,结构化输出和代码类建议压低随机性

超时、并发和降级怎么设

超时不要用一个笼统的数字扛所有情况。连接、读取、整体三档分开设,读取这档要给推理留足余量,长输出被过早掐断是常见事故。并发则要按账号额度来定,本地先压一层比被限流后再退避省事。

  1. 设三档超时连接超时短一点,读取超时按最长输出估,整体超时作为最后兜底;上线后看日志里的耗时分布再调,别拍脑袋
  2. 本地限并发用信号量或队列把并发压在额度以内,超过就排队而不是直接打出去,避免集中报错
  3. 按错误分类处理网络类错误可重试并加退避,参数类错误重试无用要改代码,鉴权类先查 Key 和额度
  4. 准备降级路径主模型或主入口不可用时切备用,切换逻辑放在配置层,别写进业务代码
重试不是万能药:能重试的只有网络类错误,参数写错重试一百次也是同一个错。

日志和最小评测怎么留

日志是后面排查慢和贵唯一的抓手。至少把请求 ID、模型名、入参长度、出参长度、耗时和错误码记下来,能凭一条日志复现当时那次请求,才算合格。没有这层记录,换模型之后变好还是变差只能靠感觉。

  • 建一个二三十条真实任务的小用例集,每次换模型或改提示词都跑一遍,对比通过率和返工率
  • 用例不用追求全面,能回答「这次改动是变好还是变差」就够
  • 换模型或换入口后计费规则可能变,用量到 /tools/token-price-calculator 换算一次再下结论
  • 别只看单次耗时,把成败和耗时一起看,快了但错得多不算改进
下一步模型清单、计费口径和入口可信度都会变,接入前到站内对一遍当时的数字,比记在脑子里靠谱。

常见问题

新版模型和 R1 的调用方式一样吗?

大体是同一套 HTTP 调用结构,差别主要在模型名和响应字段。R1 类模型会多出推理过程相关内容,如果你只解析正文,最好先打印一次原始响应看看结构,再决定解析逻辑,别直接套用旧代码。

调用一直超时或者返回很慢,先查什么?

按顺序查:先量一下你这边的网络延迟基线,到 /tools/speed-test 测一次;再看是不是读取超时设得太短,长输出容易被截断;最后看是不是并发撞上了额度上限导致排队。三项排完基本能定位。

并发一高就报错,是不是只能降速?

不一定。先在本地加一层队列把并发压到账号允许的范围内,再对可重试的错误做指数退避。如果业务量确实大,可以考虑申请提额或者走多入口分流,但分流逻辑要放在配置层,别硬塞进业务代码。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。