统一模型调用
统一大模型调用网关,对接多家模型提供商(OpenAI、Anthropic、Google、DeepSeek 等),提供 OpenAI 兼容的聊天接口,按 token 计费。
POST
/v1/chat/completions对话补全
POST
/v1/chat/completions兼容 OpenAI 的对话补全接口。通过统一 API 访问 OpenAI、Anthropic、Google、DeepSeek、MiniMax 等多家模型提供商。按 token 用量计费。
模型列表
GET
/v1/models返回所有当前可用的模型及定价信息(每百万 token 的输入/输出价格)和最大上下文长度。使用响应中的模型 id 作为对话补全的 model 参数。
流式传输(SSE)
设置 "stream": true 以接收 Server-Sent Events。每个事件包含一个 chat.completion.chunk 对象,带有增量的 delta.content。流以 data: [DONE] 消息结束。
流事件格式
data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","choices":[{"delta":{"content":"Hello"},"index":0}]}
data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","choices":[{"delta":{"content":" world"},"index":0}]}
data: [DONE]参数
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
model | string | 必填 | 模型名称,如 'gpt-4o'、'claude-sonnet-4'、'deepseek-chat'。使用 GET /v1/models 查看可用模型列表。 |
messages | array | 必填 | 消息对象数组,包含 'role'(system/user/assistant)和 'content' 字段。 |
temperature | float | 可选 (默认: 0.7) | 采样温度(0-2)。值越高随机性越强。 |
max_tokens | integer | 可选 (默认: 1024) | 响应的最大 token 数。 |
stream | boolean | 可选 (默认: false) | 启用 SSE 流式传输以实时输出 token。 |
top_p | float | 可选 | 核采样(0-1)。 |
stop | string | string[] | 可选 | 停止序列。 |
tools | array | 可选 | 用于函数调用的工具/函数定义。 |
响应
Response
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1710000000,
"model": "gpt-4o",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello! How can I help you today?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 12,
"completion_tokens": 8,
"total_tokens": 20
}
}示例
import requests
API_KEY = "your_api_key_here"
BASE_URL = "https://api.qinyanai.com"
# --- Chat completion ---
response = requests.post(
f"{BASE_URL}/v1/chat/completions",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"model": "gpt-4o",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is attention mechanism?"}
],
"temperature": 0.7,
"max_tokens": 1024
}
)
result = response.json()
print(result["choices"][0]["message"]["content"])
# --- Streaming ---
response = requests.post(
f"{BASE_URL}/v1/chat/completions",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"model": "gpt-4o",
"messages": [{"role": "user", "content": "Hello!"}],
"stream": True
},
stream=True
)
for line in response.iter_lines():
if line:
print(line.decode())
# --- List available models ---
response = requests.get(
f"{BASE_URL}/v1/models",
headers={"Authorization": f"Bearer {API_KEY}"}
)
for model in response.json()["data"]:
print(f"{model['id']} (by {model['owned_by']})")