Auto 选模实践
model=auto 让 Trinity 网关根据请求内容自动选择最合适的模型。本篇介绍实际使用中的最佳实践和注意事项。
什么时候用 Auto
| 场景 | 是否推荐 | 原因 |
|---|---|---|
| 通用对话助手 | 推荐 | 无需关心模型选择,网关自动匹配 |
| 成本敏感的批量处理 | 推荐 | 网关会综合考虑价格和性能 |
| 需要特定模型能力(如视觉) | 不推荐 | 直接指定模型 ID 更可靠 |
| 需要可复现的结果 | 不推荐 | 同一请求可能路由到不同模型 |
| 编程 IDE / CLI | 不推荐 | 工具通常要求固定模型 ID |
基本用法
只需将 model 设为 auto:
bash
curl -sS https://api.trinitydesk.ai/v1/chat/completions \
-H "Authorization: Bearer $TRINITY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "auto",
"messages": [{"role": "user", "content": "用三句话解释量子计算"}]
}'识别实际使用的模型
响应中的 model 字段固定返回 "auto"。要查看实际路由到的模型,检查响应头或 trinity 扩展字段:
json
{
"id": "chatcmpl-xxx",
"model": "auto",
"choices": [...],
"trinity": {
"actual_model": "gpt-5-nano",
"route_reason": "balanced"
}
}| 字段 | 说明 |
|---|---|
model | 固定为 "auto" |
trinity.actual_model | 实际调用的模型 ID |
trinity.route_reason | 选路策略,如 balanced(均衡成本与性能) |
Python 示例
python
import openai
client = openai.OpenAI(
api_key="xh-你的密钥",
base_url="https://api.trinitydesk.ai/v1"
)
response = client.chat.completions.create(
model="auto",
messages=[{"role": "user", "content": "总结今天的新闻"}]
)
# 获取实际使用的模型
actual = response.model # "auto"
# 从原始响应中提取 trinity 扩展字段
raw = response.model_dump()
actual_model = raw.get("trinity", {}).get("actual_model", "unknown")
print(f"实际模型: {actual_model}")
print(response.choices[0].message.content)处理结果波动
Auto 模式下,相同请求可能路由到不同模型,导致输出风格和长度有差异。生产建议:
- 记录实际模型:每次请求保存
trinity.actual_model,便于回溯 - 设置合理的
max_tokens:避免不同模型输出长度差异过大 - 对输出做后处理:如果下游依赖固定格式,在 Auto 输出后做格式校验
- 监控成本:不同模型价格不同,定期查看用量页确认 Auto 的实际花费
与固定模型对比
| 维度 | model=auto | model=gpt-4o |
|---|---|---|
| 模型选择 | 网关自动决定 | 固定使用指定模型 |
| 成本 | 可能更低(选性价比高的) | 固定 |
| 结果一致性 | 可能波动 | 一致 |
| 容错 | 上游不可用可自动切换 | 上游不可用则失败 |
| 适用场景 | 通用助手、成本优化 | 确定性要求高的场景 |