OpenAI 兼容的对话接口。一个 endpoint 路由所有模型 —— LOLAI 按 model 名把请求分发到对应上游,并把厂家差异(messages 结构、采样边界、SSE 协议)对齐成统一形态。
https://api.lolai.lol/v1/chat/completionsAuthorizationstring必填Bearer <key>。Bearer sk-lolai-xxxContent-Typestring必填application/jsonmessagesarray必填{ role, content },role ∈ system / user / assistant / tool。content 可为字符串或 content parts 数组(多模态)。[{"role":"user","content":"hi"}]streamboolean可选true = SSE 流式;false = 一次性返回(默认)。falsetemperaturenumber 0–2可选1.0top_pnumber 0–1可选temperature 二选一调。1.0max_tokensinteger可选1024stopstring | string[]可选tools / tool_choicearray / string|object可选response_formatobject可选reasoning_effortstring可选low / medium / high,思考型模型的推理强度。mediumuserstring可选{
"model": "claude-sonnet-4-6",
"messages": [
{
"role": "user",
"content": "你好,介绍一下你自己"
}
],
"stream": false,
"temperature": 1,
"max_tokens": 1024
}n / seed / logprobs / stream_options 等原生字段全部生效;跨协议(Claude / Gemini)上游按能力翻译。按 OpenAI 格式传 tools + tool_choice 即可,不挑上游 —— Claude / Gemini 我们自动翻译成各厂商原生格式,响应再翻回 OpenAI 的 tool_calls。流式 / 非流式 / 多轮工具结果都支持。
{
"model": "claude-sonnet-4-6",
"messages": [{"role": "user", "content": "北京天气怎么样?"}],
"tools": [{
"type": "function",
"function": {
"name": "get_weather",
"description": "查询某城市的实时天气",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"]
}
}
}],
"tool_choice": "auto"
}模型决定调用工具时,finish_reason 为 tool_calls,message.tool_calls 给出调用:
"message": {
"role": "assistant",
"content": "",
"tool_calls": [{
"id": "call_abc",
"type": "function",
"function": {
"name": "get_weather",
"arguments": "{\"city\":\"北京\"}"
}
}]
}执行工具后,把结果作为 role:"tool" 消息(带 tool_call_id)连同上一条 assistant 的 tool_calls 一起回传,模型即可继续作答。
messages[].content 可为 content parts 数组,混排 {type:"text"} 与 {type:"image_url"}。图像支持 data: base64 或公网 URL,Claude / Gemini 协议自动转换。
{
"model": "gpt-4o",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "这张图里有什么?"},
{"type": "image_url",
"image_url": {"url": "data:image/png;base64,..."}}
]
}]
}模型是否支持视觉,看模型卡片的 vision 能力标记。
stream: true 时返回 text/event-stream,每个 chunk 一行 data: {...},以 data: [DONE] 结束:
data: {"id":"chatcmpl-...","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"role":"assistant","content":"你好"},"finish_reason":null}]}
data: {"id":"chatcmpl-...","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"!"},"finish_reason":null}]}
data: {"id":"chatcmpl-...","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
data: [DONE]对话类模型都可用此接口,换模型只改 model。完整列表(含定价)见模型广场,或程序拉 GET /v1/models。
详见 错误码 · 计费。最常见:
400 model_not_allowed — model 不存在或当前 plan 不允许402 insufficient_credits — 钱包余额不足429 rate_limited — RPM / TPM / 日额度超限503 upstream_unavailable — 所有上游失败(罕见)idstring必填objectstring必填chat.completioncreatedinteger必填modelstring必填choicesarray必填message、finish_reason、index。usageobject可选prompt_tokens、completion_tokens、total_tokens。{
"id": "chatcmpl-...",
"object": "chat.completion",
"created": 1715961234,
"model": "claude-sonnet-4-6",
"choices": [{
"index": 0,
"message": { "role": "assistant", "content": "你好!我是…" },
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 12,
"completion_tokens": 64,
"total_tokens": 76
}
}用下面的示例确认请求格式与返回结构。需要在线发起请求时,点击页面顶部「调试」拉起在线运行面板。
curl https://api.lolai.lol/v1/chat/completions \
-H "Authorization: Bearer sk-lolai-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"messages": [
{"role": "user", "content": "你好,介绍一下你自己"}
]
}'{
"id": "chatcmpl-...",
"object": "chat.completion",
"created": 1715961234,
"model": "claude-sonnet-4-6",
"choices": [{
"index": 0,
"message": { "role": "assistant", "content": "你好!我是…" },
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 12,
"completion_tokens": 64,
"total_tokens": 76
}
}