大模型选型与 API 对接实战
市场上的大模型已经超过上百个,每隔几周就有新的「最强模型」发布。作为 AI 产品经理,你不需要测试所有模型,但必须建立一套系统的选型框架——在正确的场景用正确的模型,是 AI 产品降本增效的第一步。
1. 主流模型全景图
1.1 闭源 API 模型(Cloud API)
| 模型系列 | 厂商 | 代表版本 | 核心优势 | 典型场景 |
|---|---|---|---|---|
| GPT-4o | OpenAI | gpt-4o, gpt-4o-mini | 综合能力最强、生态最完整 | 复杂推理、代码生成、多模态 |
| Claude | Anthropic | Claude 3.5 Sonnet, Claude 3 Haiku | 长文本、安全性、指令遵循 | 文档处理、客服、写作 |
| Gemini | Gemini 1.5 Pro, Gemini Flash | 超长上下文(100万 Token)、多模态 | 视频理解、长文档分析 | |
| DeepSeek | 深度求索 | DeepSeek-V3, DeepSeek-R1 | 极低价格、推理能力强 | 成本敏感场景、数学推理 |
| Qwen | 阿里云 | Qwen2.5-72B, Qwen-VL | 中文优化、开源生态 | 中文业务场景 |
1.2 开源/自部署模型
| 模型系列 | 参数量 | 开源协议 | 适用场景 |
|---|---|---|---|
| Llama 3.1 | 8B / 70B / 405B | Meta Llama License | 私有化部署、定制微调 |
| Qwen2.5 | 7B / 72B | Apache 2.0 | 中文场景私有化 |
| Mistral | 7B / 8x7B | Apache 2.0 | 欧洲合规场景 |
| Phi-3 | 3.8B / 14B | MIT | 边缘设备、低成本推理 |
PM 视角:不要追新模型,要追「最适合场景的模型」。2024年最大的变化是:中低端任务用 gpt-4o-mini 或 DeepSeek-V3 已经绰绰有余,GPT-4o 留给真正需要顶级能力的场景。
2. 选型决策框架
选择大模型不是感性判断,而是多维度的系统评估。以下是一个实用的 5 维框架:
2.1 能力评估(Capability)
首先明确你的任务类型:
任务类型评估树:
├── 文本任务
│ ├── 简单问答 → 中等模型即可(Haiku / gpt-4o-mini)
│ ├── 复杂推理 → 顶级模型(GPT-4o / Claude 3.5 Sonnet)
│ └── 中文理解 → 优先考虑 Qwen / DeepSeek
├── 代码任务
│ ├── 代码补全 → GPT-4o / Claude 3.5 Sonnet
│ └── 代码审查 → 同上,或 DeepSeek-Coder
├── 多模态任务
│ ├── 图像理解 → GPT-4o / Gemini Pro Vision
│ └── 视频理解 → Gemini 1.5 Pro(目前最强)
└── 长文档处理
└── 超过 10 万字 → Gemini 1.5 Pro(100万 Token 上下文)
实操建议:建立内部 Benchmark,用自己的真实业务数据测试候选模型,而不是只看第三方榜单(MMLU、HumanEval 等榜单和实际业务表现可能差距很大)。
2.2 成本分析(Cost)
2025 年主流模型的 Token 定价(参考价,以实际为准):
| 模型 | 输入价格(/M tokens) | 输出价格(/M tokens) | 中文性价比 |
|---|---|---|---|
| GPT-4o | $2.5 | $10 | 中 |
| GPT-4o-mini | $0.15 | $0.6 | 高 |
| Claude 3.5 Sonnet | $3 | $15 | 中 |
| Claude 3 Haiku | $0.25 | $1.25 | 高 |
| DeepSeek-V3 | $0.14 | $0.28 | 极高 |
| Gemini 1.5 Flash | $0.075 | $0.3 | 极高 |
成本估算公式:
月成本 = 日均请求数 × 平均输入Token × 输入单价
+ 日均请求数 × 平均输出Token × 输出单价
× 30天
案例:一个客服 Bot,日均 5000 次请求,平均输入 500 Token,平均输出 200 Token:
- 用 GPT-4o:月成本约 $2,025
- 用 DeepSeek-V3:月成本约 $147(节省 93%)
2.3 延迟要求(Latency)
| 场景 | 可接受延迟 | 推荐策略 |
|---|---|---|
| 实时对话(聊天机器人) | < 2 秒(首字符) | 使用 Streaming,优先选低延迟模型 |
| 文档处理(异步) | 10-60 秒 | 可用更强模型,后台处理 |
| 批量数据处理 | 小时级 | 使用 Batch API,成本降低 50% |
| 搜索增强(RAG) | < 500ms | 轻量 Embedding 模型 + 小型 LLM |
2.4 上下文窗口(Context Window)
| 模型 | 上下文窗口 | 等效页数 |
|---|---|---|
| GPT-4o | 128K Token | ~100 页 |
| Claude 3.5 Sonnet | 200K Token | ~150 页 |
| Gemini 1.5 Pro | 1M Token | ~750 页 |
| DeepSeek-V3 | 64K Token | ~50 页 |
注意:上下文越长,推理成本越高(二次方增长)。不要无脑堆 Context,要设计好信息密度。
2.5 合规与数据安全
数据敏感性判断:
├── 公开数据 / 非敏感 → 可用境外 API(OpenAI / Anthropic)
├── 用户隐私数据 → 需要数据不出境,使用国内 API 或私有化部署
├── 金融 / 医疗 / 政府数据 → 通常要求私有化部署,等保合规
└── 企业机密数据 → 私有化部署 + 网络隔离
3. API 对接基础
3.1 REST API 调用
以 OpenAI 兼容接口(行业标准)为例:
import openai
client = openai.OpenAI(
api_key="your-api-key",
base_url="https://api.openai.com/v1" # 替换为其他服务商地址即可切换模型
)
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "你是一个专业的产品助手"},
{"role": "user", "content": "帮我写一份用户访谈提纲"}
],
temperature=0.7,
max_tokens=1000
)
print(response.choices[0].message.content)
关键参数说明:
temperature:0 = 确定性输出(适合结构化任务),1 = 创意输出(适合写作)max_tokens:限制输出长度,防止超出预算top_p:与 temperature 类似,通常只调其中一个
3.2 Streaming 流式输出
聊天产品必须使用 Streaming,用户体验差距巨大:
# 流式输出,实现逐字显示效果
stream = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "讲个故事"}],
stream=True # 开启流式
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
3.3 Function Calling(工具调用)
这是 AI Agent 的核心机制,让模型能调用外部工具:
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "获取指定城市的天气信息",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "城市名称"},
"date": {"type": "string", "description": "日期,格式 YYYY-MM-DD"}
},
"required": ["city"]
}
}
}
]
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "明天北京天气怎么样?"}],
tools=tools,
tool_choice="auto"
)
# 模型会返回需要调用的工具和参数,你的代码负责执行并返回结果
4. Token 经济学与成本管理
4.1 Token 计算规律
- 英文:约 1 Token ≈ 4 个字符 ≈ 0.75 个单词
- 中文:约 1 Token ≈ 1-2 个汉字(中文 Token 效率更低)
- 代码:Token 密度较高,通常比自然语言少
实用工具:OpenAI Tokenizer(https://platform.openai.com/tokenizer)可以帮你精确计算
4.2 降低 Token 成本的策略
| 策略 | 节省幅度 | 实施难度 |
|---|---|---|
| 使用更小的模型(能力够用即可) | 50%-95% | 低 |
| 压缩 System Prompt | 10%-30% | 低 |
| 使用 Batch API(异步场景) | 50% | 中 |
| 缓存相同请求(Prompt Caching) | 看命中率 | 中 |
| 输出格式优化(JSON 代替自然语言) | 20%-40% | 中 |
| RAG 替代长 Context | 60%-80% | 高 |
4.3 成本监控体系
PM 应推动团队建立:
- 按功能/用户分类的成本追踪(哪个功能最烧钱?)
- 异常告警(单用户成本突增时自动报警)
- 月度成本预测(结合 DAU 增长规划预算)
5. 限流与错误处理
5.1 常见错误类型
| 错误码 | 含义 | 处理策略 |
|---|---|---|
| 429 | Rate Limit 超限 | 指数退避重试(1s, 2s, 4s, 8s...) |
| 500 / 502 | 服务器错误 | 重试 + 降级到备用模型 |
| 400 | 请求参数错误 | 检查 Token 超限、格式错误 |
| 401 | API Key 无效 | 检查密钥配置 |
| 503 | 服务不可用 | 重试 + 用户提示等待 |
5.2 生产级错误处理模板
import time
from openai import RateLimitError, APIError
def call_llm_with_retry(prompt, max_retries=3):
for attempt in range(max_retries):
try:
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content
except RateLimitError:
wait_time = 2 ** attempt # 指数退避
time.sleep(wait_time)
except APIError as e:
if attempt == max_retries - 1:
# 最后一次失败,降级到备用模型
return call_fallback_model(prompt)
return None
6. 云 API vs 私有化部署
6.1 决策矩阵
| 维度 | 云 API | 私有化部署 |
|---|---|---|
| 启动成本 | 低(按用量付费) | 高(GPU 服务器投入) |
| 运维成本 | 极低 | 高(需要专业团队) |
| 数据安全 | 依赖服务商 | 完全可控 |
| 模型能力上限 | 最新最强模型 | 受限于开源模型能力 |
| 稳定性 | 依赖服务商 SLA | 自主可控 |
| 适合规模 | 中小企业 / 快速验证 | 大企业 / 监管行业 |
6.2 私有化部署技术选型
如果决定私有化,主流技术栈:
- 推理框架:vLLM(生产级,支持高并发)、Ollama(开发测试)
- 硬件:A100 80G(顶级),RTX 4090(性价比),A10G(云上)
- 模型服务:统一对外暴露 OpenAI 兼容 API,便于业务侧无缝切换
核心要点
- 选型先定场景:不同任务对能力、成本、延迟的权重完全不同
- 用真实数据 Benchmark:榜单不可信,自己的测试才算数
- 成本要精细化管理:功能级别的成本追踪是 AI 产品盈利的关键
- 多模型策略:顶级任务用强模型,日常任务用轻模型,降本最有效
- 设计降级方案:任何单一模型都可能不可用,生产系统必须有 Fallback