Skip to content

OpenAI SDK 兼容 ​

LAYSO AI 提供 OpenAI 兼容接口。已有 OpenAI SDK 项目通常只需替换客户端的 Base URL 和 API Key,再使用 LAYSO AI 模型价格页展示的完整模型 ID。

一个 Key,访问全平台模型

一个 LAYSO AI API Key 可以访问平台全部可用模型。系统按所选模型的当前价格计费;每个成功请求都有独立扣费明细,失败任务不会产生扣费。

开始之前 ​

  1. 在 API Key 页面 创建并复制密钥。
  2. 在 模型与价格页面 选择模型,并复制页面显示的完整模型 ID。
  3. 确认服务端可以访问 https://api.layso.ai。
配置项LAYSO AI 值
Base URLhttps://api.layso.ai/v1
API Key 环境变量LAYSO_API_KEY
模型<MODEL_ID>,以模型与价格页面为准

不要把密钥写进前端代码

OpenAI SDK 应在服务器、命令行脚本或其他可信环境中运行。不要把完整 API Key 提交到 Git 仓库、日志、截图或浏览器端代码。

安装 SDK ​

Python ​

bash
python -m pip install --upgrade openai

TypeScript / JavaScript ​

bash
npm install openai

从 OpenAI 直连迁移 ​

Python ​

Python SDK 使用蛇形命名的 base_url:

python
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["LAYSO_API_KEY"],
    base_url="https://api.layso.ai/v1",
)

TypeScript / JavaScript ​

TypeScript / JavaScript SDK 使用驼峰命名的 baseURL:

ts
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.LAYSO_API_KEY,
  baseURL: "https://api.layso.ai/v1",
});

两种 SDK 的参数拼写不同

Python 是 base_url,TypeScript / JavaScript 是 baseURL。Base URL 已包含 /v1,不要再次追加。

设置 API Key ​

macOS / Linux / WSL ​

bash
export LAYSO_API_KEY="<YOUR_LAYSO_API_KEY>"

Windows PowerShell ​

powershell
$env:LAYSO_API_KEY = "<YOUR_LAYSO_API_KEY>"

Windows CMD ​

bat
set LAYSO_API_KEY=<YOUR_LAYSO_API_KEY>

以上命令只对当前终端会话生效。生产环境请使用部署平台的 Secret 管理功能。

使用 Responses API ​

Responses API 适合新项目。所选模型必须支持该端点;请以 LAYSO AI API 参考和模型能力说明为准。

Python ​

python
response = client.responses.create(
    model="<MODEL_ID>",
    input="用一句话介绍 LAYSO AI。",
)

print(response.output_text)

TypeScript / JavaScript ​

ts
const response = await client.responses.create({
  model: "<MODEL_ID>",
  input: "用一句话介绍 LAYSO AI。",
});

console.log(response.output_text);

使用 Chat Completions ​

已有项目可以继续使用 Chat Completions。消息结构与 OpenAI SDK 保持一致。

Python ​

python
completion = client.chat.completions.create(
    model="<MODEL_ID>",
    messages=[
        {"role": "user", "content": "用一句话介绍 LAYSO AI。"}
    ],
)

print(completion.choices[0].message.content)

TypeScript / JavaScript ​

ts
const completion = await client.chat.completions.create({
  model: "<MODEL_ID>",
  messages: [
    { role: "user", content: "用一句话介绍 LAYSO AI。" },
  ],
});

console.log(completion.choices[0].message.content);

流式输出 ​

Python ​

python
stream = client.chat.completions.create(
    model="<MODEL_ID>",
    messages=[{"role": "user", "content": "写一段简短的欢迎语。"}],
    stream=True,
)

for chunk in stream:
    text = chunk.choices[0].delta.content or ""
    print(text, end="", flush=True)

TypeScript / JavaScript ​

ts
const stream = await client.chat.completions.create({
  model: "<MODEL_ID>",
  messages: [{ role: "user", content: "写一段简短的欢迎语。" }],
  stream: true,
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}

验证迁移结果 ​

完成一次最小请求后,检查以下内容:

  1. 响应中的模型与 模型与价格页面 选择的一致。
  2. 请求成功后可以在 LAYSO AI 任务或账单明细中看到逐笔扣费记录。
  3. 失败请求没有产生扣费。
  4. 代码中不再残留 OpenAI 直连地址或旧密钥。

兼容范围 ​

LAYSO AI 的 OpenAI 兼容层覆盖常用调用方式,但具体能力取决于端点、模型和供应商。不要把某个 OpenAI 专属参数默认应用到所有模型。

能力使用建议
Responses新项目优先;先确认模型支持该端点
Chat Completions适合已有对话项目迁移
Streaming两种接口均可使用,按对应 API 参考实现
Function calling / JSON / Vision先检查所选模型的能力说明
Embeddings / Images使用对应端点与支持该能力的模型
Models可通过 /v1/models 查询

框架与工具 ​

任何允许自定义 OpenAI Base URL 和 API Key 的服务端框架,都可以按相同原则接入。项目已经提供独立教程:

修改第三方框架时,请使用该框架当前版本的参数名;不要默认它与 OpenAI SDK 的 base_url / baseURL 完全相同。

常见问题 ​

401 或 403 ​

确认密钥来自 LAYSO AI API Key 页面,环境变量没有空格或换行,并且程序已经重新加载环境变量。

404 ​

确认客户端 Base URL 是 https://api.layso.ai/v1。不要写成 https://api.layso.ai,也不要重复追加 /v1/v1。

找不到模型 ​

不要猜测模型别名。回到 模型与价格页面,复制完整模型 ID 后重新请求。

某个参数无效 ​

不同供应商和模型的能力不完全相同。删除非必要参数,并对照 LAYSO AI API 参考 检查当前端点支持的字段。

浏览器提示跨域或暴露密钥 ​

不要从浏览器前端直接调用。把 OpenAI SDK 放在服务端,通过你自己的后端接口向前端提供受控能力。

延伸阅读 ​

LAYSO AI API 文档