AI教程

DeepSeek 怎么写代码?V4 模型、Claude Code 接入与安全验收教程

DeepSeek写代码应先区分聊天、代码智能体与API。本文核对V4Flash/Pro、旧模型迁移期限、ClaudeCode/OpenCode接入、提示与权限,并提供可运行的补丁验收闸门。

DeepSeek 官方聊天、代码智能体和自建 API 三种写代码路线及 V4 模型迁移期限
本页目录
  1. DeepSeek 写代码有哪三种路线?
  2. 2026 年应该使用哪个 DeepSeek 模型?
  3. 先写任务合同,再让模型看代码
  4. 可直接使用的首轮指令
  5. 用 Claude Code 或 OpenCode 接入 DeepSeek
  6. 不用代码智能体时,怎样调用 DeepSeek API 写代码?
  7. 结构化输出、FIM 和缓存什么时候有用?
  8. DeepSeek 代码补丁必须通过哪些验收?
  9. 代码、密钥和隐私数据怎样保护?
  10. 成本、缓存与模型路由怎么计算?
  11. 常见错误怎么排查?
  12. DeepSeek 写代码常见问题
  13. DeepSeek 可以直接读取整个 GitHub 仓库吗?
  14. DeepSeek-Coder 还是现在推荐的 API 模型吗?
  15. 代码任务应该关闭思考模式吗?
  16. 生成代码通过单元测试就能上线吗?
  17. 怎样判断 DeepSeek 是否真的提升了编程效率?
  18. 结论:把 DeepSeek 放进可验证的软件流程
  19. 相关产品的最新官方状态

直接回答:用 DeepSeek 写代码,先根据任务选择入口:只问一个函数或解释报错,用官方聊天窗口即可;需要读取仓库、生成 diff、运行测试,使用接入 DeepSeek 的代码智能体;需要批处理或自建工具链,再调用 API。截至 2026 年 7 月 16 日,DeepSeek 官方 API 的当前模型名是 deepseek-v4-flashdeepseek-v4-pro,旧别名 deepseek-chatdeepseek-reasoner 将于北京时间 2026 年 7 月 24 日 23:59 弃用。无论哪条路线,模型输出都只是候选补丁,必须经过测试、安全检查、人工复核和可回滚发布。

本文面向会使用终端、Git 或至少一种编程语言的中文用户,回答“DeepSeek 怎么写代码、模型怎么选、如何接入 Claude Code/OpenCode、怎样提供项目上下文、如何验收和保护代码”这些连续问题。只想了解产品和模型家族,可先看本站的 DeepSeek 是什么;本文不把普通聊天、API 开发、旧 DeepSeek-Coder 权重和代码智能体混成一个产品。

重要更正:旧版教程使用并不存在于当前托管 API 的 deepseek-coder,把密钥写进源码,把 temperature=0.7 当成代码准确性开关,还建议直接把整个项目投喂给模型。这些做法会造成 400 错误、密钥泄露、费用失控和敏感代码外发,本文全部撤回。未来重复稿 104639 中的 deepseek-sdkdeepseek-coder-v2 与固定 16GB 显存建议也不作为当前 API 教程保留。

DeepSeek 写代码有哪三种路线?

路线 模型能看到什么 适合任务 主要风险 合格交付物
官方聊天窗口 你粘贴或上传的内容 解释代码、生成小函数、分析报错 上下文缺失、复制粘贴泄密 可人工阅读的建议或代码片段
代码智能体 被授权读取的仓库文件、命令结果 跨文件检索、修改、测试与迭代 过度权限、错误命令、供应链与提示注入 小范围 diff、测试记录、风险说明
自建 API 应用发送的消息、工具结果和历史 批处理、结构化输出、内部工作流 密钥、重试、并发、成本、日志和数据责任 可重放请求、版本身份、usage 与验收记录

DeepSeek 的当前快速开始文档同时列出 OpenAI 与 Anthropic 兼容格式,并明确可接入 Claude Code、GitHub Copilot、OpenCode 等工具。这里的“兼容”是接口层兼容,不表示第三方工具的所有字段、权限模型和功能都与原供应商完全相同。

DeepSeek 官方聊天、代码智能体和自建 API 三种写代码路线及 V4 模型迁移期限
原创图:先确定模型能读取和执行什么,再决定是聊天、代码智能体还是自建 API;入口不同,权限和验收责任也不同。

2026 年应该使用哪个 DeepSeek 模型?

DeepSeek 在 2026 年 4 月 24 日发布 V4 Preview。官方V4 发布说明更新日志均要求把模型参数改为 deepseek-v4-flashdeepseek-v4-pro。不要从旧博客复制 deepseek-coderdeepseek-chat-2026 或其他想象出来的模型名。

模型 编辑建议定位 官方上下文/最大输出 百万 token 价格(人民币) 先验证什么
deepseek-v4-flash 快速、低成本基线;简单修改与子任务 1M / 最大 384K 缓存命中输入 0.02 元;未命中 1 元;输出 2 元 速度、简单任务成功率、缓存命中
deepseek-v4-pro 复杂推理、规划和高价值补丁候选 1M / 最大 384K 缓存命中输入 0.025 元;未命中 3 元;输出 6 元 是否真的比 Flash 提高保留集通过率

价格和能力来自 2026-07-16 复核的官方模型与价格页。1M 是可接受输入容量,不是“整个仓库都能无损理解”;384K 是最大输出规格,不是应该让模型一次生成几十万 token。代码任务更应控制 diff 大小、测试反馈和审查成本。

旧写法 当前含义 动作 截止时间
deepseek-chat 兼容期映射到 V4 Flash 非思考模式 显式迁移到 deepseek-v4-flash 2026-07-24 23:59(北京时间)
deepseek-reasoner 兼容期映射到 V4 Flash 思考模式 显式选择模型并设置 thinking 同上
deepseek-coder* 历史开放权重/旧模型家族,不是当前托管 API 名称 本地权重另行核对模型卡、许可证和硬件 不适用

历史 DeepSeek-Coder 仍有研究和本地部署价值,但要以其官方仓库中的具体权重与许可证为准。它与当前 V4 托管服务不是同一个采购或部署对象。

先写任务合同,再让模型看代码

“帮我修一下”不能形成可验收任务。把需求写成任务合同,让模型和审查者知道成功、失败与禁止范围。提示设计的通用方法可参考本站 Prompt Engineering 工程指南,但代码任务必须额外绑定仓库 revision、测试命令和权限边界。

字段 要写什么 不合格示例 合格示例
目标 用户可观察的行为变化 优化订单模块 重复提交同一 payment_id 时返回原订单,不重复扣款
环境 语言、框架、版本、OS、revision Python 项目 Python 3.12、FastAPI 0.115、revision 4ab2c71
输入/输出 类型、示例、错误行为 处理 JSON 给定 schema;非法 currency 返回 422
允许修改 目录、文件、依赖边界 随便改 仅 src/order.py 与对应测试;禁止新增依赖
验收 可执行命令与预期 确保能跑 pytest -qruff check . 均退出 0
停止线 需要人工决定的条件 没有 涉及数据库迁移、认证、密钥或公开 API 时停止

可直接使用的首轮指令

任务:修复重复 payment_id 导致重复创建订单的问题。
环境:Python 3.12 / FastAPI 0.115 / revision 4ab2c71。
允许读取:src/order.py、tests/test_order.py、pyproject.toml。
禁止:不要读取 .env;不要新增依赖;不要修改数据库 schema。
流程:
1. 先只读分析调用链和现有测试,不改文件;
2. 给出最多 6 步的修改计划、风险和待确认问题;
3. 获得批准后生成最小 diff;
4. 运行 pytest -q 与 ruff check .,逐项报告真实退出码;
5. 若测试失败,不得删除或弱化原测试。
交付:变更摘要、diff、测试结果、未解决风险和回滚方法。
上下文类型 应该提供 不应该提供 原因
代码 相关文件、接口、最小调用链 无筛选的整个 monorepo 减少噪声、费用和权限面
错误 完整堆栈、复现输入、版本 只说“报错了” 错误位置不等于根因
数据 脱敏 fixture 与 schema 真实客户、Token、数据库快照 隐私、合同与泄露风险
规范 仓库真实 lint/test 命令 让模型猜框架版本 防止生成过时 API
依赖 lockfile 相关片段和现有版本 随意安装模型推荐包 供应链与兼容风险

用 Claude Code 或 OpenCode 接入 DeepSeek

DeepSeek 官方代码工具接入指南给出了 Claude Code 与 OpenCode 路线。Claude Code 使用 Anthropic 兼容地址 https://api.deepseek.com/anthropic;OpenCode 当前文档要求版本至少为 v1.14.24,并在 /connect 中选择 DeepSeek。安装第三方工具前仍应核对工具自己的发行页、包名、签名和权限,官方列出接入方式并不替你审计第三方软件。

# Linux / macOS:仅设置当前 shell;不要把真实 key 写进仓库
export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
export ANTHROPIC_AUTH_TOKEN="$DEEPSEEK_API_KEY"
export ANTHROPIC_MODEL="deepseek-v4-pro[1m]"
export CLAUDE_CODE_SUBAGENT_MODEL="deepseek-v4-flash"

cd /path/to/your/repository
claude

Windows PowerShell 使用 $env:ANTHROPIC_BASE_URL=...$env:ANTHROPIC_AUTH_TOKEN=$env:DEEPSEEK_API_KEY。不要把真实 key 写进截图、settings.json、PowerShell 历史或提交记录。DeepSeek 的Anthropic 兼容说明列出了被忽略或不支持的字段,例如 mcp_servers、图像、文档和部分工具结果;因此“能连上”不等于原工具全部功能可用。

权限层 初始设置 何时放开 必须拒绝
文件读取 限定仓库与相关目录 计划说明新增文件的必要性 家目录、密钥目录、无关项目
文件写入 默认关闭或逐次确认 只读计划批准后 删除备份、覆盖生成物来源
终端 只允许测试、lint、只读查询 命令、目录与影响可见 破坏性命令、提权、未知脚本管道
网络 默认关闭 下载来源、版本和哈希已确认 上传源码、日志、密钥或生产数据
Git 允许 diff/status,禁止自动 push 人工复核后提交 改写历史、绕过保护分支

DeepSeek 官方还维护了 Agent 接入清单,但清单包含不同维护者和安全模型的工具。选择工具时至少核对仓库所有者、最近发行、许可证、安装脚本、沙箱、遥测、密钥保存位置和更新机制。

不用代码智能体时,怎样调用 DeepSeek API 写代码?

API 更适合你自己控制上下文、日志和输出合同的场景。下面代码依据官方快速开始改写,只从环境变量读取密钥,显式使用当前模型,并要求先给补丁计划。它没有被本站拿真实账户发送,因此只证明调用结构与当前文档一致,不证明模型会生成正确代码。

import os
from openai import OpenAI

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

response = client.chat.completions.create(
    model="deepseek-v4-pro",
    messages=[
        {"role": "system", "content": "你是代码审查助手。先给计划,不声称运行未运行的命令。"},
        {"role": "user", "content": "分析给定函数的并发问题;返回风险、最小修改和应运行的测试。"},
    ],
    reasoning_effort="high",
    extra_body={"thinking": {"type": "enabled"}},
    stream=False,
)
print(response.choices[0].message.content)
参数/字段 当前行为 代码任务建议 常见误区
model V4 Flash 或 V4 Pro 固定精确模型并记录 复制已弃用或虚构名称
thinking 默认启用;可 enabled/disabled 按任务对照测试,不默认越多越好 把思考文本当正确性证明
reasoning_effort high/max;兼容映射存在 复杂规划才提高 把 low/medium 当真实低档
temperature 思考模式下无效但不一定报错 不要用它解释思考模式代码稳定性 旧稿称 0.7 平衡准确与创造
reasoning_content 工具调用轮次需正确回传 使用官方 SDK 结构并保留完整消息 丢失后出现 400

这些边界来自思考模式文档。如果要让模型调用编译器、测试器或内部 API,先阅读本站 Function Calling 权限与幂等指南;模型只提出函数名和参数,真正执行、鉴权、超时、重试和回滚仍由你的应用负责。DeepSeek 的Tool Calls 文档也明确展示了应用端函数映射。

结构化输出、FIM 和缓存什么时候有用?

能力 适合代码任务 当前限制 验收
JSON Output 问题清单、变更计划、审查结果 提示中需出现 json 和示例;偶尔可能空内容 本地 JSON parse + 业务 schema 校验
FIM(Beta) 在前缀与后缀之间补代码 Beta;仅非思考模式;使用 beta base URL 语法、类型、单测与上下文一致性
上下文缓存 重复使用稳定仓库说明或长前缀 默认启用、尽力而为,不保证命中 读取 usage 中 hit/miss token
1M 上下文 大型依赖分析的容量上限 容量不等于每个位置可靠召回 首/中/尾关键事实与跨文件引用测试

官方 JSON Output 要求设置 response_format={"type":"json_object"},但“合法 JSON”不等于字段事实正确;必须继续做 schema 与语义校验。FIM Completion仍是 Beta,不应成为没有回退路线的生产依赖。

上下文缓存文档说明缓存按重叠前缀匹配,构建需要时间,通常数小时到数天后清理,并且不保证 100% 命中。把稳定的系统规则和仓库摘要放前面、变化问题放后面可能提高复用,但应以 prompt_cache_hit_tokensprompt_cache_miss_tokens实测,不得把假设命中写入预算。

DeepSeek 代码补丁必须通过哪些验收?

生成代码“看起来合理”只是起点。本文提供一个纯 Python 标准库的补丁记录闸门:它不执行模型、不证明代码安全,只检查变更记录是否包含测试、安全检查、人工批准,并拦截密钥文件与未批准的高风险路径。本站实际运行了通过和失败样例:通过样例返回 {"valid": true};失败样例识别出 .env、认证目录、失败测试与缺少人工批准四项错误。

python deepseek-code-patch-gate.py patch-record.json --max-files 40

通过样例:
{"valid": true, "errors": []}

失败样例(节选):
{"valid": false, "errors": [
  "secret-bearing path must not be submitted: .env",
  "high-risk path changed without human approval",
  "tests failed: pytest -q",
  "human_approved must be true before merge"
]}

40 是本教程为演示设置的可配置编辑阈值,不是行业标准。项目应根据仓库结构、变更类型和审查能力制定自己的上限。完整记录至少包含 task_id、精确模型、repo revision、changed_files、tests、security_checks 和 human_approved。

验收层 证据 不能接受 失败动作
语法/类型 编译器、类型检查退出码 模型说“没有语法错误” 停止并定位
单元测试 原测试 + 新边界测试 为了通过而删除或弱化测试 恢复测试,重做补丁
集成/契约 真实接口或可控替身 只跑 happy path 补失败、超时、并发用例
静态/依赖 lint、SAST、依赖扫描 让同一个模型自我保证安全 独立工具与人工复核
业务 任务合同中的可观察结果 只比较代码行数 退回需求或实现
回归 保留集、性能与兼容结果 只看新增测试 缩小变更或回滚
DeepSeek 生成代码从任务合同、只读计划、小补丁到测试、安全、人工复核和回滚的八道闸门
原创图:模型输出只是候选变更;测试、安全、人工审批和回滚能力共同决定能否合并。

更完整的 AI 输出风险识别见本站 AI 幻觉核验指南;模型或提示升级后的生产评测,可使用 AI 系统可用性测试方法。NIST 的 生成式 AI SSDF Community Profile强调把 AI 风险纳入软件全生命周期,而不是把安全责任交给一次模型回答。

代码、密钥和隐私数据怎样保护?

数据 默认处理 允许发送前 禁止动作
API Key/私钥 永不进入提示或仓库 放入服务端密钥管理器或环境变量 浏览器端、截图、日志、公开仓库
客户与个人数据 不发送 确认依据、最小化、脱敏与权限 把生产数据库当调试 fixture
专有源码 最小文件、最小片段 核对公司政策、合同和数据位置 为了“1M”整库上传
第三方代码 保留来源与许可证 确认允许修改和再分发 让模型移除版权/NOTICE
日志 先删 token、cookie、URL 参数 使用脱敏复现样例 原样粘贴生产日志

DeepSeek 的开放平台服务条款明确要求保护 API Key,不得公开或放在浏览器等客户端代码中,并要求开发者建立数据安全、监控与应急措施。其隐私政策还说明,下游开发者系统收集的终端用户数据不由该隐私政策覆盖;自建应用必须单独履行自己的告知、授权、安全和合规责任。这里是工程风险提示,不构成法律意见。

成本、缓存与模型路由怎么计算?

代码智能体会反复发送仓库规则、历史消息和工具输出,单次便宜不代表一个任务便宜。官方按输入缓存命中、输入缓存未命中和输出分别计费;实际 token 以响应 usage 为准,不能用字符数代替账单。Token 估算边界见官方 Token 用量文档

示例任务 输入 输出 假设 Flash 估算 Pro 估算
首次仓库分析 200k 10k 全部未命中 0.20 + 0.02 = 0.22 元 0.60 + 0.06 = 0.66 元
重复前缀迭代 180k hit + 20k miss 10k 仅为算例,非命中承诺 0.0036 + 0.02 + 0.02 = 0.0436 元 0.0045 + 0.06 + 0.06 = 0.1245 元

以上仅按 2026-07-16 单价复算,不包含失败重试、第三方代码工具订阅、网络、人工审查和 CI 成本。路由策略应先用 Flash 跑简单任务和子任务,把在保留集上明显受益的复杂规划交给 Pro;是否受益必须用相同输入、相同工具权限、相同测试与相近尝试次数验证。跨平台选择可参考本站 AI 平台同任务评测方法

常见错误怎么排查?

现象/状态码 优先检查 正确处理 不要做
400 模型名、请求结构、thinking 工具轮次 按错误信息与当前 API schema 修正 盲目重复请求
401 环境变量、Key 状态 轮换泄露密钥,核对服务端配置 把 key 打进日志
402 余额与账单 停止自动重试,设置预算告警 无限充值或静默失败
429 账户级并发、队列 退避、排队、限流和可选回退 多建 key 绕过账户限额
500/503 服务端状态、幂等性 带抖动退避;只重试安全请求 重复执行有副作用工具
连接不断空行/注释 keep-alive 解析 兼容空行与 SSE 注释,设置应用超时 把 keep-alive 当模型输出
补丁越来越大 任务合同、上下文和失败反馈 回到最小复现,拆分任务 继续让模型“顺便重构”

状态码依据官方错误码页。并发按账户计算,而不是每个 Key 独立;当前限速与隔离文档列出 Pro 500、Flash 2500 的账户并发上限,并说明请求等待期间可能持续返回空行或 SSE keep-alive 注释。上线时仍要读取自己账户的当前限制。

DeepSeek 写代码常见问题

DeepSeek 可以直接读取整个 GitHub 仓库吗?

普通聊天不会自动看到整个仓库。代码智能体只有在你授权文件访问后才能读取;API 只能看到应用发送的内容。即使容量达到 1M,也应先提供最小相关上下文,并用跨文件引用与位置切片测试可靠性。

DeepSeek-Coder 还是现在推荐的 API 模型吗?

不是。DeepSeek-Coder 是历史代码模型/开放权重家族;截至 2026-07-16,当前托管 API 明确列出 V4 Flash 和 V4 Pro。需要本地部署旧权重时应单独核对模型卡、许可证、硬件和推理框架。

代码任务应该关闭思考模式吗?

没有对所有任务成立的答案。思考模式默认启用,适合复杂规划;简单补全可能用非思考模式和 Flash 更经济。用同一任务集比较正确率、测试通过率、延迟和总成本,不要只看回答长度。

生成代码通过单元测试就能上线吗?

不能。单测可能漏掉权限、并发、依赖、集成、性能和业务约束。至少还要做 lint/type、集成/契约、安全与人工 diff 复核,高风险改动需要灰度和回滚。

怎样判断 DeepSeek 是否真的提升了编程效率?

记录完整任务耗时、首次可验收补丁率、重试次数、人工修复时间、测试回归和单位成功任务成本。只计算“生成用了几秒”会忽略审查与返工,不能代表交付效率。

结论:把 DeepSeek 放进可验证的软件流程

DeepSeek 写代码的正确起点不是“最强提示词”,而是选对入口、锁定当前模型、限制权限并定义验收。小片段用聊天;仓库变更用受控代码智能体;可重复业务才自建 API。迁移 deepseek-chat/deepseek-reasoner 后,仍要记录模型、revision、上下文、diff、测试、安全检查、成本和人工批准。模型可以加速搜索和生成,但只有可复现证据、独立检查和回滚路径,才能把候选代码变成可上线代码。