前提条件
- 在任意中转站注册账号并获取 API Key
- 安装 Python 3.8+ 或 Node.js 18+
- 记下中转站提供的 Base URL(如 https://api.example.com/v1)
💡 不知道选哪家中转站?访问 APIS 套餐中心 查看推荐。
Python 接入
第一步:安装 SDK
pip install openai第二步:基础对话
from openai import OpenAI
client = OpenAI(
api_key="your-api-key",
base_url="https://api.your-relay.com/v1" # 替换为中转站地址
)
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "你是一个有帮助的助手。"},
{"role": "user", "content": "用一句话解释什么是 API。"}
],
max_tokens=100
)
print(response.choices[0].message.content)第三步:流式输出(Streaming)
stream = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "写一首关于编程的短诗"}],
stream=True
)
for chunk in stream:
content = chunk.choices[0].delta.content
if content:
print(content, end="", flush=True)Node.js 接入
第一步:安装 SDK
npm install openai第二步:基础对话
import OpenAI from 'openai'
const client = new OpenAI({
apiKey: 'your-api-key',
baseURL: 'https://api.your-relay.com/v1'
})
async function chat() {
const response = await client.chat.completions.create({
model: 'gpt-4o',
messages: [
{ role: 'system', content: '你是一个有帮助的助手。' },
{ role: 'user', content: '用一句话解释什么是 API。' }
],
max_tokens: 100
})
console.log(response.choices[0].message.content)
}
chat()第三步:流式输出
async function streamChat() {
const stream = await client.chat.completions.create({
model: 'gpt-4o',
messages: [{ role: 'user', content: '写一首关于编程的短诗' }],
stream: true
})
for await (const chunk of stream) {
const content = chunk.choices[0]?.delta?.content
if (content) process.stdout.write(content)
}
}
streamChat()使用 cURL 快速测试
如果你只是想快速测试 API Key 是否可用:
curl https://api.your-relay.com/v1/chat/completions \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"messages": [{"role": "user", "content": "Hello!"}],
"max_tokens": 50
}'切换模型
中转站的最大优势之一是一个 Key 调用多个模型。只需修改 model 参数:
# 使用 Claude
response = client.chat.completions.create(
model="claude-sonnet-4-20250514",
messages=[{"role": "user", "content": "你好"}]
)
# 使用 Gemini
response = client.chat.completions.create(
model="gemini-2.5-pro",
messages=[{"role": "user", "content": "你好"}]
)
# 使用 DeepSeek
response = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": "你好"}]
)常见问题
Q:返回 401 错误?
检查 API Key 是否正确,以及是否在请求头中使用了 Bearer 前缀。
Q:返回 429 错误?
触发了速率限制(Rate Limit)。检查中转站的 RPM/TPM 限制,或稍后重试。
Q:模型返回乱码?
确认 model 参数名称与中转站支持的模型列表一致。不同中转站的模型名可能略有差异。
💡 对比各中转站的费率差异?试试 APIS 智能对比。