三步接入
聚流兼容 OpenAI 的接口格式,所以大多数情况下你只需要改两个地方,业务代码一行都不用动。
01
创建一把 API 密钥
在控制台的 API 密钥 页面创建。完整密钥只显示一次,当场复制到安全的地方。
02
把 base_url 指向聚流
填 https://api.lcypvt.online/v1,密钥放进 Authorization 请求头。别的参数不用改。
03
发出第一个请求
用下面的示例跑通一次,确认返回正常之后再接入你自己的业务。
接口地址与鉴权
所有请求都发往同一个地址,模型名放在请求体里——这一点和直连各家官方接口是一样的。
https://api.lcypvt.online/v1
- 必须带
/v1后缀,这是 OpenAI 兼容层的固定前缀。 - 只接受 HTTPS 请求。
- 密钥放在请求头,格式是
Authorization: Bearer sk-jl-…。 - 请求体用 JSON,记得带上
Content-Type: application/json。
密钥等同于密码。只放在服务端,不要写进前端页面、小程序包或 Git 仓库。
第一个请求
三种写法效果一样,挑你正在用的那一种。示例里假设密钥已经放进环境变量 JULIU_API_KEY。
curl https://api.lcypvt.online/v1/chat/completions \
-H "Authorization: Bearer $JULIU_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-mini",
"messages": [
{ "role": "user", "content": "用一句话解释什么是 API 聚合" }
]
}'
from openai import OpenAI
client = OpenAI(
base_url="https://api.lcypvt.online/v1",
api_key=os.environ["JULIU_API_KEY"],
)
resp = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.lcypvt.online/v1",
apiKey: process.env.JULIU_API_KEY,
});
const resp = await client.chat.completions.create({
model: "gpt-4o-mini",
messages: [{ role: "user", content: "你好" }],
});
console.log(resp.choices[0].message.content);
示例里的 model 请换成下面「可用模型」里列出的标识。顶层状态是接入中时调用会返回
404,说明网关还在接通上游。
流式输出
和 OpenAI 一样,请求体加 "stream": true 就会用 SSE 一段一段返回。客户端按行读取,每行以 data: 开头,最后一行是 data: [DONE]。
curl -N https://api.lcypvt.online/v1/chat/completions \
-H "Authorization: Bearer $JULIU_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-mini",
"stream": true,
"messages": [{ "role": "user", "content": "写一句 slogan" }]
}'
可用模型
下面这张表是实时从接口读出来的,不是硬编码的清单——接口开放后会自动出现。
暂时没有可列出的模型
网关接通上游之后,这里会自动填上模型标识与提供方。
错误码
接口返回的错误体和 OpenAI 一致,形如 {"error": {"message": "..."}}。按状态码排查最快:
状态码含义怎么处理
401
密钥缺失或无效
检查
Authorization 头有没有带 Bearer ,密钥是否已被撤销。
403
没有权限
密钥状态异常或账户被停用,去控制台确认密钥是不是「已撤销」。
404
路径或模型不存在
确认 base_url 以
/v1 结尾、模型标识拼写正确、网关已开放。
429
请求过于频繁
降低并发,或做指数退避重试(1s、2s、4s…)。
500 · 502
上游异常
通常是上游服务抖动,稍后重试;持续出现说明是平台侧问题。
密钥安全
密钥是明文密码级别的凭证,规则只有几条,但每一条都很硬:
- 只显示一次:创建那一刻完整展示,之后库里只有哈希,谁也看不到原文,包括管理员。
- 可以随时撤销:撤销即刻生效,正在用它的请求会立刻变成
401。 - 一把密钥一个用途:按项目或环境分开建,泄露时只废掉一把,不用全部重做。
- 不要提交进仓库:用环境变量或密钥管理服务注入;发现进了 Git 历史就立刻撤销重建。
- 怀疑泄露先撤销:撤销不会影响其他密钥,重建一把只要几秒。