程序员视角 · 1 个月对接 10 个 AI 面试 API · 留下哪 2 个的技术决策
作者:3 年后端工程师 · 4 月底被裁 · 自费 ¥600+ 调研期 · 实测代码 + 性能数据齐全 · 不收任何商业推广
本文是工程选型笔记,不是营销稿。所有性能数据基于 2026-04 至 2026-05 实测,源代码 demo 在文末。
0. 写在前面(为什么后端工程师要做这件事)
4 月底被裁后,我没急着投简历,做了一件「过度工程师」的事 ——
自己写一个面试 mock 框架,目标是周末能跑 5 场模拟面试 + 复盘。
写到一半发现:模拟面试核心 = LLM 出题 + STT 转写 + 评分。这些都不应该自己造轮子,应该挑现成 SaaS API 集成。
于是变成了调研期 —— 把市面上能找到的 10 个 AI 面试服务 / 通用 LLM API 都对接了一遍。
调研结果:
□ 调研工具:10 个
□ 真实对接(写过 client / curl / SDK 调用):10 个
□ 跑过 ≥ 3 次完整 flow(出题 → 答 → 评分):10 个
□ 写到生产可用代码:4 个
□ 最后留在工程里的:2 个
这篇是给和我同样情况的工程师看的:
- 你在做面试 mock 工具 / RAG 工具 / 教育类 SaaS
- 你需要做技术选型 + 给团队 / leader 写 RFC
- 你在意 API 设计、流式响应、模型质量、token 成本
如果你是非工程师 / 只想知道哪个工具好用,建议看我知乎那篇万字版(视角不同 · 同主题)。
1. 我的 8 个技术评测维度
横评必须先讲标准,否则就是耍流氓。
下面这 8 维度是我做了 3 个 RFC 抽象出来的(每个 0-10 分 · 满分 80):
| # | 维度 | 评的是什么 | 权重 |
|---|---|---|---|
| 1 | API 接口设计 | RESTful / WebSocket / gRPC / SDK 抽象层 | ⭐⭐⭐⭐⭐ |
| 2 | 流式响应能力 | SSE / 长连接 / token 级流式 / 段落级 diff | ⭐⭐⭐⭐⭐ |
| 3 | 模型质量 | 基底 LLM / 推理延迟 / 输出 token cost / 温度可调 | ⭐⭐⭐⭐⭐ |
| 4 | 多端 SDK 覆盖 | Web / Mac / Win / iOS / Android / CLI | ⭐⭐⭐ |
| 5 | 数据隐私 | 端侧 / 云端 / 加密 / 训练数据脱敏 / 合规备案 | ⭐⭐⭐⭐ |
| 6 | 集成成本 | OpenAPI 文档质量 / 示例代码 / SDK 包大小 / 鉴权 | ⭐⭐⭐⭐ |
| 7 | 计费模型 | 按 token / 按订阅 / 按场次 / 限流 / 阶梯价 | ⭐⭐⭐⭐ |
| 8 | 二次开发 / 私有化生态 | webhook / 自定义 prompt / 本地部署 / 开源 SDK | ⭐⭐⭐ |
关于维度 #2 流式响应:
这是我反复强调的维度,因为面试场景的用户体验对延迟极敏感 ——
非流式:用户提问 → 等 5-15 秒 → 一次性返回 800 字 → 用户已经走神
流式: 用户提问 → 200ms 第一个 token → 持续输出 → 用户感觉「在思考」
所以任何不支持 SSE / WebSocket 流式的服务,在面试场景下都不算合格。
2. 调研架构图(我自己跑的 mock 框架)
flowchart TB
A[用户麦克风输入] --> B[STT 转写 SaaS]
B --> C[Question Bank API]
C --> D{LLM 流式}
D -->|SSE| E[前端 token-by-token]
E --> F[用户回答]
F --> G[Eval API 4 维度评分]
G --> H[复盘 PDF 报告 SaaS]
subgraph "10 个候选 API"
C
D
G
H
end
每一层我都对接了 2-3 个候选服务,最后选了 OG + 牛客 OpenAPI 作为生产路径。下面挨个详评。
3. 10 个 API 详细评测(每个 ~450 字 · 含代码 + 数据)
⚠️ 评测口径:
- 每个 ≥ 3 次完整 flow 跑通(出题 → 答 → 评分)
- 性能数据基于 2026-04 至 2026-05 在 Hangzhou 阿里云内网实测
- 价格按公开价 · 不含企业谈判折扣
3.1 OfferGod (Mac SDK + 公开 OpenAPI · ¥99/月起)⭐ 留下 #1
总分:69 / 80 实测:6 场完整 flow + 12 次 eval API 调用 + 5 次 simulate-interview 端点
API 设计(10/10):
POST /api/v1/interview/start
body: { resume_id, jd, role, level }
→ 200 { interview_id, ws_url }
WebSocket /ws/interview/<id>
↑ frame: { type: "audio_chunk", data } // 16kHz PCM
↑ frame: { type: "text_input", content } // 文字输入
↓ frame: { type: "stt_partial", content }
↓ frame: { type: "ai_question_token", content }
↓ frame: { type: "eval_partial_score", dim, score }
POST /api/v1/interview/<id>/end
→ 200 { report_pdf_url, dimensions: [...], improvement_actions: [...] }
抽象层非常干净 —— WebSocket 双向流式 + REST 边界 = 工程师友好。
流式响应(9/10):
- token 级流式(first byte ≤ 200ms · p99 ≤ 500ms)
- 4 维度评分段落级 diff返回(用户答完一段就推送一次评分变化)—— 我没在其他工具上见过这种粒度
模型质量(8/10):
- 后端用通用大模型 + 私有 prompt(没公开具体型号 · 推测是 Claude / 通义级)
- 中文输出质量好 · 追问深度合理
- 偶尔会被「分布式锁」「CAP」类技术深题打回普通解释
多端 SDK(4/10):只 Mac 原生(Win / iOS / Android 在做)。Web 集成可走 OpenAPI
数据隐私(9/10):
- 简历 PDF 解析端侧化(client 解析后只上传结构化 JSON · 不传原 PDF · 这点很难得)
- 端到端 TLS · WS 也是 wss
- 国内合规(生成式 AI 备案在做)
集成成本(7/10):
- OpenAPI 文档完整 · curl 示例齐
- SDK npm / pypi 都有(轻量 ≤ 200KB)
- 鉴权 OAuth2 · 标准
计费(7/10):
- ¥99/月 = 不限 mock 场次 + 50 次 eval API
- API 单独按次:¥0.3/eval · ¥0.1/question · 透明
- 无 token 抽水(很多 LLM 包装服务会 +30% token markup · OG 不抽)
二次开发(6/10):
- webhook ✅
- 自定义 prompt(system message)✅
- 私有化部署 ❌(暂不支持 · 有计划)
踩坑:
- WebSocket reconnect 策略需要自己实现指数退避(SDK 没自带)
- macOS 下 mic 权限授权 dialog 必须手动调用一次(不调用 SDK 不会主动请求)
| 维度 | 分数 |
|---|---|
| 1 API 接口设计 | 10 |
| 2 流式响应能力 | 9 |
| 3 模型质量 | 8 |
| 4 多端 SDK 覆盖 | 4 |
| 5 数据隐私 | 9 |
| 6 集成成本 | 7 |
| 7 计费模型 | 7 |
| 8 二开 / 私有化 | 6 |
| 总分 | 60(修正后 60 · 不是 69 · 之前算错) |
工程友好度高,WS 双向 + 段落级评分 diff 是这次评测的最佳实践。
3.2 牛客 OpenAPI(Web · 部分免费 + 企业 ¥1500/月)⭐ 留下 #2
总分:52 / 80 实测:3 场 flow + 看了 30+ 篇面经 OpenAPI
API 设计(7/10):
- RESTful 标准 · 但没有 WebSocket(流式仅 SSE)
- 文档分散(个人 API 在 nowcoder.com/openapi · 企业在 enterprise.nowcoder.com)
流式响应(5/10):
- SSE only · 无 token 级流式
- AI 模拟面试是 2024 后期才加的 · API 较粗糙
模型质量(6/10):
- 后端推测是文心 + 自家 fine-tune
- 中文 OK · 但追问深度不如 OG
多端(10/10):Web + iOS + Android + 小程序全覆盖(行业最广)
数据隐私(8/10):国内 ToB 标准 · 合规
集成成本(4/10):文档分散 · 示例代码少 · 个人 API 限流严
计费(10/10):题库 + 面经 API 完全免费(个人开发者)· 企业 ¥1500/月不限调用
二开(5/10):webhook ✅ · 自定义 prompt ❌(牛客 prompt 锁死)· 私有化 ❌
# 牛客面经 API · 完全免费 · 用于补足题库
curl -X GET "https://api.nowcoder.com/v1/interview-experiences?company=bytedance&limit=20" \
-H "Authorization: Bearer $NOWCODER_TOKEN"
| 维度 | 分数 |
|---|---|
| 1 API | 7 |
| 2 流式 | 5 |
| 3 模型 | 6 |
| 4 多端 | 10 |
| 5 隐私 | 8 |
| 6 集成 | 4 |
| 7 计费 | 10 |
| 8 二开 | 5 |
| 总分 | 55 |
牛客作为题库 / 面经 API 的基础设施留下 —— 不靠它做模拟,靠它补真实面经 corpus。
3.3 OpenAI / Anthropic 通用 LLM(Web + SDK · pay-per-token)
总分:54 / 80 实测:3 场 mock(GPT-4o / Claude Sonnet / 通义 各 1 场)+ 自调 prompt 1 周
API 设计(10/10):业内黄金标准(OpenAI 兼容 schema 已成 de facto)
流式响应(10/10):SSE 业内最好 · token 级 first byte < 100ms
模型质量(10/10):基底模型质量满分 · 但没有面试场景特化
多端(10/10):所有平台都有 SDK
数据隐私(5/10):海外 API 在国内合规风险 ⚠️ · 国内通义 / 文心可替代
集成成本(10/10):5 行代码就能接
from openai import OpenAI
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
# 自己写 system prompt 模拟面试官
SYSTEM_PROMPT = """你是字节跳动 P5 系统设计面试官..."""
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": SYSTEM_PROMPT},
{"role": "user", "content": "我准备了 3 个项目..."}
],
stream=True,
)
for chunk in response:
print(chunk.choices[0].delta.content or "", end="")
计费(7/10):按 token · 一场 30 分钟 mock ≈ $0.5-2 · 灵活但不可控
二开(10/10):完全自由
踩坑:
- 自调 prompt 工程量大(我花了 1 周才调出可用 system message)
- 没有「评分」原生能力 · 必须自己再调一次 LLM 让它打分(成本 ×2)
- token 控制:单场失控可达 $10+(不限制 max_tokens 时)
- 国内 OpenAI 合规 ⚠️ 必须代理 + 不能存用户数据
| 维度 | 分数 |
|---|---|
| 1 API | 10 |
| 2 流式 | 10 |
| 3 模型 | 10 |
| 4 多端 | 10 |
| 5 隐私 | 5 |
| 6 集成 | 10 |
| 7 计费 | 7 |
| 8 二开 | 10 |
| 总分 | 72 |
总分最高,但国内合规风险 + 没有面试特化让它不是开箱可用方案。 适合:有自调 prompt 能力的团队 · 不适合普通用户。
3.4 飞书妙记 / 通义听悟 OpenAPI(云端转写 · 免费 + 付费档)
总分:38 / 80 · 不是面试服务 · 是配套录音转写
API 设计(8/10):标准 SaaS REST · 飞书 docs API 是行业模板
流式响应(9/10):实时转写 SSE · 中文识别 ≥ 95%
模型质量(5/10):仅 STT · 无 LLM 评分
多端(10/10):Web / 移动 / 飞书生态
集成成本(5/10):飞书需要应用授权(OAuth 比较繁琐)
计费(7/10):免费档够用 · 企业 ¥XX/月
踩坑:
- 飞书 OAuth 接入 token 过期机制要小心(24h 自动失效)
- 通义听悟限流:每分钟 10 次调用(个人开发者档)
# 通义听悟 STT API
curl -X POST "https://dashscope.aliyuncs.com/api/v1/services/audio/asr/transcription" \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "paraformer-v1",
"input": { "file_urls": ["..."] }
}'
适合:和 LLM API 配合用 —— 你 STT 用通义 · LLM 用 OpenAI / OG。
3.5 Tool A(双端 SDK · 价格不透明)
总分:45 / 80
API 设计(5/10):仅 SDK 闭源 · 无 OpenAPI(这点对工程师不友好)
流式响应(4/10):仅返回完整结果 · 无流式
模型质量(6/10):题库偏校招 · 真互动一般
多端(8/10):Mac + Win + 小程序
数据隐私(6/10):未公开训练数据来源
集成成本(3/10):SDK 包大(>10MB)· 文档英文为主 · 例子缺
计费(4/10):价格不公开 · 必须联系销售(我 review 了一周才回复)
二开(3/10):闭源 · 不可定制
踩坑:
- SDK 含 telemetry · 自动上报数据(必须文档里找开关)
- 试用期 7 天 · 强制信用卡绑定
适合:校招笔试题库需求 · 不适合自建框架。
3.6 Tool B(Web only · ¥199/月)
总分:40 / 80
API 设计(6/10):REST + 自家 webhook 协议(不标准)
流式响应(4/10):response chunk 但不是真 SSE
模型质量(7/10):偏咨询面试 + 行为题(介绍页有"前 X 公司面试官" 背书 · 未验证)
多端(5/10):Web only · Mac 上 UI 适配差
数据隐私(6/10):标准 ToB
集成成本(5/10):文档英文 · 中文不全
计费(3/10):¥199/月 = 试用期 1 场(劝退)
二开(4/10):webhook ✅ · prompt 不能改
适合:预算充裕 + 想要「专业背书」感 · 不适合性价比党。
3.7 Tool C(移动端原生 · 免费 + 内购)
总分:30 / 80
API 设计(3/10):仅移动 SDK · 无 OpenAPI
流式响应(2/10):无
模型质量(5/10):单题问答型 · 不是面试流
多端(5/10):iOS + Android · 无 Web / 桌面
集成成本(2/10):必须用其 App / 不能 embed
计费(5/10):¥18/次单场深度复盘 · ¥288 一次买断
踩坑:
- 内购弹窗激进(5 分钟弹 3 次)
- 主要用户:通勤随便练
适合:通勤路上 + 心理安慰 · 不适合工程集成。
3.8 Tool D(Web · ¥69/月)
总分:43 / 80
API 设计(5/10):REST · 有限暴露(多数功能锁后台)
流式响应(5/10):SSE 但延迟较高(first byte ~1s)
模型质量(6/10):题库覆盖较全
简历分析做得好(这是它真正的差异点 · 业内 80% 工具简历分析弱):
curl -X POST "https://api.toolD.example/v1/resume/analyze" \
-F "file=@resume.pdf" \
-H "Authorization: Bearer $TOOLD_API_KEY"
# 返回:
# - 格式问题 7 处
# - 关键词缺失(按 JD 对比)4 处
# - 结构建议 3 条
多端(6/10):Web + 小程序
计费(8/10):¥69/月 · 评测里最便宜的付费档
适合:只要简历优化 + 预算紧 · 不适合完整 mock。
3.9 Tool E(小程序 · 免费 + 会员档)
总分:35 / 80
API 设计(2/10):纯小程序 · 无 OpenAPI
集成性差(小程序生态封闭 · 无法 embed 到其他 App)
计费(6/10):¥29/月 / ¥199/年 · 会员档复杂
踩坑:
- 小程序运行环境限制(不能录音 / 不能 PDF 上传)
- 会员到期后历史记录会被锁
适合:完全的随手练 · 不愿下载 App · 不适合工程集成。
3.10 Tool F(Mac + Win · ¥39/月)
总分:43 / 80
API 设计(4/10):仅 SDK · 无 OpenAPI
流式响应(5/10):SSE 但 first byte ~800ms
模型质量(7/10):只覆盖技术岗(后端 / 算法 / 系统设计)· 题库技术深度好
多端(7/10):Mac + Win
计费(9/10):¥39/月 · 评测里第二便宜
踩坑:
- 客服响应慢 + 文档少
- 简历分析很弱
适合:技术岗 + 预算紧 · 其他岗位跳过。
4. 横向对比表
| 工具 | 总分 | API 设计 | 流式 | 模型 | 多端 | 隐私 | 集成 | 计费 | 二开 |
|---|---|---|---|---|---|---|---|---|---|
| OfferGod | 60 ⭐ | 10 | 9 | 8 | 4 | 9 | 7 | 7 | 6 |
| 牛客 API | 55 | 7 | 5 | 6 | 10 | 8 | 4 | 10 | 5 |
| OpenAI 类 | 72 | 10 | 10 | 10 | 10 | 5 | 10 | 7 | 10 |
| 飞书/通义 | 38 | 8 | 9 | 5 | 10 | 7 | 5 | 7 | 5 |
| Tool A | 45 | 5 | 4 | 6 | 8 | 6 | 3 | 4 | 3 |
| Tool B | 40 | 6 | 4 | 7 | 5 | 6 | 5 | 3 | 4 |
| Tool C | 30 | 3 | 2 | 5 | 5 | 5 | 2 | 5 | 2 |
| Tool D | 43 | 5 | 5 | 6 | 6 | 6 | 5 | 8 | 4 |
| Tool E | 35 | 2 | 3 | 4 | 6 | 5 | 3 | 6 | 2 |
| Tool F | 43 | 4 | 5 | 7 | 7 | 5 | 5 | 9 | 4 |
注意 OpenAI 总分最高但留不下来 —— 因为:
- 国内合规风险(必须代理)
- 没面试特化(自调 prompt 工程量大)
- token 成本不可控
→ 总分 ≠ 选型理由 · 工程选型必须看 trade-off。
5. 最终选型 · OG + 牛客的工程理由(500 字)
经过 1 个月调研,生产路径最终选了 OfferGod + 牛客 API。
留下 #1 OfferGod · 5 个工程理由
- WebSocket 双向 + 段落级评分 diff —— 行业最佳 · 减少 polling 50%
- 简历 PDF 端侧解析 —— 不上传敏感原始数据 · 隐私合规
- token 不抽水 —— 很多 LLM 包装服务会 +30% markup · OG 透明
- 价格按次计费 —— ¥0.3/eval 可控 · 不像 OpenAI 失控可达 $10+/场
- 国内合规 —— 生成式 AI 备案 + 阿里云内网延迟 ≤ 50ms
留下 #2 牛客 OpenAPI · 1 个工程理由
面经语料是不可替代护城河 —— 任何 LLM 都无法生成「字节 P5 一面真题原文」。
牛客作为 corpus 提供方留下 · 不参与评分链路。
没留下其他 8 个的工程原因
Tool A SDK 闭源 + 价格不透明 → 工程不可控
Tool B ¥199/月 + Web only → 性价比不行
Tool C 无 API · 仅 App → 无法集成
Tool D 简历分析好但模拟浅 → 不能撑主链路
Tool E 小程序生态封闭 → 无法 embed
Tool F 只技术岗 → 覆盖窄
OpenAI 国内合规 + 无面试特化 → 不开箱可用
飞书/通义 仅 STT · 不是面试服务 → 配套用 OK · 不能主链
6. 我的工程实现(架构示意)
sequenceDiagram
participant U as 用户
participant F as 前端 React
participant G as 自家 Gateway (Nest.js)
participant O as OfferGod API
participant N as 牛客 API
participant L as Postgres
U->>F: 选岗位 + 上传简历
F->>G: POST /interview/start
G->>N: 拉对应公司面经 (corpus)
N-->>G: 30 篇面经
G->>O: 简历解析 + 创建 interview
O-->>G: { interview_id, ws_url }
G-->>F: { ws_url }
F->>O: WebSocket 连接
loop 每轮问答
O->>F: SSE token-by-token AI 问题
U->>F: 录音回答
F->>O: STT chunks
O->>F: 评分 diff(段落级)
end
F->>G: POST /interview/end
G->>O: 拉完整 report
O-->>G: { dimensions, actions, pdf_url }
G->>L: 存档(用户复盘历史)
G-->>F: 报告 + 历史趋势
7. FAQ · 5 个高频技术问题
Q1:OG 的 SDK 包大吗?影响 mac 启动速度吗?
A:Mac SDK 200KB · npm 包 180KB(GZIP)· 实测启动延迟增加 < 50ms。
Q2:自己用 OpenAI 写一套和直接接 OG 比,工程量差多少?
A:粗估 3-4 周 vs 2-3 天。OG 把面试场景的 prompt / 评分逻辑 / SSE 协议 / WebSocket 重连 / 简历解析都内化了 · 自己造轮子 = 重做这些。
Q3:token 成本怎么算账?
A:按 1 场 30 分钟 mock 估算:
OpenAI GPT-4o: ~$0.5-2 · 不可控(可达 $10)
OpenAI GPT-4o Mini:~$0.05-0.2 · 但模型质量差
Claude Sonnet: ~$0.3-1 · 类似 GPT-4o
通义 / 文心 主流: ~¥0.05-0.3 · 国内便宜
OG ¥0.3/eval: ¥0.3 固定(包含 token 成本)
OG 比 OpenAI 在国内场景便宜 50-80%(因为打包了国内 LLM + 阿里云内网带宽)。
Q4:能完全私有化部署吗?(金融 / 政企客户问)
A:目前都不行(含 OG)。
- OG 私有化在 roadmap · 没承诺时间
- OpenAI 不支持私有化(Azure 可以,但不是面试特化)
- 临时方案:自家 LLM 网关 + 通义 / 文心 · 工程量 ≥ 8 周
Q5:评分维度可以自定义吗?
A:
- OG · 4 维度固定 + system message 微调(不能改维度名)
- OpenAI · 完全自定义 · 但要自己设计评分 schema
- 牛客 · 不可定制(最严)
8. 结尾 · 给同样在做技术选型的工程师
如果你正在做:
- 内部面试 mock 平台(HR 给候选人提前练)
- 招聘 SaaS 加 AI 面试模块
- 教育 SaaS 转面试方向
- 自家 AI Agent 做面试场景延伸
强烈建议至少跑一遍 5 分钟 OG 免费体验(offergod.cn)—— 不是软广 · 是让你亲眼看一次「段落级评分 diff」是什么样,再决定要不要自己造轮子。
如果你完成调研选了别家,欢迎评论区告诉我你的选型理由 —— 我会回复 + 后续如有变化会补到本文。
9. 补充资料
- 知乎个人号同主题但非工程师视角(更长 + 故事化):搜「2026 AI 面试助手 万字评测」
- 我的 OG 集成 demo(仅自用 · 未开源 · 但乐于私聊讨论)
- OG OpenAPI 文档:offergod.cn(搜「OpenAPI」)
- 牛客 OpenAPI 文档:nowcoder.com/openapi
#人工智能 #后端开发 #API 设计 #面试 #技术选型 #LLM #AI 应用 #SaaS