DeepSeek API:密钥、价格及何时切换到 本地
DeepSeek API 让您通过自己的代码访问 DeepSeek 模型,按 token 计费,请求格式与 OpenAI 的格式兼容。本指南介绍如何创建密钥、发起首次调用,以及正确阅读官方定价表,避免看错条目。文中不抄录任何价格:金额会变化,只有服务提供方的页面才是权威依据。最后,本指南列出判断标准,说明在什么情况下本地模型会比 API 更简单或更便宜。
#DeepSeek API:开始前的关键要点
DeepSeek提供两种使用入口,不要混淆。聊天网站免费,可通过浏览器使用。API则面向开发者:您的程序发送请求,DeepSeek的服务器返回响应,每次交互的费用都会从您的余额中扣除。本指南介绍的是第二种入口。
- 这是什么
- 由 DeepSeek 托管、按使用量付费的服务。您无需下载任何内容:模型在提供方的服务器上运行。
- 格式
- 兼容 OpenAI API。能够与 OpenAI 通信的库和工具,只需修改两项设置就能正常使用:基础地址和密钥。
- 计费方式
- 按 token 计费,从预付余额中扣款。价目表区分发送的 token 和生成的 token,其中发送的 token 又分为已缓存和未缓存两类。
- 您的数据
- 每次请求都会离开您的基础设施,并在服务提供商的服务器上处理。如果您处理个人数据或机密数据,这是首先需要审查的问题。
- L'alternative
- DeepSeek 也发布其模型的权重。您可以将适配您设备的版本在本地运行,无需按token计费或上传数据。
#先决条件
在工作场所部署本地 AI:GDPR、AI 法案、多用户架构、成本、供管理层参考的说明材料。
- 在线空间,终身可用
- PDF + 文件
- 30 天内退款
- 开发者账号
- 开发者账户需在 DeepSeek 平台上创建,地址为 platform.deepseek.com。这个地址与聊天网站的地址不同。
- 一种支付方式
- 该服务使用您预先充值的余额。没有可用余额时,API 调用会被拒绝。
- 调用API的工具
- curl suffit pour un premier essai. Pour un vrai projet, Python 3 avec la bibliothèque openai, ou son équivalent pour Node.js.
- 一个安全存放密钥的地方
- 在您的电脑上使用环境变量,在生产环境中使用密钥管理工具。绝不要把密钥写入源代码。
#创建一个 DeepSeek API密钥
- 01在平台上开通账户请自行输入 platform.deepseek.com 访问该网站,然后注册。用于工作时,请使用团队共享邮箱,而不是个人邮箱:账户中保存着余额和密钥,即使有同事离职,也必须能继续使用。
- 02充值余额可以在平台的充值页面为账户添加余额。请先充值一小笔金额:这对测试来说已经绰绰有余,而且如果编写不当的循环失控,也能通过余额上限限制支出。
- 03生成密钥在 API 密钥栏目中创建一个新密钥,并用能说明其用途的名称命名(“essais-poste-clara”、“prod-support”)。请立即复制密钥:与大多数平台一样,只有在创建时才能看到完整密钥。
- 04将密钥保存在代码之外将其存入环境变量。您的程序会在启动时读取它,而它不会出现在 Git 仓库或屏幕截图中。
#首次调用:与 OpenAI 兼容的格式
API 的基础地址是 https://api.deepseek.com。密钥通过 Authorization 请求头传递,前面加上 Bearer。在发送问题之前,请先请求您的密钥可调用的模型列表:模型标识符会随代际更替而变化,而这一列表的获取方式本身就保证了它是最新的。
响应是一个 JSON 对象,其中每个条目都有一个 id 字段。您需要将这个标识符原样复制到请求中。许多教程使用 deepseek-chat 和 deepseek-reasoner 这两个历史名称:使用前,请确认它们确实出现在返回的列表中,并查阅定价页面,了解每个名称如今对应哪个模型。
在 Python 中,使用 OpenAI 官方库即可。与调用 OpenAI 相比,只有两个参数不同:API 密钥和基础地址。
最后一行对后续操作最有用。usage对象显示您发送了多少个token(prompt_tokens),以及模型生成了多少个token(completion_tokens)。上下文缓存文档还介绍了两个字段:prompt_cache_hit_tokens和prompt_cache_miss_tokens,用于区分已缓存和未缓存的输入token。请显示您自己调用返回的对象:应以它为准,而不是以示例为准。
#DeepSeek API 的费用:请查阅官方定价表
所有价格都位于文档的同一页面上。请在本指南旁边打开该页面:以下段落解释了每一行的含义,而非其具体数值。
价目表以表格形式呈现,每个模型占一列。价格按每百万 token 计。对于普通法语文本,一个 token 相当于略少于一个词,但这一比例因模型和内容而异:要统计数量,请以响应中的 usage 对象为准,而不是依赖换算规则。
- 输入、缓存未命中(cache miss)
- 您发送的 token 的常规价格:系统指令、对话历史、附加文档、问题。
- 输入,缓存命中(cache hit)
- 折扣价格,适用于服务最近已处理并缓存的部分请求内容。
- 输出(output)
- 模型生成的 token 的费用。请将这一行与输入费用一行比较:在这类 API 中,输出费用通常更高。
- 推理词元
- 处于推理模式的模型会在回答前写出一段思考内容。请在页面上确认这些 token 如何计数:如果它们按输出计费,那么一份三行的回答可能要付出一页内容的费用。
- 最大上下文长度和输出长度
- 同一张表还列出了上下文长度和单次回复的最大长度。这两项不是价格,但决定了单次请求费用的上限。
- 货币
- 记下显示的币种。如果价目表不是以欧元计价,请将汇率换算以及银行可能收取的充值手续费计入成本。
#上下文缓存:造成差异的首要因素
缓存按前缀匹配:如果某个请求的开头与近期某个请求的开头相同,这部分共同内容就会按优惠费率计费。您无需启用任何功能。不过,构建请求时内容的排列顺序会决定您需要支付的费用。
- 将固定内容放在最前面
- 将每次调用之间保持不变的内容放在最前面:系统指令、示例、参考文档。
- 将可变内容放在末尾
- 将用户的问题、日期和会话标识符放在最后。只要在第一行插入日期,就足以让每个请求变得独一无二,从而失去缓存带来的好处。
- 以测量代替猜测
- 缓存命中并无保证。实际命中的比例可在 usage 对象的缓存字段中查看。如果您的请求内容相似,但这一比例仍接近零,就需要重新审视请求的构造方式。
#低谷时段及临时折扣
API 价目表可能规定在特定时段或上线初期提供优惠价格。在将这些优惠计入预算之前,必须核查三个方面。
- 今日页面上是否有折扣信息?
- 如果官方页面既未提及适用时段,也未提及折扣,就应视为没有此类时段或折扣。不要根据旧文章中看到的折扣来制定预算。
- 使用哪个时区?
- 时间范围通常以UTC表示。在法国本土,冬令时加一小时,夏令时加两小时。
- 您的工作负载能否调整执行时段?
- 低谷时段只对可以等待的处理任务有利:夜间生成摘要、文档分类、批量生成。白天为客户提供回答的助手无法从中受益。
#使用您的数据进行计算
每次调用的费用由三项构成:缓存外输入token、缓存内输入token和输出token,每项分别乘以其单价后除以一百万。以下函数将此公式应用于响应的usage对象。三个单价默认为零:请自行从官方页面复制您所调用模型的对应数值。
#跟踪使用量
可以在平台上查询剩余余额,API 也提供了一个以 JSON 格式返回余额的接口。这样就能在余额耗尽之前触发警报,而不是等到耗尽之后。
- 记录每个调用
- 记录日期、模型以及 usage 对象中的计数器。两周真实使用环境下的日志胜过任何估算:这是决定使用 API 还是本地部署的基础。
- 限制输出长度
- max_tokens 参数限制回答的长度,因此也限制其最高成本。请根据任务调整该参数,而不是保留默认值。
- 监控历史记录
- 在对话中,每一轮都会重新发送全部历史记录。一段有五十次交互的对话,会将开头的内容发送五十次,即使缓存能降低这部分费用。超过一定长度后,请进行摘要或截断。
- 赠送额度与充值额度
- 如果您的账户除了充值额度,还有赠送额度,定价页面会说明这两种额度的使用顺序。也请检查赠送额度是否有到期日期。
#API还是本地模型:如何选择
不存在一个普遍适用的门槛,超过它本地运行就会更便宜,本指南也不会编造这样的门槛。结果取决于只有您自己掌握的三个数值:您实际使用的 token 数量、当天的价目表,以及您若购买硬件所需支付的价格。下面的判断标准往往能让您在拿出计算器之前就做出决定。
- 隐私
- 个人数据、合同、专有代码、客户档案:通过API,这些内容会传输到位于欧盟以外的第三方,这属于《通用数据保护条例》(RGPD)的范畴,需由您的数据保护官进行合规确认。在本地部署时,此问题不适用,这往往是决定性因素。
- 使用量与使用规律
- 使用量较少或使用不规律时,API 更合适:不使用就无需付费。使用量大且可预测时,本地运行更合适:无论机器处理十次请求还是一万次请求,成本都相同。
- 所需质量
- API提供的是厂商的大型模型服务。在配备12至24GB VRAM的显卡上,您可以运行明显更小的模型:以Q4_K_M格式计算,14B模型约需9GB,32B模型约需19GB。如果您的任务需要大型模型,本地部署则要求更高端的硬件配置。
- 可用性
- API 的可用性取决于服务提供商的负载和您的网络连接。本地运行则取决于您的机器,您需要自行监控并排除故障。
- 预算可预测性
- API费用按实际使用量计算,可能超出预期。本地部署的开销是固定成本,事先可知:购买或租赁、电力消耗、维护时间。
- 人工耗时
- API 接入很快:一个密钥、几行代码即可。本地服务器则需要安装、更新,还需要有人知道服务器不再响应时该如何处理。这些时间也有成本,应纳入比较。
#四步对比法
- 01测量通过API运行您的实际使用场景,持续两周,并记录usage对象。这样可得到实际的月度使用量,分为未命中缓存的输入、命中缓存的输入和输出。
- 02估算 API 成本按当天的官方价目表计算这一用量的费用。这就是您的每月 API 成本,并注明价格查录日期。
- 03估算本地运行成本取运行目标模型的机器价格,按您计划的使用时长分摊,再加上电力和维护时间成本。GPU 服务器成本计算指南详细说明了这一过程。
- 04先验证质量,再比较价格向您的硬件能够运行的本地模型提交二十条真实请求,并将其回答与 API 的回答进行比较。如果结果不符合要求,比较成本就失去了意义:您比较的并不是同一种服务。
#两者使用相同的代码
在两者之间切换无需重写您的应用。Ollama 默认监听 http://localhost:11434,也在 /v1 路径下提供兼容 OpenAI 的接口。以下代码根据一个环境变量,在 DeepSeek API 和本地模型之间切换。
deepseek-r1:14b 是一个蒸馏版本,能装入 RTX 3060 这样的 12 GB 显存显卡。它不是 API 提供的那个模型:处理困难任务时,应预期它的回答准确性较低。这套配置正是为了让您在方法的第四步中,用自己的请求观察这一差异。
#故障排除:常见错误
DeepSeek 的文档中有一个专门介绍错误代码的页面。以下列出的是刚开始使用时会遇到的情况;如有疑问,应以官方页面为准,而不是本摘要。
- 401,认证失败
- 密钥缺失、截断或已撤销。请确认在启动程序的终端中环境变量已正确设置,且复制粘贴过程中未出现空格。
- 402,余额不足
- 账户余额已耗尽。请在平台上充值。通过余额查询接口设置告警,可以避免生产环境中出现这种情况。
- 400或422,请求无效
- JSON 请求体格式有误,或某个参数不被接受。最常见的原因是从旧教程中复制了模型标识符:请重新查看 /models 列表。
- 429,请求过多
- 您的请求发送速度超过了服务允许的速率。请拉开调用间隔,并逐次延长等待时间后重试。
- 500或503,服务器错误或过载
- 问题出在厂商端。请稍后重试,并在您的应用中设置明确的提示或回退模型。
- 响应非常缓慢
- 在高负载期间,请求可能需要长时间才能开始响应。在客户端设置最大超时时间,并启用流模式以实现逐步显示响应。
- 超出预期的费用
- 三个常见原因:推理 token 被计入输出、缓存很少命中、每轮对话都重新发送完整的对话历史。记录 usage 对象的日志可以帮助区分这些原因。
#官方来源
价格、模型列表和计费规则会变化。这些服务提供方的页面是参考依据,任何涉及具体数值的决策都应先查阅这些页面。
#深入了解
本指南仅涵盖密钥、价目表的解读和决策方法。要估算费用并进行安装,请继续参阅本站的以下指南:
- 运行 LLM 的 GPU 服务器成本是多少?
- 购买、租赁或 API:第三步比较中需累加的成本项。https://quelllm.fr/guide/cout-serveur-gpu-llm
- 免费 LLM API:真正的对比
- 如果免费档位能满足您的需求,可了解各项免费方案、其配额,以及您的数据会如何被处理。https://quelllm.fr/guide/api-llm-gratuites-vs-local
- DeepSeek V4 Pro 本地运行
- 在本地自行运行该系列大模型所需的硬件配置。https://quelllm.fr/guide/guide-deepseek-v4-pro
- 本地 AI 与 ChatGPT 对比
- 同样是选择云端还是本地的问题,但这里讨论的是对话用途,而非 API 使用。https://quelllm.fr/guide/ia-locale-vs-chatgpt
有反馈、发现了错误,或想补充说明?请告诉我们,让这份指南对每个人都更有帮助。