用 token 指的是拿一串以 sk- 开头的密钥去调 DeepSeek 的接口,按输入和输出的字数计费。整个流程 6 步:控制台建密钥、账户留余额、记住 2 个模型名、按文档发 1 个 POST 请求、看 responses 里的用量字段、在用量页对账单。跑通一次大约 20 分钟,会写 10 行 Python 就够。
上个月帮一个做外贸的客户接这套接口,他反复问的其实是同一件事:token 到底怎么换成钱。我给他看了控制台用量页那张按天排的表,输入 1 列、输出 1 列,两列加起来乘单价就是当天花的钱,他当场就明白了。
缺任何一样都会卡在报错上,先把这 3 样凑齐再动手。
platform.deepseek.com 用手机号注册,注册完做实名认证,认证入口在右上角头像里。没有实名的账号拿不到可用的密钥。第 3 项最容易出事。我见过 3 个人在同一个下午重复创建了 5 个 key,就因为没存好。丢了不用找,删掉重建 1 个只要 10 秒,旧 key 记得在同一个页面点删除,避免以后对不上账。
DEEPSEEK_API_KEY,值就是那串 sk- 字符。Windows 在「系统属性 → 环境变量」里加,Mac 与 Linux 写进 ~/.zshrc 或 ~/.bashrc。代码里用 os.environ 读,别把密钥直接写在 py 文件里。deepseek-chat 与 deepseek-reasoner 两个名字,前一个是通用对话,后一个会先输出一段思考过程再给答案。名字写错返回 400,404 则指路径不存在,两种错误别混。pip install openai,版本 1.0 以上。DeepSeek 的接口按 OpenAI 的格式设计,改 base_url 就能直接用这套 SDK,省掉自己拼 HTTP 请求的活。client = OpenAI(api_key=..., base_url="https://api.deepseek.com"),然后 client.chat.completions.create(model="deepseek-chat", messages=[{"role":"user","content":"你好"}])。返回对象里的 choices[0].message.content 就是答案文本。usage 里有 3 个数:prompt_tokens(你发过去的)、completion_tokens(模型返回的)、total_tokens(两者相加)。这 3 个数就是计费依据,每次调用都看 1 眼,心里有数。第 4 步那个 base_url 结尾别加斜杠,加了会拼出双斜杠,返回 404。我第一次接的时候栽在这上面,翻了 20 分钟文档才发现。
第 4 步的请求里加 1 个参数 stream=True,答案会按字陆续返回,不用等整段生成完。界面上的差别很明显:不开流式,点发送后要空白 3 到 5 秒才出字;开了流式,0.5 秒内第一屏就有内容。
代码上多 4 行:for chunk in stream: 里取 chunk.choices[0].delta.content,拼接时判一下空值。首块与末块的 content 是 None,直接拼会报类型错误。计费跟不开流式一样,按最终 total_tokens 算。
做聊天窗口就开流式,做批量脚本就别开。批量任务里流式只会让日志更难读,省不下时间。
4 个字段决定结果和花费,下面这张表按填错的频率排了序。
| 字段 | 填什么 | 常见错填 |
|---|---|---|
| model | deepseek-chat 或 deepseek-reasoner,全小写,中间是短横线 | 写成 DeepSeek-Chat、deepseek_chat,或者填成版本号 |
| messages | 数组,每条含 role 与 content 两个键,role 取 system / user / assistant | 直接传一个字符串,或者漏掉 role |
| max_tokens | 按需要填,问答类 512 到 1024 够用 | 填 0 或负数;填得过大,模型啰嗦时费用翻倍 |
| temperature | 要稳定结果填 0.2 到 0.5,要发散写东西填 1.0 以上 | 填 2 以上,输出开始跑题 |
max_tokens 这一项对账单影响最大。它只是输出长度的上限。模型看到 4096 会倾向把话说满。我做摘要类任务时把它压到 300,同样的提示词,输出 token 从 1400 掉到 280,钱省下来 4 分之 3,摘要质量没掉。
接口报错的信息很短,按状态码分 5 类去对,比逐行读代码快。
print(len(key)) 打印长度,正常在 35 位上下。ping api.deepseek.com,再检查公司网络有没有拦 HTTPS。代理软件开着的时候,把接口域名加进直连名单。3 个动作能确认整条链路通了,不用靠猜。
官方文档给的估算是 1 个汉字约 0.6 token,1 个英文单词约 1 到 1.3 token。一段 500 字的提问,进模型算 300 token 上下;模型回 800 字,算 480 token 上下。两边都算钱,所以长文档问答的成本主要在你自己塞进去的那部分。
deepseek-chat 出字快,同样 500 字回答在 8 秒内能收完;deepseek-reasoner 会先写一段思考过程再给答案,那段思考也计 token,同样的问题消耗常常是前者 3 到 5 倍。
选法按任务分:改写、摘要、翻译、问答这类,用 chat;数学题、多步逻辑、代码调试,用 reasoner,它在推导链上出错率低一些。我做表格抽取时两种都试过,20 条样本里 chat 错 3 条,reasoner 错 1 条,代价是多花 4 倍 token。
省 token 这件事,最后落到的都是输入侧。输出侧能压的空间有限,输入侧压一半,总花费就下来 3 分之 1 左右。做完这 5 个动作,一个日调 500 次的小工具,月账单能从 3 位数掉到 2 位数。
密钥泄露的处理动作只有 3 个:控制台删掉旧 key、程序里换成新 key、把用量页那条异常记录截图留存。删掉之后旧 key 在 1 分钟内失效,正在跑的任务会报 401 并中断,重启一次就好。密钥别写进前端页面,浏览器里打开源码就能看到,被人拿去刷量当天就能烧掉几十块。
本文信息核对时间:2026-11