DeepSeek API调用指南

📅 2026-09-29 · 分类:教程

凌晨一点,想给自建的 CLI 工具接个模型跑代码审查。搜出来的名字一堆:deepseek-chat、deepseek-reasoner,还有些客户端里写着 v4-flash、v4-pro。照着别人的配置抄了 model 参数,请求直接返回 400,说是模型不存在。折腾半小时才明白——模型名不能抄,得看自己账号里实际能用什么。

注册 DeepSeek 开放平台账号,在控制台创建 API Key,sk- 开头,只在创建时完整显示一次,立刻塞进环境变量,别写在代码里。账户要有余额,赠送额度用完就停。

Python 侧只需要 OpenAI 官方的 SDK,DeepSeek 兼容 OpenAI 协议,不用装额外的东西:

第一件事不是写代码,是确认可用模型:

返回的 ID 列表才是你 key 真正能调的东西。

主力就两个。deepseek-chat 是通用对话模型,响应快、单价低,日常问答、文案、代码补全、批量打标全够用。deepseek-reasoner 带思维链,输出前先做内部推理,适合数学推导、复杂算法调试、多步逻辑题,代价是慢和贵,而且不吃 temperature 这类采样参数。

至于 v4-flash、v4-pro 这类名字,常见于第三方客户端或聚合平台,背后指向的模型、计费口径和上下文长度都可能不一样。稳妥做法就是跑一遍上面的 /models,用返回结果里的 ID,别信博客里的字符串。官方上新后这个接口会跟着变。

client = OpenAI( api_key=os.environ["DEEPSEEK_API_KEY"], base_url="https://api.deepseek.com", )

resp = client.chat.completions.create( model="deepseek-chat", # 换 reasoner 就改这一行 messages=[ {"role": "system", "content": "你是 code review 助手"}, {"role": "user", "content": "这段 SQL 能改成窗口函数吗?"}, ], stream=True, )

for chunk in resp: print(chunk.choices[0].delta.content or "", end="") `

用 reasoner 时,推理过程在 delta.reasoning_content,最终答案在 delta.content,两个字段分开取。

流式输出在命令行场景几乎是必须的,stream=True 打开,否则用户盯着空屏等十几秒。超时要自己加,配个指数退避重试,网络抖动比想象中频繁。固定的 system prompt 放在最前面,能吃到上下文缓存,重复调用会便宜不少。最后,Key 进 .gitignore,别等推上

如果你也想试试一个Key调多个模型的方便,可以看看充站——¥50起步,额度永久有效,用支付宝/微信就能付款。

← 返回文章列表