LOLAI 开发者平台

Chat Completions

OpenAI 兼容的对话接口。一个 endpoint 路由所有模型 —— LOLAI 按 model 名把请求分发到对应上游,并把厂家差异(messages 结构、采样边界、SSE 协议)对齐成统一形态。

生产环境POSThttps://api.lolai.lol/v1/chat/completions

请求参数

Header 参数
Authorizationstring必填
API Key,格式 Bearer <key>
示例:Bearer sk-lolai-xxx
Content-Typestring必填
示例:application/json
Body 参数application/json
modelstring必填
目标模型,见下方可用模型。换模型只改这一个字段。
示例:claude-sonnet-4-6
messagesarray必填
对话历史,元素为 { role, content },rolesystem / user / assistant / toolcontent 可为字符串或 content parts 数组(多模态)。
示例:[{"role":"user","content":"hi"}]
streamboolean可选
true = SSE 流式;false = 一次性返回(默认)。
示例:false
temperaturenumber 0–2可选
采样温度,默认 1.0。越高越发散。
示例:1.0
top_pnumber 0–1可选
核采样,默认 1.0。与 temperature 二选一调。
示例:1.0
max_tokensinteger可选
输出 token 上限,留空按模型默认。
示例:1024
stopstring | string[]可选
停止序列,命中即截断输出。
tools / tool_choicearray / string|object可选
函数调用,见下方「函数调用」。全部上游通用
response_formatobject可选
JSON 模式 / 结构化输出(OpenAI 协议上游原生生效)。
reasoning_effortstring可选
low / medium / high,思考型模型的推理强度。
示例:medium
userstring可选
透传业务标识,便于审计。
示例
{
  "model": "claude-sonnet-4-6",
  "messages": [
    {
      "role": "user",
      "content": "你好,介绍一下你自己"
    }
  ],
  "stream": false,
  "temperature": 1,
  "max_tokens": 1024
}
路由到 OpenAI 协议上游时请求体原样透传,n / seed / logprobs / stream_options 等原生字段全部生效;跨协议(Claude / Gemini)上游按能力翻译。

函数调用(Function Calling)

按 OpenAI 格式传 tools + tool_choice 即可,不挑上游 —— Claude / Gemini 我们自动翻译成各厂商原生格式,响应再翻回 OpenAI 的 tool_calls。流式 / 非流式 / 多轮工具结果都支持。

请求 · tools
{
  "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_reasontool_calls,message.tool_calls 给出调用:

响应 · 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 能力标记。

流式响应(SSE)

stream: true 时返回 text/event-stream,每个 chunk 一行 data: {...},以 data: [DONE] 结束:

event-stream
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 — 所有上游失败(罕见)

返回响应

200 OKapplication/json
idstring必填
本次补全请求 id。
objectstring必填
对象类型。
示例:chat.completion
createdinteger必填
Unix 秒级时间戳。
modelstring必填
实际使用的模型 id。
choicesarray必填
候选回复列表。常用字段包括 messagefinish_reasonindex
usageobject可选
token 用量统计,包含 prompt_tokenscompletion_tokenstotal_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": "你好,介绍一下你自己"}
    ]
  }'
响应 · 200
{
  "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
  }
}