# 如何用一个 API 调用多个 LLM？

> 把 OpenAI 或 Anthropic 兼容客户端连接到 AI Gateway，用网关 Key 认证，并把 model 设为实时目录中的 canonical ID。端点族和模型 ID 都应可配置，因为专用模态与模型特性可能需要不同路由。

_最后复核 2026-08-15 · [编辑复核](https://keeprouter.com/editorial-policy#editorial-team)_

## 1. 选择客户端契约

应用围绕 OpenAI 形态对象构建时使用 Chat Completions 或 Responses；Anthropic SDK 或 Claude Code 工作流使用 Anthropic Messages。不要在每个功能里自己转换，应在平台边界集中选定客户端形态。

## 2. 验证认证

创建限定到当前 free 模型的 Key，修改 Base URL，发送有边界的非流式请求。充值付费额度前先检查请求记录，把连接问题与模型选择问题分开。

## 3. 建立批准模型映射

读取[实时目录](/models)，选择支持所需端点的 ID，并记录每个 ID 通过的能力测试。把这些 ID 放在配置中。公共目录并不自动等于你的产品批准目录。

## 4. 运行同一工作负载

固定提示词、上下文、工具集、输出上限和通过标准，比较完成状态、输入输出 token、费用、延迟和产品质量。只改模型 ID 会让接入可比较，但不会让输出等价。

## 5. 为生产加边界

按环境或服务发放独立 Key，设置模型白名单与消费上限，明确处理可重试错误，并保留已测试回滚。图像、向量、音频等专用模态应使用模型页列出的端点，不要强塞进聊天接口。

## 最小形态

```python
model = os.environ["APPROVED_MODEL_ID"]
client = OpenAI(base_url="https://keeprouter.com/v1", api_key=os.environ["KEEPROUTER_KEY"])
response = client.chat.completions.create(model=model, messages=messages, max_tokens=800)
```

## 常见问题

### 可以只改一个字段切换模型吗？

当两个模型支持同一路由时通常可以，但仍必须测试行为与能力。

### 所有模型都应共用一个 Key 吗？

网关 Key 可访问多个批准 ID，但生产 Key 应使用窄白名单。

### 聊天路由可以处理图像与音频吗？

专用生成或音频操作通常使用各自文档化端点。

### 模型 ID 应放在哪里？

放在经过审查的部署配置中，让提升和回滚无需改代码。

## 参考的一手资料

1. [OpenAI API reference](https://platform.openai.com/docs/api-reference)
2. [Anthropic Messages API](https://docs.anthropic.com/en/api/messages)
3. [KeepRouter OpenAPI](https://keeprouter.com/api/openapi.json)

## 继续阅读

- [统一 LLM API](https://keeprouter.com/zh/features/unified-llm-api.md)
- [AI 原型团队](https://keeprouter.com/zh/built-for/ai-prototyping.md)
- [quickstart](https://keeprouter.com/docs/quickstart.md)
- [如何用证据型评分卡评估 AI Gateway](https://keeprouter.com/zh/blog/evaluate-ai-gateway.md)

## 用线上产品验证答案

查看实时模型目录，创建限定 free 模型的 Key，并检查生成的请求证据。

[创建免费 Key](https://keeprouter.com/login?returnTo=%2Fconsole%2Fkeys%3Fmodel%3Dfree) · [实时模型与价格](https://keeprouter.com/models.md)
