简介
ModelServer API 提供统一的接口访问多种 AI 模型,完全兼容 OpenAI API 格式。您可以直接使用 OpenAI SDK 或任何兼容的客户端库。
Base URL
https://modelserver.dev/v1
主要特性
多模型支持
GPT、Claude、Gemini、DeepSeek 等
流式响应
支持 SSE 实时流式输出
工具调用
完整支持 Function Calling
图片输入
支持多模态 Vision 功能
快速开始
curl https://modelserver.dev/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"messages": [{"role": "user", "content": "Hello!"}]
}'
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://modelserver.dev/v1"
)
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'YOUR_API_KEY',
baseURL: 'https://modelserver.dev/v1'
});
const response = await client.chat.completions.create({
model: 'gpt-4o',
messages: [{ role: 'user', content: 'Hello!' }]
});
console.log(response.choices[0].message.content);
认证
所有 API 请求都需要在 HTTP 头中包含 API Key:
Authorization: Bearer YOUR_API_KEY
安全提示
请勿在客户端代码中暴露您的 API Key。建议通过后端服务器转发请求。
模型列表
GET
/v1/models
OpenAI 模型
GPT-5.2
最新旗舰模型
NEW
GPT-4o
多模态模型
GPT-4o-mini
轻量快速
o1 / o3-mini
推理模型
Claude 模型
Claude Sonnet 4
最新 Claude 模型
NEW
Claude 3.5 Sonnet
高性价比
Claude 3 Opus
最强能力
其他模型
Gemini Pro
Google 模型
DeepSeek R1
推理模型
Llama 3.1
开源模型
聊天补全
POST
/v1/chat/completions
请求参数
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
model |
string | 是 | 模型名称,如 "gpt-4o" |
messages |
array | 是 | 消息数组 |
temperature |
number | 否 | 采样温度 (0-2),默认 0.7 |
max_tokens |
integer | 否 | 最大生成 token 数 |
stream |
boolean | 否 | 是否启用流式响应 |
top_p |
number | 否 | 核采样参数 |
tools |
array | 否 | 工具/函数定义 |
tool_choice |
string/object | 否 | 工具选择策略 |
响应格式
{
"id": "chatcmpl-xxx",
"object": "chat.completion",
"created": 1234567890,
"model": "gpt-4o",
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello! How can I help you?"
},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 10,
"completion_tokens": 8,
"total_tokens": 18
}
}
流式响应
设置 stream: true 启用 Server-Sent Events (SSE) 流式响应。
流式响应格式
// 第一个 chunk - 角色信息
data: {"id":"xxx","choices":[{"delta":{"role":"assistant"}}]}
// 内容 chunks
data: {"id":"xxx","choices":[{"delta":{"content":"Hello"}}]}
data: {"id":"xxx","choices":[{"delta":{"content":" World"}}]}
// 结束
data: {"id":"xxx","choices":[{"delta":{},"finish_reason":"stop"}]}
data: [DONE]
Python 流式处理
stream = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Hello!"}],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
工具调用
支持 OpenAI 风格的 Function Calling,让模型可以调用外部工具。
定义工具
{
"model": "gpt-4o",
"messages": [{"role": "user", "content": "北京天气怎么样?"}],
"tools": [{
"type": "function",
"function": {
"name": "get_weather",
"description": "获取城市天气信息",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "城市名"}
},
"required": ["city"]
}
}
}],
"tool_choice": "auto"
}
工具调用响应
{
"choices": [{
"message": {
"role": "assistant",
"content": null,
"tool_calls": [{
"id": "call_xxx",
"type": "function",
"function": {
"name": "get_weather",
"arguments": "{\"city\":\"北京\"}"
}
}]
},
"finish_reason": "tool_calls"
}]
}
图片输入 (Vision)
支持发送图片给模型进行分析,使用多模态消息格式。
{
"model": "gpt-4o",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "这张图片里有什么?"},
{
"type": "image_url",
"image_url": {
"url": "data:image/jpeg;base64,/9j/4AAQ..."
}
}
]
}]
}
提示
图片可以通过 Base64 编码或 URL 提供。支持 JPEG、PNG、WebP、GIF 格式。
错误处理
错误响应格式
{
"error": {
"message": "Invalid API key",
"type": "authentication_error",
"param": null,
"code": "authentication_error"
}
}
错误类型
| HTTP 状态码 | 错误类型 | 说明 |
|---|---|---|
| 400 | invalid_request_error | 请求参数无效 |
| 401 | authentication_error | API Key 无效或缺失 |
| 429 | rate_limit_error | 请求过于频繁 |
| 500 | server_error | 服务器内部错误 |
代码示例
完整对话示例
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://modelserver.dev/v1"
)
# 多轮对话
messages = [
{"role": "system", "content": "你是一个有帮助的助手。"},
{"role": "user", "content": "你好!"}
]
response = client.chat.completions.create(
model="gpt-4o",
messages=messages,
temperature=0.7,
max_tokens=1000
)
# 添加助手回复到对话历史
messages.append({
"role": "assistant",
"content": response.choices[0].message.content
})
# 继续对话
messages.append({"role": "user", "content": "请介绍一下你自己"})
response = client.chat.completions.create(
model="gpt-4o",
messages=messages
)
print(response.choices[0].message.content)