跳转到内容

调用示例

codingas.com 同时兼容 OpenAI 与 Anthropic 两种 API 标准。OpenAI 端点 Base URL 为 https://{gateway-host}/v1,Anthropic 端点为 https://{gateway-host}/anthropic。调用方持有 sk- 开头的网关 API Key。下面示例假设已设置环境变量 GATEWAY_KEY

Terminal window
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
}'

"stream": true,响应以 data: 行增量返回:

Terminal window
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 端点路径为 /anthropic/v1/messages(带 /anthropic 前缀),使用 x-api-key 头,且必须带 anthropic-version

Terminal window
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 结束:

Terminal window
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 格式

详见 协议转换

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)
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);
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