选择路由
| 需求 | 路由 | 使用此形状 |
|---|---|---|
| 可移植的 JSON 对象响应 | /v1/chat/completions | response_format: {"type": "json_object"} |
| OpenAI 兼容的函数调用 | /v1/chat/completions | tools: [{ "type": "function", "function": ... }] |
| OpenAI 响应工具 | /v1/responses | 响应 tools、tool_choice 和 text 字段 |
| Claude 原生工具使用或思考 | /v1/messages | Anthropic 消息工具架构 |
| Gemini 函数声明或内置工具 | /v1beta/models/:model:generateContent | Gemini 原生 tools 和内容部分 |
JSON 模式
对于可移植的结构化响应,从聊天完成 JSON 模式开始:text 和 json_object。某些上游路由或转换路径可能存在 json_schema、strict 和供应商特定的架构强制,但它们并不是每个 TokenLab 路由和模型的普遍承诺。在依赖它们之前,请根据所选模型验证它们。
始终在您的服务器上解析和验证返回的 JSON。JSON 模式改善了形状,但并不替代应用级架构验证。
工具调用循环
TokenLab 不执行您的函数。您的应用程序拥有循环:- 发送消息和工具定义。
- 读取模型响应中的
tool_calls、function_call、Anthropictool_use或 Gemini 函数调用部分。 - 在您自己的后端执行工具。
- 以相同路由所需的格式附加工具结果。
- 继续对话,直到模型返回最终答案。
聊天完成示例
架构设计
- 保持架构小而明确。大型嵌套架构会增加令牌并降低可靠性。
- 优先使用必需字段,以便您的产品无法继续的值。
- 对于您的 UI 或后端依赖的封闭集合,使用枚举。
- 当模型在形状上遇到困难时,在提示中包含示例。
- 将不支持字段错误视为契约反馈。删除该字段或使用记录它的原生路由。
生产检查清单
- 在日志中记录路由、模型、工具名称和清理后的架构形状。
- 在执行任何副作用之前验证工具参数。
- 在工具执行之前应用您自己的权限检查。
- 当客户端重试可以重复相同的工具调用时,使工具执行具有幂等性。
- 不要将工具返回的秘密记录到模型可见的消息中。
API 参考
| 主题 | 参考 |
|---|---|
| 多格式 API | 多格式 API |
| 创建聊天完成 | 创建聊天完成 |
| 创建响应 | 创建响应 |
| 创建消息 | 创建消息 |
| 生成 Gemini 内容 | 生成 Gemini 内容 |