
DeepSeek 宣布周末全天谷价。先说结论这个调整对普通问答用户影响不大但对用 API 做应用开发、跑批量任务、维护定时评测管线的开发者来说是一个需要重新算账的信号。以前大家习惯把高成本任务放在工作日低峰期跑现在官方直接把周末全天划成谷价时段意味着离线批量推理、语料清洗、评测集跑分这类不要求实时响应的任务可以更放心地排到周末执行。这次消息最值得关注的点有三个。第一DeepSeek API 长期保持 OpenAI 兼容格式所以不管你是直接用官方 SDK还是通过 VSCode、Codex、各种 agent 框架接入改动成本都很低。第二社区里围绕 DeepSeek 的部署工具、代理服务、桌面端封装越来越多接入方式已经从“调一个 HTTP 接口”扩展到了“接进整个研发工具链”。第三价格策略开始有“时段”概念这给成本敏感型任务提供了一个明确的调度窗口。这篇文章不讨论“周末上班是不是更划算”这个梗只讲技术侧能落地的事怎么申请 API Key、怎么用 Python 和 curl 调用、怎么写批量任务脚本并配合定时调度、怎么把 DeepSeek 接入 VSCode/Codex 这类工具、API 调用和本地部署怎么选以及接入第三方代理时最常见的 400 报错怎么排查。适合正在用 DeepSeek API 做开发的同学也适合团队里负责跑批量数据处理和评测的人。1. 核心能力速览先把 DeepSeek 当前对外能力整理成一张表。需要说明的是具体价格、谷价时段、可用模型清单这类信息是动态变化的最终以 DeepSeek 官方公告和开放平台计费页为准。能力项说明服务类型大模型 API 服务 官方开源模型价格策略常规时段计费 周末全天谷价时段具体以官方计费页为准API 兼容性OpenAI 兼容格式适合接入各类第三方工具调用方式HTTP API、OpenAI SDK、curl、第三方代理典型场景对话、代码补全、批量推理、RAG、Agent、评测跑分第三方生态VSCode 插件、Codex 接入、代理服务、桌面端封装、企业微信机器人等本地部署官方开源模型支持本地部署硬件门槛取决于模型规模批量任务可以配合脚本与定时调度实现批量调用和成本控制从这张表能看出DeepSeek 的定位比较清晰对外提供 OpenAI 兼容 API降低接入成本同时对开源社区开放模型权重给有数据隐私和离线需求的团队留了一条本地部署的路。这次“周末全天谷价”调整实际上是在强化第一条路径的成本优势。2. 周末谷价对开发者的实际影响2.1 谷价时段适合跑什么任务不是所有任务都适合挪到周末。判断标准就一条任务是否要求实时响应。适合放到谷价时段的任务包括批量文本分类、情感分析、关键词抽取对单条延迟不敏感离线评测集跑分比如给一组测试题批量生成答案再算准确率数据集清洗和打标几千条数据一次性灌进去跑完日志摘要、工单归类、定时报表生成非实时 Agent 任务比如夜间批量处理队列中的请求。这类任务的特点是可以排队、可以重试、结果不需要秒回。把它们安排在谷价时段能直接降低账单。不适合挪到周末的任务包括线上对话、客服机器人用户不会等两天再收到回复需要实时响应的 IDE 补全如果模型响应跨时段切换体验会不稳定对时效敏感的监控告警分析凌晨的异常不应该等到周末再处理。更合理的做法不是“所有请求都挤到周末”而是把任务按延迟敏感度拆成两条链路实时链路走常规调用离线链路排到谷价时段。2.2 对成本核算的影响以前做成本预估只需要看单价和 token 用量。现在多了一个变量调用时段。这带来两个变化。第一批量任务的成本模型从“单价 × 用量”变成了“单价 × 用量 × 时段系数”。做预算时要把离线任务的比例和时段分配写进预估公式。第二对个人开发者来说周末谷价降低了试错成本。以前想跑一批 prompt 实验、对比几个 system prompt 的效果还要心疼 token 费用现在可以把这类探索性测试统一放到周末执行。不过要提醒一句谷价的具体折扣、是否覆盖所有模型、是否有最低消费这些细节必须以官方计费页为准不要根据标题或者二手消息做预算。2.3 合规与使用边界API 调用要遵守服务条款也要注意数据边界。企业数据、用户隐私数据、未公开的业务日志直接发给第三方 API 之前需要做脱敏或合规评估。如果数据完全不能出内网那就得考虑本地部署方案。涉及人脸、声音、版权素材等内容时更需要确认授权不能因为“只是跑批量任务”就忽略合规要求。3. 环境准备与前置条件在写代码之前先把环境准备好。整体流程不复杂分三步注册开放平台、创建 API Key、准备本地 Python 环境。3.1 注册开放平台并创建 API Key访问 DeepSeek 开放平台注册账号后进入控制台找到 API Key 管理页面创建一个新的 Key。创建后马上复制保存因为很多平台只在创建时显示一次完整 Key。这里有一个安全习惯不要把 API Key 硬编码在代码里更不要提交到 Git 仓库。推荐放到环境变量或者本地.env文件中。# 设置环境变量实际 Key 以控制台为准 export DEEPSEEK_API_KEYsk-xxxxxxxxxxxxxxxx如果你的平台支持创建多个 Key可以按项目拆分一个 Key 给线上服务一个 Key 给批量任务一个 Key 给本地测试。这样某个 Key 泄漏或者触发限流时影响范围是可控的。3.2 本地 Python 环境调用 API 只需要 Python 3.8 以上版本再装一个openaiSDK 或者直接用requests。openaiSDK 的好处是兼容流式输出和超时设置代码更简洁。# 创建虚拟环境推荐 python -m venv .venv source .venv/bin/activate # Windows 下执行 .venv\Scripts\activate # 安装依赖 pip install openai python-dotenv requests如果你的网络环境无法直接安装最新版 SDK也可以用requests直接发 HTTP 请求后面会给出对应示例。3.3 第三方工具准备如果你想把 DeepSeek 接入 VSCode、Codex 或者其他编程工具需要确认这些工具是否支持自定义模型提供方。大多数 OpenAI 兼容客户端只需要配置三个字段base_url、api_key、model。准备好这三个值后面章节会给出通用配置示例。另外要留意搜索热词里高频出现的 deepseek harness、deepseek hermes 这类名字可以理解为社区里把 DeepSeek 封装成桌面端、IDE 插件或代理服务的第三方项目。它们解决的问题是一致的让 DeepSeek 能像本地工具一样被调用。但安装方式差异很大建议直接看对应项目仓库的 README不要照搬网上过时的教程。4. DeepSeek API 调用示例4.1 Python 使用 OpenAI SDK 调用DeepSeek API 兼容 OpenAI 格式所以可以直接用openaiSDK。下面是一个基础调用示例。import os from openai import OpenAI client OpenAI( api_keyos.getenv(DEEPSEEK_API_KEY), base_urlhttps://api.deepseek.com, # 以开放平台控制台实际地址为准 ) response client.chat.completions.create( modeldeepseek-chat, # 以官方 API 模型列表为准 messages[ {role: system, content: 你是一个技术助手回答要简洁准确。}, {role: user, content: 用三句话解释什么是 token。}, ], temperature0.7, max_tokens512, ) print(response.choices[0].message.content)这段代码覆盖了最核心的调用逻辑设置 base_url 和 api_key、构造 messages、指定模型、拿到返回内容。需要注意model参数要填当前账号可用的模型名。不同时期官方开放的模型名可能不同以控制台或官方文档的模型列表为准。报错信息里如果出现模型名不存在多半是填了旧的或者第三方自定义的名字。4.2 使用 curl 调用如果你不想引入 SDK用 curl 也可以完成完整调用。适合快速验证连通性。curl https://api.deepseek.com/chat/completions \ -H Content-Type: application/json \ -H Authorization: Bearer $DEEPSEEK_API_KEY \ -d { model: deepseek-chat, messages: [ {role: system, content: 你是一个技术助手。}, {role: user, content: 什么是 API} ], max_tokens: 256 }实际请求路径和参数名以官方文档为准这里展示的是 OpenAI 兼容的通用结构。如果返回 404优先检查 base_url 是否拼接正确如果返回 401检查 Authorization 头是否带了正确的 Key。4.3 流式输出与超时设置对话类场景建议开启流式输出让用户尽快看到第一个 token而不是等完整结果。import os from openai import OpenAI client OpenAI( api_keyos.getenv(DEEPSEEK_API_KEY), base_urlhttps://api.deepseek.com, ) response client.chat.completions.create( modeldeepseek-chat, messages[{role: user, content: 帮我列一个 Python 学习计划用 5 条要点说明。}], streamTrue, timeout60, ) for chunk in response: delta chunk.choices[0].delta if delta and delta.content: print(delta.content, end, flushTrue)流式返回需要按delta逐段取内容。这里特别建议设置timeout否则网络抖动时请求可能一直挂着批量任务很容易卡死后面会讲对应排查方案。5. 批量任务与谷价时段成本优化5.1 批量任务脚本设计批量调用 API 的核心是三个点从文件读入任务、逐条调用并保存结果、失败重试。下面给一个通用模板实际字段需要按你使用的 API 格式调整。import os import json import time import csv from openai import OpenAI client OpenAI( api_keyos.getenv(DEEPSEEK_API_KEY), base_urlhttps://api.deepseek.com, ) def call_model(prompt: str, max_retries: int 3): for attempt in range(max_retries): try: resp client.chat.completions.create( modeldeepseek-chat, messages[ {role: system, content: 你是一个数据标注助手只输出 JSON。}, {role: user, content: prompt}, ], max_tokens1024, timeout60, ) return resp.choices[0].message.content except Exception as e: print(f[retry {attempt 1}] error: {e}) time.sleep(2 ** attempt) # 指数退避 return None def run_batch(input_file: str, output_file: str): with open(input_file, r, encodingutf-8) as f: items [line.strip() for line in f if line.strip()] results [] for idx, item in enumerate(items): result call_model(item) results.append({index: idx, input: item, output: result}) print(f[{idx 1}/{len(items)}] done) # 控制速率避免触发限流 time.sleep(0.5) with open(output_file, w, encodingutf-8) as f: json.dump(results, f, ensure_asciiFalse, indent2) if __name__ __main__: run_batch(inputs.txt, outputs.json)这个脚本有几个值得保留的设计失败重试带指数退避第一次失败等 2 秒第二次等 4 秒避免在限流瞬间猛烈重试每条任务之间加固定间隔用时间换稳定中间结果全部落到 JSON 文件任务中断后可以从输出文件恢复不用全部重跑。5.2 定时调度到谷价时段配合定时任务把批量脚本安排在谷价时段执行。Linux/macOS 用 cronWindows 用任务计划程序。# 每个周六、周日的凌晨 2 点执行批量任务 0 2 * * 6,0 cd /path/to/project /usr/bin/python3 batch.py batch.log 21如果你要跑的任务量很大建议在脚本里加一个“断点续跑”逻辑启动时先读取输出文件跳过已经处理过的行这样即使半夜任务中断第二天补跑也不需要从零开始。5.3 token 用量与成本核算批量任务跑完要关注两个数字token 消耗和请求失败率。在脚本里打印每次响应的usage字段汇总后就能得到总 token 数。把总 token 数乘以对应时段的单价就是这次批量任务的大致成本。# 提取单次请求的 token 用量 prompt_tokens response.usage.prompt_tokens completion_tokens response.usage.completion_tokens print(fprompt_tokens: {prompt_tokens}, completion_tokens: {completion_tokens})成本核算可以简单按“输入 token 单价 × 输入量 输出 token 单价 × 输出量”来估算。如果输出被截断或者重试次数过多成本会明显上升这也是排查效率问题的一个线索。6. API 调用与本地部署怎么选“DeepSeek 能不能本地部署”是社区里被问得最多的问题之一。答案是能但要不要本地部署取决于你的场景。6.1 选 API 调用的场景如果满足以下条件直接用 API 更省事数据可以出内网且符合公司数据合规要求需要快速上线不想维护 GPU 服务器调用量不稳定峰值高但均值低需要官方持续更新模型能力。API 调用的优势是零运维、按量付费、官方保证可用性。缺点是数据要经过第三方服务长线成本也可能超过自建。6.2 选本地部署的场景如果数据敏感、业务离线、或者调用量大到 API 成本失控本地部署更合适。DeepSeek 官方开放过多款开源模型权重例如 DeepSeek-V3 系列、DeepSeek-R1 系列等具体型号和推荐配置以官方模型仓库的 README 为准。本地部署的常见工具链包括Ollama适合个人电脑和 Mac 上快速跑小模型一条命令启动vLLM适合 GPU 服务器上做高并发推理吞吐量高llama.cpp适合 CPU 推理或者内存受限的环境SGLang适合需要复杂采样和结构化输出的场景。硬件门槛要强调一句具体显存需求取决于模型参数量、量化精度和并发数。小尺寸量化模型在消费级显卡上可以跑完整的大尺寸模型通常需要多张企业级显卡才能获得可用速度。不要轻信“一张 8G 显卡就能跑满血大模型”的说法要以模型仓库给出的实测配置为准。6.3 混合方案对多数团队来说更稳妥的是混合方案敏感数据走本地部署非敏感、高并发的任务走 API周末谷价时段的离线任务也走 API。这样既控制数据风险又利用官方服务的稳定性。7. 把 DeepSeek 接入 VSCode、Codex 与代理工具7.1 OpenAI 兼容配置很多第三方客户端支持自定义 OpenAI 兼容接口。配置字段通常只有三个base_url、api_key、model。{ base_url: https://api.deepseek.com, api_key: sk-xxxxxxxxxxxxxxxx, model: deepseek-chat }用这套配置可以把 DeepSeek 接到支持自定义提供方的 IDE 插件、编码工具、聊天客户端里。不同工具的配置入口不一样有的在设置界面有的在配置文件里但核心都是这三个字段。7.2 常见第三方工具与落地方式从搜索热词来看目前社区关注度比较高的接入方向有这么几类VSCode 插件在编辑器侧边栏直接对话、选中代码解释、生成 commit messageCodex 类编码工具把 DeepSeek 作为底层模型用于代码生成和仓库级任务代理服务本地起一个代理把多个模型服务统一转发让上层工具只面对一个 OpenAI 兼容端点桌面端封装把 DeepSeek API 封装成独立桌面应用企业微信机器人通过企业微信机器人接入实现群内问答和告警通知。这些第三方工具多数是开发者个人项目质量参差不齐。接入前重点看三件事项目是否还活跃维护、是否支持 OpenA 兼容配置、是否有处理reasoning_content等特殊字段的逻辑。第三个特别关键后面单独讲。7.3 本地代理配置示例如果你用本地代理统一管理模型路由配置文件通常是 YAML 或 JSON。下面是一个通用模板字段名需要按你实际使用的代理工具调整。providers: deepseek: base_url: https://api.deepseek.com api_key: ${DEEPSEEK_API_KEY} models: - name: deepseek-chat thinking: false - name: deepseek-reasoner thinking: true注意thinking字段。DeepSeek 的推理模型在 thinking 模式下会额外返回reasoning_content字段。代理工具如果不知道这个字段多轮对话时很可能出问题。8. 常见问题与排查8.1 问题速查表问题现象可能原因排查方式解决方案返回 401API Key 错误或未传检查 Authorization 头重新复制 Key确认环境变量已加载返回 404请求路径或 base_url 错误对照官方文档检查地址修正 base_url 和路径返回 429触发限流查看响应头的限流信息降低请求频率加指数退避重试模型名不存在填了旧模型名或第三方自定义名查看官方模型列表换成官方可用模型名多轮对话报 400缺少 reasoning_content 回传查看代理日志升级代理工具或关闭 thinking 模式批量任务卡住没有设置 timeout查看进程和日志给请求加 timeout任务级加超时断开本地部署很慢显存不足或未用 GPU 加速查看 GPU 显存占用换小模型、量化、减少并发数8.2 重点排错reasoning_content 报 400这是接入第三方代理时比较典型的一个问题。报错信息类似cc switch local proxy failed while handling codex endpoint /responses. provider: deepseek; model: deepseek-v4-flash; upstream_status: http 400; cause: the reasoning_content in the thinking mode must be passed back to the api.解释一下DeepSeek 的推理模型在 thinking mode 下每次回复除了content还会返回reasoning_content。OpenAI 兼容协议原本没有这个字段。第三方代理转发多轮对话时如果只把content带回上游没有保留上一轮的reasoning_content上游校验就会失败返回 400。排查思路按顺序来确认使用的模型是不是推理模型。普通对话模型可能没有这个问题升级代理工具到较新版本很多工具已经在适配reasoning_content的回传如果代理工具不支持可以在配置里把模型切到不带 thinking 的普通模型检查多轮上下文里是否包含reasoning_content字段。这里也提醒一下报错里的模型名deepseek-v4-flash看起来是第三方代理配置里的自定义标识不一定是官方模型名。遇到类似自定义模型名先到官方控制台核对避免在错误模型名上浪费时间。8.3 批量任务卡住和重试设计批量任务卡住最常见的原因是请求没有设置超时。网络抖动时一个请求可能挂几分钟后面的任务全部排队。建议单次请求设置 60 秒超时任务级设置一个更长的总超时失败后指数退避重试。另一个常见问题是“重试风暴”失败后立即重试多个任务同时重试把限流阈值打满然后又失败。正确做法是加随机抖动让每次重试间隔不完全相同。import time import random def retry_with_jitter(attempt: int): # 基础指数退避 随机抖动 sleep_seconds min(2 ** attempt, 30) random.uniform(0, 1) time.sleep(sleep_seconds)8.4 本地部署的显存与性能排查本地部署遇到“慢”和“爆显存”时先分清瓶颈模型加载阶段看内存占用模型权重本身要能放进内存或显存推理阶段看显存占用上下文越长KV Cache 占用的显存越多并发阶段看吞吐量多路并发会放大显存压力。降低显存占用最直接的手段是量化从 FP16 换成 INT8 或 INT4显存占用明显下降代价是输出质量可能有轻微波动。另一个手段是限制最大上下文长度避免超长对话把缓存撑爆。具体参数以推理框架文档为准。9. 最佳实践与合规建议9.1 成本控制把成本控制当成批量任务的默认需求而不是事后补救任务按实时和离线拆分离线任务优先安排到谷价时段给每个请求设置合理的max_tokens防止异常输出把 token 打爆记录每次请求的usage按天汇总超预算自动暂停用缓存减少重复调用相同输入的请求直接读缓存批量任务加上限流保护和失败重试避免重试本身成为成本大头。9.2 数据安全使用第三方 API 时默认假设所有输入数据会离开本地。所以不上传未脱敏的隐私数据不给外部 API 发送未公开的业务代码和文档如果数据不能出内网选择本地部署本地部署的模型文件要确认来源尽量从官方仓库下载并校验哈希涉及人脸、声音、版权素材时确认已获得相应授权。9.3 稳定性线上服务接入任何大模型 API都要做好降级预案对下游提供统一接口模型服务异常时切换到备用模型或返回友好错误关键请求记录 trace_id方便排查哪一步失败调用方做好熔断连续失败率达到阈值时暂时停掉批量任务本地部署和 API 同时可用时优先路由到健康状态更好的一侧。10. 总结与下一步DeepSeek 这次把周末全天划为谷价最值得尝试的点就是让离线批量任务真正跑起来。如果你之前因为成本犹豫要不要用 API 跑评测集、语料清洗、批量生成这周可以先用一小批数据验证流程确认脚本、限流、重试、结果保存都稳定再放心把全量任务排到周末。这次最该先验证的功能是 API 连通性和批量脚本的稳定性最容易踩的坑则是第三方代理工具对reasoning_content字段处理不完整遇到 400 先升级工具或者换普通对话模型。之后可以继续扩展的方向包括把 DeepSeek 接入自己的 IDE 工作流、用本地部署模型处理敏感数据、以及把整套批量任务封装成带日志和监控的定时服务。如果你正在规划 DeepSeek 相关项目建议先把这篇文章里的批量脚本模板跑通再根据实际用量决定是继续用 API还是上本地部署。