Lumoswitch
API 参考

API 参考

Lumoswitch Gateway 当前公开 OpenAI-compatible HTTP API。以下示例中的 Base URL 已包含 /v1

鉴权与通用请求头

Authorization: Bearer YOUR_LUMOSWITCH_ACCESS_KEY
Content-Type: application/json

完整 Access Key 只在创建时显示一次。不要在浏览器前端、公开日志或代码仓库中使用它。

端点

方法路径Streaming用途
GET/v1/models获取当前 Key 可见的对外模型
POST/v1/chat/completionsChat Completions-compatible 请求
POST/v1/responsesResponses-compatible 请求
POST/v1/embeddings向量嵌入请求

获取模型

curl "$LUMOSWITCH_BASE_URL/models" \
  -H "Authorization: Bearer $LUMOSWITCH_API_KEY"

返回的 id 是配置 API 暴露且当前 Key 允许使用的对外模型名称,不一定等于上游真实模型 ID。

Chat Completions

最小请求:

curl "$LUMOSWITCH_BASE_URL/chat/completions" \
  -H "Authorization: Bearer $LUMOSWITCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "your-public-model-name",
    "messages": [
      {"role": "system", "content": "You are concise."},
      {"role": "user", "content": "Say hello."}
    ],
    "stream": false
  }'

常用字段包括 modelmessagesstreamtemperaturemax_tokenstools。厂商专有字段可能被拒绝、忽略或无法透传,接入前应单独验证。

Streaming

stream 设为 true 后,响应使用 Server-Sent Events。客户端应:

  1. 持续读取 data: 事件。
  2. 允许一个 Unicode 字符跨多个网络分块。
  3. 处理空增量和工具调用增量。
  4. 读取到结束事件后关闭流。

反向代理缓冲会让流式响应看起来一次性返回,应在客户端链路中关闭 SSE 缓冲。

Tool Call

Tool Call 是否可用取决于候选模型和上游。请求中的工具定义应保持 OpenAI-compatible 结构;收到工具调用后,将工具结果作为后续消息发送。故障转移候选应支持兼容的工具格式,否则回退后可能失败。

Responses

curl "$LUMOSWITCH_BASE_URL/responses" \
  -H "Authorization: Bearer $LUMOSWITCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "your-public-model-name",
    "input": "Summarize this in one sentence."
  }'

当 Responses 请求进入仅支持 Chat Completions 的上游时,Lumoswitch 可以执行兼容转换。previous_response_id、Reasoning 和工具续接属于高级兼容行为,应在目标上游和客户端组合上验证,不要假定与 OpenAI 原生状态完全一致。

Embeddings

curl "$LUMOSWITCH_BASE_URL/embeddings" \
  -H "Authorization: Bearer $LUMOSWITCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "your-embedding-model",
    "input": ["first text", "second text"]
  }'

配置中的候选资源必须实际支持 Embeddings。不要将仅支持聊天的模型用于此端点。

错误响应

错误尽量保持 OpenAI-compatible 结构:

{
  "error": {
    "message": "A readable error message",
    "type": "invalid_request_error",
    "code": "invalid_request"
  }
}
HTTP 状态常见含义
400请求结构、协议或参数无效
401Access Key 缺失、错误或已停用
403模型范围或上游权限不足
404对外模型名称或路径错误
429Key RPM 或上游限流
5xx上游失败、无可用候选或 Gateway 异常

常见错误码包括 invalid_requestrate_limit_exceededupstream_timeout。上游错误可能在安全处理后保留对应 HTTP 状态和摘要。

兼容性原则

先验证最小非流式文本请求,再逐步加入 Streaming、Tools、Vision、Reasoning 和厂商专有参数。详见 协议与兼容性