调用示例
codingas.com 同时兼容 OpenAI 与 Anthropic 两种 API 标准。OpenAI 端点 Base URL 为 https://{gateway-host}/v1,Anthropic 端点为 https://{gateway-host}/anthropic。调用方持有 sk- 开头的网关 API Key。下面示例假设已设置环境变量 GATEWAY_KEY。
OpenAI 兼容端点
Section titled “OpenAI 兼容端点”curl http://localhost:8080/v1/chat/completions \ -H "Authorization: Bearer $GATEWAY_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-4o", "messages": [ {"role": "system", "content": "你是一个简洁的助手"}, {"role": "user", "content": "什么是 API 网关?"} ], "temperature": 0.7 }'流式响应(SSE)
Section titled “流式响应(SSE)”加 "stream": true,响应以 data: 行增量返回:
curl http://localhost:8080/v1/chat/completions \ -H "Authorization: Bearer $GATEWAY_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-4o", "messages": [{"role": "user", "content": "讲个短笑话"}], "stream": true }'流式片段以 data: [DONE] 结束。
把历史消息按时间顺序传入 messages:
{ "model": "gpt-4o", "messages": [ {"role": "user", "content": "我叫张三"}, {"role": "assistant", "content": "你好,张三!"}, {"role": "user", "content": "我叫什么?"} ]}Anthropic 兼容端点
Section titled “Anthropic 兼容端点”Anthropic 端点路径为 /anthropic/v1/messages(带 /anthropic 前缀),使用 x-api-key 头,且必须带 anthropic-version。
curl http://localhost:8080/anthropic/v1/messages \ -H "x-api-key: $GATEWAY_KEY" \ -H "anthropic-version: 2023-06-01" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet-4-20250514", "max_tokens": 1024, "messages": [ {"role": "user", "content": "什么是 API 网关?"} ] }'
max_tokens为 Anthropic 端点必填字段。
Anthropic 流式同时使用 event: 与 data: 行,文本增量在 content_block_delta 事件的 delta.text 中,以 message_stop 结束:
curl http://localhost:8080/anthropic/v1/messages \ -H "x-api-key: $GATEWAY_KEY" \ -H "anthropic-version: 2023-06-01" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet-4-20250514", "max_tokens": 1024, "messages": [{"role": "user", "content": "讲个短笑话"}], "stream": true }'网关自动完成协议转换,客户端无需任何特殊参数:
- 用 OpenAI SDK 调用 Anthropic 模型(如
claude-sonnet-4-20250514)—网关将 OpenAI 请求转为 Anthropic 格式 - 用 Anthropic SDK 调用 OpenAI 模型(如
gpt-4o)—网关将 Anthropic 请求转为 OpenAI 格式
详见 协议转换。
使用原生 SDK
Section titled “使用原生 SDK”Python(OpenAI SDK)
Section titled “Python(OpenAI SDK)”from openai import OpenAI
client = OpenAI( api_key="sk-xxxxxxxx", base_url="http://localhost:8080/v1")
resp = client.chat.completions.create( model="gpt-4o", messages=[{"role": "user", "content": "你好"}])print(resp.choices[0].message.content)Node.js(OpenAI SDK)
Section titled “Node.js(OpenAI SDK)”import OpenAI from "openai";
const client = new OpenAI({ apiKey: "sk-xxxxxxxx", baseURL: "http://localhost:8080/v1",});
const resp = await client.chat.completions.create({ model: "gpt-4o", messages: [{ role: "user", content: "你好" }],});console.log(resp.choices[0].message.content);Python(Anthropic SDK)
Section titled “Python(Anthropic SDK)”from anthropic import Anthropic
client = Anthropic( api_key="sk-xxxxxxxx", base_url="http://localhost:8080/anthropic")
resp = client.messages.create( model="claude-sonnet-4-20250514", max_tokens=1024, messages=[{"role": "user", "content": "你好"}])print(resp.content[0].text)错误响应格式与状态码详见 错误码与重试。常见状态码速查:
| HTTP | 含义 |
|---|---|
| 400 | 请求错误(协议校验失败) |
| 401 | 认证失败 |
| 403 | 权限不足(应用未授权该渠道)或 IP 黑名单 |
| 404 | 路径 / 资源不存在 |
| 429 | 限流 |
| 500 | 服务器错误 |
| 502 | 上游 Provider 错误(含模型不存在 MODEL_NOT_FOUND) |
| 503 | 熔断开启 |
完整端点细节见 对话补全 API。