开始使用
接口约定
Base URL、路径与协议差异。
按客户端的兼容协议选择 Base URL,直接使用 curl 时写完整路径。
地址与请求头
| 协议 | SDK Base URL | 完整请求地址 | 认证头 |
|---|---|---|---|
| OpenAI 兼容 | https://xtemapi.com/v1 | https://xtemapi.com/v1/chat/completions | Authorization: Bearer $API_KEY |
| Anthropic 兼容 | https://xtemapi.com | https://xtemapi.com/v1/messages | x-api-key: $API_KEY |
JSON 请求使用 Content-Type: application/json。Anthropic 请求还需 anthropic-version 请求头,下面使用 Anthropic 协议版本值。SDK 会拼接路径,不要将完整端点地址当作 Base URL。
Anthropic 请求示例
在 Bash 中复制整段,输入令牌与模型名。模型必须支持 Anthropic 协议,名称从 模型广场 复制。
Bash
export ANTHROPIC_BASE_URL='https://xtemapi.com'
read -r -s -p 'API Key: ' API_KEY; printf '\n'
read -r -p 'Model: ' MODEL
export API_KEY MODEL
curl "$ANTHROPIC_BASE_URL/v1/messages" \
-H "x-api-key: $API_KEY" \
-H 'anthropic-version: 2023-06-01' \
-H 'Content-Type: application/json' \
--data "$(python3 -c 'import json,os; print(json.dumps({"model":os.environ["MODEL"],"max_tokens":1024,"messages":[{"role":"user","content":"Hello"}]}))')"max_tokens 是示例的输出上限,不表示模型限制;按所选模型的要求调整。此示例需要 Bash、curl 和 Python 3。
响应与请求标识
非流式请求返回所选协议的 JSON:OpenAI 文本位于 choices[0].message.content,Anthropic 文本位于 content 数组的文本块。不要假定两种协议使用统一响应信封。
排查时用 curl 的 -D response-headers.txt 保存响应头。如果响应带有请求标识,反馈时原样附上;目前文档未确认统一的请求 ID 头名称,也不承诺所有响应都有该标识。不要把响应体的 id 直接当成网关请求 ID。