Deepgram 是一家总部位于美国旧金山的语音 AI 公司,提供全托管的语音转写(STT)、语音合成(TTS)与语音 Agent API。它的核心卖点是流式语音转写的尾字延迟低于 300ms——用户说完一句话,约 300ms 内就能拿到最终识别文本,这是目前主流 ASR API 中的第一梯队水平。除了低延迟,Deepgram 还提供说话人分离(diarization)、智能格式化(数字、日期、标点自动处理)、热词加权(keyterm boosting),以及针对语音对话场景的 Voice Agent API——把「转写→大模型生成→语音合成」整条链路封装成一个接口,端到端语音响应延迟官方口径可低至 800ms 以内。 本文面向正在选型或准备上手的语音工程师:先给速览卡和安装步骤,然后用可运行示例跑通批处理转写、流式转写与语音合成,再拆解四大核心能力(流式 STT、批处理 STT、Aura TTS、Voice Agent API),接着落在生产部署、用量监控与避坑清单,最后附同类选型对比、版本迭代、典型场景、常见误区与面试题。

岗位关联

掌握 Deepgram,等于拿到语音交互链路中最关键的低延迟转写与合成能力——这是语音 Agent、实时字幕、呼叫中心质检等场景的硬通货技能。

目录
  1. 为什么需要 Deepgram:通用 ASR 延迟高、后处理靠拼装、语音 Agent 链路长
  2. 安装与环境配置:3 步就绪
  3. 快速上手:30 分钟跑通转写 + 合成最小闭环
  4. 核心能力详解:4 大支柱
  5. 生产部署与监控:从上线到运维
  6. 版本迭代
  7. AI 应用场景
  8. 常见误区
  9. 面试题
  10. 参考来源
工具类型
语音 AI API 平台(STT/TTS/语音 Agent,托管 SaaS)
开发商
Deepgram, Inc.(美国旧金山)
开源协议
API 闭源;官方 SDK 开源(MIT)
GitHub Stars
无
主要语言
Python / TypeScript / Go / .NET(API 为 HTTP + WebSocket)
当前版本
Nova-3(2025-05 发布)
安装方式
pip install deepgram-sdk
上手难度
★★☆☆☆(低)
适合人群
语音 Agent/客服工程师·字幕与会议转写团队
同类工具
AssemblyAI·Azure Speech·OpenAI Whisper
托管服务
console.deepgram.com(管理台,注册赠 $200)

速览卡是工具类内容的固定首屏模块:30 秒判断「这工具是什么、能不能商用、适不适合我」。

为什么需要 Deepgram:通用 ASR 延迟高、后处理靠拼装、语音 Agent 链路长

自建或选用通用 ASR 方案时,三个问题最突出。第一是延迟:多数开源模型或云 ASR 的流式尾字延迟在 1 秒以上,实时字幕、语音对话场景下用户体感明显卡顿;第二是后处理成本:标点、数字规范化、说话人分离、热词纠错这些“转写之后”的工作通常要再串三四个模块,自己实现既费工时又难调好;第三是语音 Agent 的链路:STT→LLM→TTS 三段都要独立对接并控制延迟,任何一个环节慢半拍,整体响应就会超过用户可接受的 1 秒门槛。

Deepgram 把这三件事收进一个托管 API。流式 STT 官方口径尾字延迟低于 300ms;批处理转写通过 smart_format、diarize、utterances 等参数开箱即得规范文本;Voice Agent API 则用一套 WebSocket 会话把「转写→LLM→合成」跑完,官方口径端到端延迟低于 800ms。工程师不再需要关心音频特征提取、端点检测和断句策略——这些由服务端处理,客户端只负责发音频、收文本或播放音频。

与同类工具相比,Deepgram 的气质是“实时优先 + 全栈语音”。AssemblyAI 更强调批处理准确率与内容理解,Azure Speech 更偏企业云生态,Whisper 是可私有化的开源模型——而 Deepgram 在流式低延迟和语音 Agent 一体化上走得最靠前。

安装与环境配置:3 步就绪

第一步,注册拿 Key。访问 console.deepgram.com 用邮箱注册,新账号自动获赠 $200 免费额度。在 Console 的 API Keys 页面创建一把 Key 并复制保存。

第二步,安装官方 Python SDK。包名为 deepgram-sdk,注意不是 deepgram 或 deepgram-ai。

第三步,配置环境变量并验证连通性。用官方示例音频跑一次 REST 批转写,能返回 JSON 即完成验证。

若输出为一段可读的英文访谈文本,说明 Key、网络与模型参数全部正常。注意鉴权头写法是 Authorization: Token <key>,前缀是 Token 而不是 Bearer。

bash12 行
# 1) 安装官方 Python SDKpip install deepgram-sdk # 2) 配置 API Key(去 console.deepgram.com 创建)export DEEPGRAM_API_KEY="你的_API_KEY" # 3) 验证:官方示例音频批转写curl -s -X POST "https://api.deepgram.com/v1/listen?model=nova-3&smart_format=true" \  -H "Authorization: Token $DEEPGRAM_API_KEY" \  -H "Content-Type: application/json" \  -d '{"url": "https://static.deepgram.com/examples/interview-script.mp3"}' \  | jq '.results.channels[0].alternatives[0].transcript'

快速上手:30 分钟跑通转写 + 合成最小闭环

最小闭环的思路:先用 REST 把一段现成音频转成文本,再把文本交给 TTS 合成回语音,验证 STT 与 TTS 两条链路。步骤如下:

1. 在 Console → API Keys 创建 Key,复制到环境变量。

2. 确认 deepgram-sdk 已安装。

3. 新建 transcribe_demo.py,粘贴下方 Python 批转写代码,填入 Key 后运行,观察输出 JSON。

4. 把输入换成自己的音频(支持 mp3/wav/flac/m4a 等格式;REST 也支持传公网 URL 或二进制字节)。

5. 用下方 TTS 命令把一句文本合成 MP3,本地播放验证音质。

6. 进阶:换成 WebSocket 流式接口,边发音频边打印实时识别结果(代码见“核心能力详解”支柱一)。

运行后,results.channels[0].alternatives[0].transcript 即是全文,words 数组带每个词的开始/结束时间戳,可直接生成字幕。随后执行 TTS 验证合成链路:

python17 行
from deepgram import DeepgramClient, PrerecordedOptions API_KEY = "YOUR_DEEPGRAM_API_KEY" client = DeepgramClient(API_KEY) with open("audio.wav", "rb") as f:    payload = {"buffer": f.read()} # 批转写:识别 + 标点/数字规范化 + 说话人分离options = PrerecordedOptions(    model="nova-3",    smart_format=True,   # 自动加标点、规范化数字日期货币    diarize=True,        # 说话人分离,适合多人会议)res = client.listen.prerecorded.v("1").transcribe_file(payload, options)print(res.to_json(indent=2))
bash5 行
curl -s -X POST "https://api.deepgram.com/v1/speak?model=aura-2-athena-en&encoding=mp3" \  -H "Authorization: Token $DEEPGRAM_API_KEY" \  -H "Content-Type: application/json" \  -d '{"text": "This audio was generated by Deepgram Aura."}' \  -o output.mp3

核心能力详解:4 大支柱

支柱一:WebSocket 流式转写(Streaming STT)。这是 Deepgram 的招牌能力。客户端建立 wss://api.deepgram.com/v1/listen?model=nova-3 长连接后持续发送音频字节,服务端边接收边产出结果。开启 interim_results=true 可拿到边听边出的中间结果(适合实时字幕);endpointing=300 表示检测到 300ms 静音即判定一句话结束并返回最终结果;vad_events=true 可拿到语音开始/结束事件。若发送的是原始 PCM 数据,必须声明 encoding=linear16&sample_rate=16000&channels=1,否则识别内容会乱码。Python 示例:

支柱二:REST 批处理转写与智能后处理。POST /v1/listen 接收公网 URL 或二进制音频,适合离线文件。常用参数:smart_format=true 一次性完成标点、数字、日期、货币、邮箱的格式化;diarize=true 做说话人分离,配合 utterances=true 按话轮切分;keywords=某词:2 对自定义词加权,大幅降低人名、产品名的误识别;profanity_filter=true 过滤敏感词。另支持 callback 参数——服务端转写完成后把结果 POST 到你的回调地址,适合大批量异步处理。

支柱三:Aura 语音合成(TTS)。POST /v1/speak 把文本合成语音,模型名如 aura-2-athena-en、aura-2-zeus-en 等,支持英、中、西、法、德等多语言音色,可调 rate(语速)、volume(音量)、pitch(音高)。输出编码用 encoding 参数指定(mp3/wav/ogg/linear16 等)。WebSocket 版 /v1/speak 支持边合成边下发音频块,显著降低首包延迟,适合实时播报。

支柱四:Voice Agent API(语音 Agent)。client.agent 系列接口把 STT→LLM→TTS 整条链路封装成单路 WebSocket 会话:服务端负责转写、调用你指定的大模型(支持 OpenAI、Anthropic、Gemini 等,通过 persona 配置供应商与系统提示词),再把回复合成语音下发。官方口径语音到语音端到端延迟低于 800ms,比自行串联三段 API 更易守住体验底线,是 IVR 客服、外呼营销、语音助手的直接基础设施。

python22 行
from deepgram import DeepgramClient, LiveOptions, LiveTranscriptionEvents client = DeepgramClient("YOUR_DEEPGRAM_API_KEY")conn = client.listen.live.v("1") def on_transcript(_self, result, **kwargs):    text = result.channel.alternatives[0].transcript    if text:        print(f"[实时] {text}") conn.on(LiveTranscriptionEvents.Transcript, on_transcript) options = LiveOptions(    model="nova-3", language="zh",    interim_results=True, endpointing=300,)conn.start(options) with open("audio.wav", "rb") as f:    while chunk := f.read(4096):        conn.send(chunk)    conn.finish()

生产部署与监控:从上线到运维

部署方式一:批处理任务走 callback 异步化。不要对每个文件同步等结果。把 callback 参数指向你自己的接收端点,Deepgram 转写完成后向该地址 POST 结果,回调侧做校验与落库;配合指数退避重试应对 5xx 与超时。大批量任务可再通过 GET /v1/usage 系列接口按项目对账分钟数。

部署方式二:流式场景按并发连接水平扩展。每个 WebSocket 连接对应一路实时音频,客户端维护连接池并按业务并发峰值预估规模。鉴权一律走服务端:浏览器或移动端只连你的后端,由后端持有 API Key 并转发音频流,避免密钥泄漏;数据主权敏感场景可咨询企业版区域部署选项。

可观测性。Console 的 Usage 页面按项目聚合每日分钟数与费用,支持设置预算告警;GET /v1/projects/{project_id}/usage/requests 可拉取每次请求的明细(时长、模型、费用)。服务状态查看 status.deepgram.com。常见错误码:401/403 为 Key 无效或权限不足,429 为超限流(指数退避重试),400 多为音频编码或参数不匹配(先检查 encoding/language/model)。

<p class="para-label">避坑清单:</p>

<ul class=“dash-list“><li>API Key 严禁放前端:浏览器直连会暴露密钥且受 CORS 拦截,务必由你的后端持有 Key 并代理转发音频流。</li><li>流式原始 PCM 必须声明 encoding/sample_rate/channels(如 linear16@16000 单声道),漏声明会导致乱码或高延迟;带 WAV 头的文件可省略。</li><li>Python SDK v2→v3 API 不兼容:连接从 client.listen.prerecorded 变为 client.listen.prerecorded.v(”1”),升级前看迁移文档,别直接复制旧代码。</li><li>$200 免费额度用完后自动转计费,在 Console 提前设置账单告警或硬限额,避免一次批量跑量产生意外费用。</li><li>endpointing 值决定断句节奏:设太小(如 50ms)一句话会被切碎,设太大(如 2000ms)最终结果迟迟不出,实时对话建议 200-500ms。</li></ul>

维度DeepgramAssemblyAIAzure SpeechOpenAI Whisper
定位STT+TTS+语音 Agent 全栈 API托管语音识别与理解平台微软云语音套件(含 TTS)开源 ASR 模型(可自托管)
实时延迟流式尾字延迟 <300ms(官方口径)流式可用,主打准确率流式可用,延迟中规中矩取决于设备与模型大小
语言覆盖Nova-3 覆盖 40+ 语言Universal-2 覆盖 90+ 语言140+ 语言99 种语言
智能后处理smart_format、说话人分离、热词加权说话人分离、标签、LeMUR 摘要说话人分离、字幕、翻译无,需自行开发
TTS 能力内置 Aura 多语言 TTS无原生 TTS500+ 音色、情感控制无
语音 AgentVoice Agent API(<800ms 端到端)无原生 Agent 层需自行编排 STT+LLM+TTS无
License/部署托管 SaaS,按分钟计费,注册赠 $200托管 SaaS,按分钟计费云服务或容器部署Apache-2.0,可私有化
适合谁实时语音 Agent、字幕、低延迟转写批量化转写与内容理解微软生态、企业合规数据不出域、预算敏感团队

选型建议:做实时语音对话(Agent/客服/字幕)优先 Deepgram,低延迟与内置 Agent API 是最大差异;纯离线批量转写且需要摘要、标签等理解能力,AssemblyAI 更顺手;企业合规与微软生态场景选 Azure Speech;数据必须留在内网或预算极为敏感时,用 Whisper 自托管,但要自建标点、说话人分离等后处理链路。

版本迭代

Deepgram 的产品主线是“更快、更多语言、更全链路”。2022 年 Nova-2 确立了亚 300ms 低延迟与行业领先准确率,2023 年补齐多语言转写与 Aura 语音合成,2024 年推出 Voice Agent API 把语音 Agent 做成开箱产品,2025 年 Aura-2 与 Nova-3 分别升级 TTS 与 STT 的准确率、语言覆盖与速度。

版本时间变化提升
Nova-22022-11STT 核心模型换代官方称错误率较前代降 30%,流式尾字延迟 <300ms
Nova-2 多语言2023-03新增多语言支持覆盖 en/es/fr/de/hi/ja/ko/pt/ru/zh 共 10 种语言
Aura TTS2023-06推出语音合成产品线首批十余种音色,可调语速/音量/音高
Voice Agent API2024-05端到端语音 Agent 能力封装 STT→LLM→TTS,voice-to-voice <800ms
Aura-22025-02TTS 模型升级多语言音色扩充,自然度与稳定性提升
Nova-32025-05STT 新一代旗舰模型语言覆盖扩展至 40+,多语言准确率与抗噪提升,幻觉率下降
基准Nova-2Nova-3
官方内部测试集 WER(%)8.4—同口径仅 Nova-2 发布时公布,Nova-3 未披露
同基准·Whisper large 对照(%)8.9—Deepgram 官方发布时的对照数据
同基准·AssemblyAI 对照(%)10.1—Deepgram 官方发布时的对照数据
结论

版本主线的规律是“模型迭代 + 产品化并行”——Nova 系列解决“听得准、回得快”,Aura 解决“说得好”,Voice Agent API 则把两者与 LLM 封装成产品。选型时建议直接使用最新模型:批转写与流式默认选 nova-3,TTS 默认 aura-2 系列音色;若遇兼容性顾虑再回退 nova-2(多语言场景 Nova-2 需显式指定语言代码)。

AI 应用场景

场景 1:实时语音客服与销售外呼 Agent

阶段:Agent 编排 / 语音交互

解决的问题:传统 IVR 按键菜单路径长、用户挂断率高;自行串联 STT→LLM→TTS 往往端到端延迟超过 1.5 秒,体验不达标。Deepgram Voice Agent API 把三段链路封装成单条 WebSocket 会话,官方口径 voice-to-voice 延迟低于 800ms,同时支持热词加权(产品名、人名自定义),降低关键信息误听。

具体案例:某电商客服机器人用 Voice Agent 处理售后退款咨询,用户说完诉求后约 1 秒内得到回复,无需等待按键菜单;全程转写文本留痕用于质检与争议回溯。相比人工客服 3-5 分钟的响应周期,机器人首响时间缩短到秒级,可 24 小时不间断承接(效果按官方口径估算)。

场景 2:会议转写与智能纪要

阶段:RAG 管道构建 / 文档智能

解决的问题:人工整理 1 小时会议纪要通常要花 2-4 小时。用 Deepgram 批处理转写(diarize + smart_format + utterances)先拿到带说话人、带时间戳、标点规范的逐字稿,再交给大模型生成纪要与待办项,整个流程从“小时级”压缩到“分钟级”。

具体案例:某咨询团队每周 8 场会议,原来每人每场花约 1.5 小时整理纪要;接入 Deepgram 后,会后 10 分钟内得到结构化纪要初稿,人工只做校对。转写稿还可入库做语义搜索,解决“上次会议谁说了什么”查不到的问题。

场景 3:视频字幕与音视频内容检索

阶段:RAG 管道构建 / 文档智能

解决的问题:长视频/播客加字幕与做检索,手工听打成本极高。Deepgram REST 转写支持 mp3/wav/m4a 等常见格式,返回逐词时间戳,可直接生成 SRT 字幕;配合 keywords 热词保证节目专有名词的准确性。

具体案例:某播客制作方每期 1 小时节目,原来外包听打费用高、返稿要 1-2 天;改用 Deepgram 批转写后分钟级出稿,字幕生成与全文搜索同步上线,历史节目库全部完成结构化,站内搜索命中率明显提升。

常见误区

误区我听说 Deepgram 就是一家做语音转写的公司,我用它只是把音频变成文字,别的功能好像跟我没关系。

正解Deepgram 目前是“转写 + 合成 + 语音 Agent”三位一体:Aura TTS 可做多语言语音合成(含流式边合成边播);Voice Agent API 直接把转写、大模型对话、合成封装成一路接口。做语音客服、语音助手、实时字幕时,这 3 个能力往往需要组合使用,只盯着 STT 会错过最省事的方案。

为何常见:早期 Deepgram 的对外宣传几乎全部围绕 STT 准确率与延迟,Aura、Voice Agent 是后来才补齐的产品线,容易让人停留在旧印象。

误区官方说亚 300ms,那我们语音对话应用的总延迟应该也是 300ms 左右吧。

正解亚 300ms 指的是“用户说完最后一个字到服务端返回该句最终识别文本”这一段的尾字延迟(last-word latency)。完整链路还包括:语音采集、网络上行、服务端处理、LLM 生成、TTS 合成、网络下行与播放。Deepgram 官方口径 Voice Agent 的 voice-to-voice 端到端延迟是低于 800ms,这才是可对外宣称的体验指标。

为何常见:厂商通常拿最亮眼的单段指标宣传,而应用开发者更关心全链路体感,两者口径不一致导致误读。

误区我在网上找到的旧教程写 `client.listen.prerecorded(...)`,直接抄过来应该也能跑吧?

正解deepgram-sdk v3 全面重写了客户端 API:批量转写要写成 client.listen.prerecorded.v("1").transcribe_file(...),流式连接要写成 client.listen.live.v("1"),TTS 走 client.speak.v("1")。旧代码直接迁移大概率报错,升级前先读官方迁移指南,并按当前文档核对方法签名。

为何常见:SDK 大版本升级属于破坏性变更,旧教程与问答社区中的示例仍大量停留在 v2 写法,搜索时难以区分新旧。

误区直接调用默认参数,我中文音频识别出来一堆英文或者乱码,肯定是 Deepgram 效果不行。

正解不传 language 时默认按英文处理;中文等语言需显式 language=zh(Nova-3 支持 40+ 语言),且流式传输原始 PCM 时必须声明 encoding=linear16&sample_rate=16000&channels=1 等参数。格式与语言都匹配后,识别质量才有意义。

为何常见:开发者习惯了“开箱即用”的 API 直觉,忽略了语音领域强依赖采样率、编码、语种声明这些前置条件。

误区注册送了 $200 额度,随便跑测试就行,等快用完再管。

正解额度耗尽后会自动转为按量计费。大批量批处理任务(比如一次性离线转写数万分钟音频)可能在几小时内消耗完额度并产生账单。应在 Console 的 Usage/Alert 中提前设置预算告警,或为测试项目单独使用一把 Key 并限定用途。

为何常见:SaaS 按量计费模式下,免费额度会让人忽略“计费开关始终开启”这个事实,只有收到账单才意识到。

面试题

Q1. Deepgram 官方对外主打的流式转写延迟指标是多少?

单选题 · easy

  • A.尾字延迟低于 300ms← 正确答案
  • B.端到端延迟低于 300ms
  • C.首包延迟低于 50ms
  • D.全链路延迟低于 800ms

答案:A。官方口径是流式 STT 的尾字延迟(last-word latency)低于 300ms;D 的 800ms 是 Voice Agent 端到端(voice-to-voice)指标,两者口径不同。B 把单段指标误当成全链路,C 的 50ms 无此官方说法,故选 A。

Q2. 安装 Deepgram 官方 Python SDK 的正确命令是?

单选题 · easy

  • A.pip install deepgram
  • B.pip install deepgram-sdk← 正确答案
  • C.pip install deepgram-api
  • D.npm install @deepgram/sdk

答案:B。官方 Python 包名是 deepgram-sdk,对应 PyPI 上的同名项目。A、C 均为不存在的包名,D 是 Node.js 的安装命令,与题干"Python"不符,故选 B。

Q3. Deepgram API 的鉴权 HTTP 头写法是?

单选题 · easy

  • A.Authorization: Bearer <key>
  • B.Authorization: Token <key>← 正确答案
  • C.Authorization: Basic <key>
  • D.Authorization: Digest <key>

答案:B。Deepgram 统一使用 Authorization: Token <API_KEY>,与常见的 Bearer 不同。A 是 OpenAI 等厂商习惯,C、D 为其他认证机制,均不符合 Deepgram 文档,故选 B。

Q4. 要让转写结果自动带标点并把数字、日期规范化为可读格式,应开启哪个参数?

单选题 · mid

  • A.punctuate—仅标点
  • B.smart_format—全格式化← 正确答案
  • C.numerals—数字处理
  • D.utterances—话轮切分

答案:B。smart_format 是集成了标点、数字、日期、货币等规范化的“一键格式化”参数;punctuate 只加标点不含数字规范,numerals 只处理数字读法转写法,utterances 是话轮切分与格式化无关,故选 B。

Q5. 建立 Deepgram WebSocket 流式识别连接后,第一条消息应该是什么?

单选题 · mid

  • A.直接发送音频字节开始识别
  • B.先发送 Settings 消息完成鉴权← 正确答案
  • C.发送 HTTP GET 请求建立会话
  • D.发送空字符串等待服务端响应

答案:B。Deepgram 的 WSS 协议要求连接建立后先发送 {"type": "Settings", "authorization": "Token <key>"} 完成鉴权与参数确认,之后才能发送音频。直接发音频会导致连接被拒绝或返回鉴权错误,故选 B。

Q6. Deepgram 中用于一句话结束时快速返回最终结果的主要参数是?

单选题 · mid

  • A.endpointing—断句阈值← 正确答案
  • B.interim_results—中间结果
  • C.diarize—说话人分离
  • D.keywords—热词加权

答案:A。endpointing 指定静音多久判定一句话结束(如 300ms),触发最终结果返回并开启新一轮识别;interim_results 控制中间结果输出,diarize 是说话人分离,keywords 是热词加权,均与断句时机无关,故选 A。

Q7. 在 Deepgram Voice Agent API 中,控制大模型行为(供应商、系统提示词)的配置项是?

单选题 · hard

  • A.persona—身份人设配置← 正确答案
  • B.settings—音频参数配置
  • C.profile—档案设置项
  • D.context—上下文配置

答案:A。Voice Agent API 通过 persona 指定 LLM 供应商(如 OpenAI、Anthropic、Gemini)与系统提示词等行为;settings 用于音频参数,profile 与 context 不是官方配置入口,故选 A。

Q8. 以下哪些属于 Deepgram 对外提供的 API 能力?

多选题 · mid

  • A.REST 批处理转写← 正确答案
  • B.WebSocket 流式转写← 正确答案
  • C.Aura 语音合成← 正确答案
  • D.Whisper 模型微调训练

答案:ABC。Deepgram 提供 REST 批转写、WSS 流式转写与 Aura TTS;Whisper 是 OpenAI 的开源模型,Deepgram 不提供其微调训练服务,故选 ABC。

Q9. 关于 Deepgram Nova-3,以下说法正确的有哪些?

多选题 · hard

  • A.是新一代 STT 旗舰模型← 正确答案
  • B.语言覆盖较 Nova-2 大幅扩展← 正确答案
  • C.仅支持英文单一语种识别
  • D.多语言准确率与抗噪能力提升← 正确答案

答案:ABD。Nova-3 于 2025-05 发布,是新一代旗舰 STT 模型,语言覆盖扩展至 40+,官方宣传强调多语言准确率、抗噪与低幻觉改进;C 与多语言覆盖矛盾,故选 ABD。

Q10. 生产环境中安全、正确地使用 Deepgram 的做法有哪些?

多选题 · hard

  • A.把 Key 放前端 JS 直连调用
  • B.由后端持有 Key 并代理转发← 正确答案
  • C.对 429 限流响应做指数退避← 正确答案
  • D.在 Console 设置用量告警← 正确答案

答案:BCD。生产实践要求 Key 只存在于服务端、对限流做退避重试、设置用量告警防止超支;前端直连会泄露 Key 且受 CORS 限制,故选 BCD。

参考来源