上个月赶一个日志分析的小工具,本地跑得好好的,部署到服务器就报 model not found。翻文档才发现,写死的模型名是同事从某个聚合平台抄来的 deepseek-v4-flash,而官方接口只认 deepseek-chat 和 deepseek-reasoner。更麻烦的是账单——同一个模型在两个平台计费口径不同,月底对不上数。
这类坑其实就两个来源:模型名到底该写什么,以及什么时候该用哪个。
一个 DeepSeek 开放平台的账号(platform.deepseek.com),实名后创建 API Key,形如 sk- 开头,只显示一次,记得存好。账户里要有余额,新账号通常有赠送额度。
环境上,直接用官方的 OpenAI 兼容接口就行,Python 装 pip install openai 即可。base_url 指向 https://api.deepseek.com,不要带 /v1 后缀也别漏,两者都行但别写成别的路径。
client = OpenAI(api_key="sk-你的key", base_url="https://api.deepseek.com")
resp = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": "把这条 SQL 改成窗口函数写法"}],
)
print(resp.choices[0].message.content)
`
跑通这一步,说明 key、网络、额度都没问题。后面的问题基本都是参数或模型名引起的。
官方当前主要提供两个模型名:
- deepseek-chat:通用对话模型,响应快、价格低,适合摘要、改写、分类、常规代码补全。
- deepseek-reasoner:带思维链的推理模型,返回里会有 reasoning_content 字段,适合数学、复杂逻辑、需要多步推导的场景。它贵、慢,且不支持 temperature、top_p 这些采样参数,传了会直接报错。
至于 v4-flash、v4-pro 这类命名,官方接口里没有。它们大多出现在第三方聚合或云厂商托管平台上,本质是把同一批底层模型重新包装成不同档位卖。选择逻辑很简单:需要推理能力就上 reasoner,其余一律 chat,省钱省时间。
用 reasoner 时,流式输出要把两种内容分开:
一个容易踩的坑:多轮对话时,不要把上一轮的 reasoning_content 塞回 messages 里,接口会拒绝。只回传 content 就行。
个人开发者的实用策略是:默认全用 deepseek-chat,遇到它答错的题再切 reasoner 重试一次,用成本换准确率。模型名写死在配置文件里,别散落在代码各处,换平台时只改一处。
如果看到某个平台宣传"v4-pro 满血版",先确认它后面的 base_url 和计费方式,再决定要不要为那点便利付溢价。
如果你也想试试一个Key调多个模型的方便,可以看看充站——¥50起步,额度永久有效,用支付宝/微信就能付款。