跳到主要内容
返回博客
Engineering2025-09-2514 min read

DeepSeek vs OpenAI 跑 B2B 销售 AI:我们做出的成本-质量取舍

SP

Sarah Park

Head of Engineering

11 个月前 Anvil 是 100% OpenAI。今天是 100% DeepSeek 用于生成、100% OpenAI 用于 embedding,我们每个活跃 workspace 的模型支出下降了 78%,而生产 eval 套件上的质量指标要么提升要么持平。这篇是这次迁移到底怎么走的工程复盘,包括我们做错了两次才做对的部分。

现在每周都有人问我们:"你确定 DeepSeek 在生产 B2B 场景下够用吗?"诚实的答案比"是"或"否"要有意思。在对我们工作负载最重要的任务上 — 中文聊天、长上下文分析、结构化回复生成 — DeepSeek 击败 GPT-4o;在少数几个我们已经绕过去的边角任务上输。embedding 是差距大到我们把 OpenAI 留在栈里的那个任务。这篇文章余下部分逐项展开,带的是 `services/ai-engine/app/core/ai_router.py` 里的代码事实,以及我们 ClickHouse 成本仪表板里的真实数字。

成本数学,带小字

DeepSeek v4-flash 的标价大约是每百万输入 token $0.27、输出 $1.10。Pro 档大约输入 $0.80、输出 $3.20。GPT-4o 约输入 $2.50、输出 $10.00;GPT-4o-mini 约输入 $0.15、输出 $0.60。标价单看会误导,因为 B2B 销售工作负载有它特殊的输入/输出比。

上个月我们生产流量的分布是:78% 聊天(长 prompt、短回复、比例约 12:1)、14% agent / 报告(中 prompt、长回复、比例约 3:1)、6% 摘要(长 prompt、中回复、比例约 8:1)、2% 杂项。按这个混合给每次调用成本加权,我们落在 DeepSeek-flash 每百万 token 约 $0.31、DeepSeek-pro 约 $1.42、GPT-4o 约 $3.85、GPT-4o-mini 约 $0.21。纸面上 GPT-4o-mini 是价格赢家。在我们的 eval 里 GPT-4o-mini 在中文回复质量上大幅落后 DeepSeek-flash,在输出量大的任务上让出价格优势。按成本加权,我们这个工作负载的选择就是默认 DeepSeek-flash、升级时 Pro。我们做了,账单确认了。

延迟的故事比人们承认的复杂

OpenAI 在北美快。DeepSeek 在中国大陆和香港快。我们的网关在香港,次区域在新加坡和法兰克福,客户基础偏 APAC。从我们 HKG 区域到 DeepSeek 的 P50 延迟首 token 240ms,典型聊天回合完整回复 380ms。同一个调用从 HKG 到 GPT-4o,首 token 410ms、完整回复 720ms,因为请求要跨太平洋。从我们 EU 区域看差距收窄;从纯美国部署看 DeepSeek 会更慢、不是更快。地理位置比从旧金山写基准的人通常承认的更重要。

延迟的另一个维度是上下文长度。DeepSeek v4 自带 1M token 上下文窗口和 384K 输出上限。GPT-4o 是 128K 上下文、16K 输出。聊天回合两边都只用一小段,但跑摄取 25 万 token 的 CRM 历史外加爬虫结果的报告和 agent,差异在于系统是否工作。迁移前我们对 GPT-4o 的每次长上下文调用都要 chunk-and-stitch;迁移后我们就把完整 payload 发过去。去掉 chunker 带来的工程复杂度下降比省下来的钱更大。

B2B 销售任务上的质量基准

我们不信公开基准。我们信我们自己的 eval 套件,它包含 1,847 条 prompt,分成 7 个 B2B 销售任务族,黄金答案由我们的 customer-success 团队和工程师标注。每次模型变更上线前都跑这个套件。结果以"模型回复被判断等同或好过黄金答案的 prompt 百分比"表达:

  • 意图分类(EN/ZH):DeepSeek-flash 97.4%、GPT-4o-mini 96.1%、GPT-4o 97.9%。Flash 赢成本,GPT-4o 赢绝对质量,差距小到不值价格。
  • 英文短文本回复生成:DeepSeek-flash 89.2%、GPT-4o-mini 84.0%、GPT-4o 92.1%、DeepSeek-pro 93.4%。Pro 这里微胜 GPT-4o,只用 1/3 成本。
  • 中文回复生成:DeepSeek-flash 94.7%、GPT-4o 87.3%。不接近。中文流畅度是 DeepSeek 训练数据占主导的地方。
  • 长上下文摘要:DeepSeek-pro 91.0%、GPT-4o 88.4%。DeepSeek-pro 的 1M 上下文让它能一次性摘整篇文档而不丢中间段,分块的 GPT-4o 调用经常会丢。
  • 工具调用用的结构化 JSON:DeepSeek-flash 96.8%、GPT-4o 98.2%。GPT-4o 在严格 JSON-schema 合规上仍略可靠,但我们用 JSON-schema 强制解码器追平。
  • 多轮情感:DeepSeek-flash 92.1%、GPT-4o 91.4%。大致相当。
  • 销售研究综合:DeepSeek-pro 89.7%、GPT-4o 90.2%。大致相当;价差决定胜负。

总结:DeepSeek 在中文上大胜、在大部分任务上打平、在工具调用可靠性和英文短文本高端质量上微负。没有一项差距大到值得给我们流量 5-10 倍的成本倍数。

为什么 OpenAI 仍然占据我们的 embedding

截至写作时,DeepSeek 没有 embedding 端点。这一项事实就替我们决定了 embedding。我们生产里每个 Qdrant collection 都用 `text-embedding-3-small`,1536 维。我们测过 `text-embedding-3-large`(3072 维),在我们 retrieval-recall eval 上精度提升约 2.1% — 真实但不值 2.5x 成本和翻倍向量存储账单。如果 DeepSeek 出 embedding 模型,我们发布当天就跑基准。在那之前,OpenAI 因为这一个具体原因留在栈里。

常见追问:"两个供应商奇怪吗?"实际不奇怪。embedding API 调用就一行代码。依赖面很小。OpenAI 这行在我们月账单上的成本现在不到总 AI 开支的 4%,从聊天迁移前的 71% 下来。这是为了拿到的质量可以接受的集中风险。

路由:`ai_router.py` 实际怎么挑

完整源代码在 `services/ai-engine/app/core/ai_router.py`。心智模型是:每次调用 AI engine 带一个 `task` key,路由把 `task` 映射到默认模型,调用方可以用 `model="deepseek-v4-pro"` 之类覆盖。任务分类大致这样:

  • chat、voice、rag、enrichment、intent_classify、sentiment、keyword_extract、translate、classify:默认 `deepseek-v4-flash`。高吞吐、延迟敏感、简单。
  • agent、report、content_gen、viral_analysis、blueocean、competitor_analysis、kol_analysis、research_synth:默认 `deepseek-v4-pro`。质量敏感、复杂推理、低量。
  • embed:硬编码到 OpenAI 的 `text-embedding-3-small`。路由不参与决策。
  • tts:ElevenLabs `eleven_multilingual_v2`。语音质量的单独供应商。

在任务默认之上,三个升级触发器可以把 flash 调用提到 pro:(a)workspace 套餐是 Enterprise(那里聊天默认就是 Pro)、(b)一个 meta-prompt 分类器标到多步推理、(c)检索返回超过 5 个 chunk 需要综合。反向 — 把 pro 降到 flash — 不自动发生。调用方要 pro 就给 pro。

每次调用都在 ClickHouse 写一行 `(model, task, input_tokens, output_tokens, latency_ms, success, fallback_used)`。我们用这张表做成本仪表板、做容量规划、做"上周哪个任务突然变贵了"这种临时排查。没有这层可观测性这次迁移就是一次赌博;有了它,每次路由微调都基于真实生产数据。

什么坏过、怎么修的

这次迁移并不无痛。两次事故值得分享,因为按这个 playbook 来跑大概率也会发生。第一,在我们切 agent 流量的那天,工具调用流水线断了大约 6 小时。DeepSeek 的工具调用格式 OpenAI 兼容,但 `tool_choice="required"` 的严格度不一样 — 模型不确定时偶尔会返回自然语言而不是工具调用。修复是给工具调用外面套一个 JSON-schema 强制解码器,再加一次更强提示词的二次尝试 fallback。第二次事故是周五傍晚的惊喜,DeepSeek API 在某个套餐上的限流比我们以为的低,batch enrichment 任务被节流到挪不动。我们用每任务 token 预算和带指数退避的重试队列修了它。两次都是一天的修复,都没动摇迁移的判断。

第三件要知道的事:在同样的 prompt 下,DeepSeek 的输出偶尔比 GPT-4o 啰嗦。agent 跑出来的报告里这无所谓。聊天回复里啰嗦就是 UX bug。我们用显式的长度引导把系统提示词收紧("除非用户要求细节,1-3 句话回复"),差距就追平了。

迁移之后的账本

一个跑典型流量的工作区 — 每月 5,000 次聊天回合、80 份报告、12,000 次 enrichment 查询、400,000 次 embedding — 我们前后支出对比:纯 OpenAI,$487/月;混合(DeepSeek + OpenAI embedding),$108/月。embedding 现在占这 $108 里的 $19。差距大到我们把大部分节省让进了我们的套餐定价,这就是为什么 Pro 套餐能开到现在的价位。

中文流量重的工作区 — 同样的体量 — 在 DeepSeek 上的支出会进一步下降,因为 tokenize 上中文 token 比英文便宜。我们 APAC 客户看到的有效成本比全球平均再低约 15%。这是结构性差,不是促销。

我们什么时候不会做这笔交易

诚实段落。如果你跑的是纯美国工作负载、纯英文流量、用户会抱怨延迟增加 200ms,DeepSeek 今天可能不是对的选择。如果你的任务卡在严格的 OpenAI-only 工具生态(某些 MCP 集成、某些 Assistants API 特性),依赖锁定是真的。如果你出于采购原因绝对需要聊天和 embedding 来自同一家,纯 OpenAI 栈更简单。这些对我们都不成立,所以我们做了这笔。

另一个我们不会迁移的情形:如果客户画像需要 DeepSeek 尚未持有的认证。我们在香港跑 Anvil,给企业客户提供自托管部署选项,我们的 PDPA / GDPR 姿态围绕我们存的数据建立、不是围绕我们调用的模型。要 in-region 推理和 BAA 风格保证的客户被指向自托管拓扑,可以叠在 DeepSeek API 之上,也可以叠在任何其他合规供应商上。

更大的教训

一年前我会和大多数行业一起争辩,基础模型层是个有明显赢家的稳定市场。它不是。市场正在以有利于"按任务和按区域路由"团队、不利于"单一供应商打包"团队的方式碎片化。"AI 基础设施"的工作正在变成路由、eval、可观测性、优雅 fallback 的工作 — 不是挑最聪明的模型然后收工。Anvil 的路由很小(几百行 Python),eval 套件几千条 prompt,但合起来就是让这次迁移可以安全上线、可以持续调优的东西。

如果你跑一个 AI 重的产品并且上个季度没有把前三个任务族对几家替代方案跑过基准,你就在桌上留了钱。数字变化快到"我们去年评估过"已经不是站得住脚的答案。

SP

Sarah Park

Head of Engineering

热爱 AI 与增长,致力于通过智能自动化帮助品牌发现下一位客户。专注于 AI 与数字营销交叉领域的写作。

想看看 Anvil 实际怎么用?

立即用 AI 获客。无需信用卡。

开始免费试用