API 概述
Base URL
平台提供两套 API 入口:代理接口(AI 模型调用)和管理接口(后台操作)。
代理接口
代理接口兼容 OpenAI 和 Anthropic 两种协议格式,使用统一的 base URL:
http://ok-link.com:10320/v1/| 协议 | 端点 | 说明 |
|---|---|---|
| OpenAI | /v1/chat/completions | 对话补全,请求体使用 OpenAI 格式 |
| OpenAI | /v1/embeddings | 向量嵌入 |
| OpenAI | /v1/models | 模型列表 |
| Anthropic | /v1/messages | 对话补全,请求体使用 Anthropic 原生格式 |
管理接口
后台管理操作(登录、用户、模型、Key 管理等):
http://ok-link.com:10320/admin-api/认证方式
代理接口认证
使用 API Key(sk- 开头),在 HTTP 头中传递:
Authorization: Bearer sk-xxxxxxxxxxxxAPI Key 在管理后台「API Key」页面创建,适用于两个协议。
管理接口认证
使用 JWT Token,通过登录接口获取后携带在请求头中:
Authorization: Bearer eyJhbGciOi...OpenAI 协议调用
使用 OpenAI 兼容格式,适用于 openai、deepseek 等模型:
bash
curl http://ok-link.com:10320/v1/chat/completions \
-H "Authorization: Bearer sk-xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-chat",
"messages": [{"role": "user", "content": "Hello!"}]
}'Anthropic 协议调用
平台完全兼容 Anthropic Messages API 格式,可以直接使用 Anthropic 官方 SDK 接入,适用于 Claude 系模型:
bash
curl http://ok-link.com:10320/v1/messages \
-H "Authorization: Bearer sk-xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Hello!"}]
}'协议翻译
当上游供应商使用 OpenAI 协议时,平台会自动进行 Anthropic ↔ OpenAI 协议双向翻译,对用户透明:
| 方向 | 说明 |
|---|---|
| Anthropic 请求 → OpenAI 上游 | 翻译请求体 + 回译响应体,包括 system prompt、messages、tools、streaming |
| Anthropic 请求 → Anthropic 上游 | 请求/响应直接透传,不做翻译 |
这意味着你可以统一使用 Anthropic SDK 接入,无论后端实际对接的是哪个供应商。
Anthropic SDK 接入
Python:
python
import anthropic
client = anthropic.Anthropic(
base_url="http://ok-link.com:10320",
api_key="sk-xxxxxxxxxxxx"
)
message = client.messages.create(
model="claude-sonnet",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello!"}]
)
print(message.content[0].text)Node.js:
javascript
import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic({
baseURL: 'http://ok-link.com:10320',
apiKey: 'sk-xxxxxxxxxxxx',
});
async function main() {
const message = await client.messages.create({
model: 'claude-sonnet',
max_tokens: 1024,
messages: [{ role: 'user', content: 'Hello!' }],
});
console.log(message.content[0].text);
}
main();注意:Anthropic SDK 的
base_url末尾不加v1,平台会自动拼接。
通用错误码
| 状态码 | 错误说明 |
|---|---|
| 400 | 请求参数错误 |
| 401 | 认证失败 / API Key 无效或禁用 |
| 402 | Token 余额不足 |
| 403 | 模型未订阅 / 无权限 |
| 404 | 模型不存在 |
| 429 | 速率限制 |
| 500 | 服务器内部错误 |
| 502 | 上游代理节点不可达 |
| 503 | 模型不可用 / 无可用上游 |
内容类型
- 非流式请求和响应:
Content-Type: application/json - 流式响应(两种协议均使用):
text/event-stream(SSE 格式)
