Laya API:托管接口、价格与调用指南
Laya API 调用指南:与 Jev 兼容的请求和返回格式,curl、Python、TypeScript 示例,限制与错误码,以及托管 Laya API、自己部署和 Jev 的价格对比。
托管版 Laya API · 不想自己部署?托管 Laya API,兼容 Jev 接口,每百万 input token $0.05,注册送 20 次调用。
Laya API 是调用 Laya 的 HTTP 接口。Laya 是 Convai Innovations 开源的决策模型:你发一段文本(state)和几个类型化问题,Laya API 在一次调用里返回答案和每个选项的概率。它和 TypeSafe 的 Jev 用同一个 POST /v1/systemone 格式,为 Jev 写的代码改一下接口地址就能调用 Laya API。
Convai Innovations 只发布开源权重,没有官方托管的 Laya API。想用 Laya API,有三条路:
- 用托管的 Laya API。 laya-ai.com 即将开放,计划价格见下文。
- 自己部署 Laya API,用官方
laya包自带的laya-serve服务。 - 不走 HTTP,在 Python 里直接调用
laya库。
Laya API 一览
| 接口 | POST /v1/systemone(单条),POST /v1/systemone/batch(最多 64 条,laya 0.3.22 起) |
| 鉴权 | Authorization: Bearer <key> |
| 问题类型 | choice(多选一)、score(按等级打分)、noul(是/否的概率) |
| 返回内容 | 答案、每个选项的概率、置信度和 token 用量;不生成文字 |
| 模型 | english(4.21 亿参数)、multilingual(3.22 亿,100 多种语言)、typed-decisions(4.21 亿,微调版) |
| 兼容的客户端 | TypeSafe SDK、任何 Jev 客户端、普通 HTTP 请求 |
| 计费单位 | input token;输出不收费 |
laya-ai.com 托管 Laya API
我们正在开放托管的 Laya API:不用自己的服务器,也不用 GPU,就能调用 Laya。接口就是上面这套标准 Laya API,底层是开源的 Laya checkpoint,按 input token 计费。
| 计划价格 | |
|---|---|
| 单价 | 每百万 input token $0.05,输出免费 |
| 免费试用 | 注册送 20 次调用 |
| 充值 | 支持银行卡、支付宝、微信支付 |
| 开通 | 注册后立即拿到 API Key,无需排队审核 |
一次决策(一条简短工单加三个问题)大约 200 到 400 个 input token,$1 够调用 5 万到 10 万次。以上为计划价格,上线前会再确认。在页面下方留下邮箱,托管 Laya API 开放时我们会发一封邮件通知你。
Laya API 请求格式
curl https://YOUR_LAYA_API/v1/systemone \
-H "Authorization: Bearer $LAYA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"state": "这个月被扣了两次钱,我要退款",
"questions": {
"queue": {"type": "choice", "instructions": "应该由哪个团队处理?",
"criteria": {"billing": "账单和退款",
"tech": "登录和应用问题",
"other": "其他"}},
"urgency": {"type": "score", "instructions": "有多紧急?",
"criteria": ["平静", "坚决", "生气", "非常愤怒"]},
"refund": {"type": "noul", "instructions": "用户是否要求退款?"}
}
}'
| 字段 | 必填 | 作用 |
|---|---|---|
state | 是 | 要判断的文本、邮件、工单或 JSON |
questions | 是 | 以问题 id 为键的对象;每个问题有 type、instructions,choice 和 score 还需要 criteria |
model | 否 | 指定 checkpoint:english、multilingual 或 typed-decisions;填其他值(比如 Jev 的模型名)则由路由自动选择 |
lang | 否 | 语言代码(如 zh、pt-BR),填了就跳过语言检测 |
min_confidence | 否 | 0 到 1 的阈值,低于它的答案会标记为 low_confidence |
max_len、head_max_len | 否 | 长文本或选项很多时调整 token 窗口 |
task | 否 | 按任务名强制使用某个 checkpoint |
同一段文本的问题放在一次请求里:它们共用同一次对文本的读取,三个问题放一起比分三次调用省得多。
中文等非英文文本会被自动路由到 multilingual checkpoint。
Laya API 返回格式
{
"model": "laya-rl-agent",
"answers": {
"queue": {"type": "choice", "choice": "billing",
"probabilities": {"billing": 0.9281, "tech": 0.0412, "other": 0.0307},
"confidence": 0.4534, "answer_confidence": 0.9281},
"urgency": {"type": "score", "score": 2.6389,
"legend": {"0": "平静", "1": "坚决", "2": "生气", "3": "非常愤怒"},
"probabilities": {"0": 0.0099, "1": 0.0713, "2": 0.536, "3": 0.3828}},
"refund": {"type": "noul", "noul": 0.97}
},
"usage": {"input_tokens": 74, "output_tokens": 0},
"routing": {"model": "multilingual", "reason": "non-English text"}
}
| 答案类型 | 读哪个字段 |
|---|---|
choice | choice 是概率最高的选项;probabilities 给出每个选项的概率 |
score | score 是期望的等级序号,允许落在两个等级之间;legend 是序号对应的文字 |
noul | noul 是"是"的概率 |
| 所有类型 | answer_confidence(所给答案的概率)和 confidence |
自动执行的判断请看 answer_confidence,不要看 confidence,两者算法不同。从 Jev 迁移过来要重新定阈值,因为 Jev 对置信度的定义不一样。routing 说明由哪个 checkpoint 作答以及原因;usage.input_tokens 就是托管 Laya API 的计费依据。
用 Python 和 TypeScript 调用 Laya API
Python(requests):
import os, requests
resp = requests.post(
"https://YOUR_LAYA_API/v1/systemone",
headers={"Authorization": f"Bearer {os.environ['LAYA_API_KEY']}"},
json={
"state": "快递到了但是箱子压坏了,请重新发一个",
"questions": {
"queue": {"type": "choice", "instructions": "应该由哪个团队处理?",
"criteria": {"shipping": "物流和破损",
"billing": "付款和退款"}},
},
},
timeout=10,
)
resp.raise_for_status()
answer = resp.json()["answers"]["queue"]
print(answer["choice"], answer["answer_confidence"])
TypeScript(fetch):
const res = await fetch("https://YOUR_LAYA_API/v1/systemone", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.LAYA_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
state: "订单 1182 的收货地址还能改吗?",
questions: {
intent: { type: "choice", instructions: "用户想做什么?",
criteria: { change_order: "修改订单", track: "查询物流",
other: "其他" } },
},
}),
});
const { answers } = await res.json();
console.log(answers.intent.choice, answers.intent.probabilities);
已经在用 TypeSafe SDK 调 Jev?代码不用改,把 base URL 换成 Laya API 的地址即可。问题怎么写、阈值怎么定,见如何使用 Laya。
批量请求
laya 0.3.22 起,POST /v1/systemone/batch 接收一组 states 和一份共用的 questions,每条 state 返回一个结果,另附 total_usage 合计。每次最多 64 条,超过返回 413。批量接口适合回填历史数据和处理队列;线上实时请求还是一条一次,延迟更低。
Laya API 限制和错误码
| 限制 | 数值 |
|---|---|
| 请求体 | 2 MiB |
state | 50,000 个字符 |
| 每次请求的问题数 | 64 |
每个 choice 问题的选项数 | 100 |
每个 score 问题的等级数 | 32 |
| 所有问题的选项总数 | 512 |
| 状态码 | 含义 |
|---|---|
400 | 请求体不是合法 JSON,或缺少 state、questions |
401 | API Key 缺失或错误 |
413 | 超过上面某项限制,返回信息会写明是哪一项 |
422 | 问题对 Laya 无效,比如选项文字太长,超出模型的选项窗口 |
503 | 服务繁忙,按 Retry-After 的时间重试 |
Laya 默认用 192 个 token 的窗口读选项文字。一个 choice 问题如果有几十个长选项,会返回 422 或准确率下降:把选项写短,或拆成两个问题。
托管 Laya API、自己部署还是 Jev?
| 托管 Laya API(laya-ai.com,即将开放) | 自己部署 laya-serve | TypeSafe Jev | |
|---|---|---|---|
| 模型 | 开源 Laya checkpoint | 开源 Laya checkpoint | 闭源 Jev 模型 |
| 价格 | 每百万 input token $0.05 | 只有硬件成本(Apache 2.0) | 每百万 input token $0.042 |
| 怎么开始 | 注册后立即拿到 API Key,送 20 次调用 | 安装包、下载权重、自己跑服务 | 注册 TypeSafe 账号 |
| 要不要管服务器 | 不用 | 要 | 不用 |
| 请求在哪里处理 | 我们的托管服务器 | 你自己的服务器 | TypeSafe 云端 |
| 微调 | 不提供 | 可以,用你自己的标注数据 | 不能 |
| 开箱准确率 | Laya 水平 | Laya 水平 | 更高,选项多或非英文时差距更明显 |
/v1/systemone 格式 | 是 | 是 | 是 |
想要 Laya 的价格和开源模型、又不想运维任何东西,还希望用银行卡、支付宝或微信支付,选托管 Laya API。数据必须留在自己服务器上,或者打算微调,选自己部署。需要开箱就最高的准确率、不在乎权重是否开源,选 Jev。三者格式相同,改一下接口地址就能互相切换。
自己部署 Laya API
官方包自带 Laya API 服务:
pip install "laya[serve]"
LAYA_API_KEY=change-me laya-serve # http://0.0.0.0:8000/v1/systemone
CPU 就能跑:上游在 4 核服务器上实测,laya-multilingual 每个问题 193 毫秒(见 Laya CPU 性能)。Docker、NixOS、容量规划和安全设置,见自托管 Laya。ollaya 和 Unsloth 也能在本地应用里提供同一套 API。
数据必须留在自己服务器上,或者每天要处理几百万次决策时,自己部署更划算。不想管服务器、不想下载模型、希望按用量付费时,托管 Laya API 更省事。
Laya API 和 Jev API 的区别
请求和返回格式一样,切换只需要改接口地址。但背后的模型不一样:
- 准确率: Jev 开箱准确率更高,选项越多、越是非英文,差距越大。在我们的 System One 基准测试里,Banking77 的 77 个意图上,Laya 基础版 0.363,Jev 0.813。
- 速度: Laya 部署在应用旁边时几十毫秒出结果;托管调用还要加上网络时间。
- 可控性: Laya 权重开源,可以用自己的数据微调;Jev 不能微调。
切换线上流量前,先用自己的一批数据把两者都测一下。详见 Laya vs Jev。
Laya Python API
如果你的程序是 Python,并且和模型跑在一起,完全可以不走 HTTP:
import laya
agent = laya.load("convaiinnovations/laya")
result = agent.predict(state, questions)
Python API 返回的 answers 和 Laya API 完全一样。见用 Python 调用 Laya和安装 Laya。
常见问题
Laya 有官方 API 吗?
没有。Convai Innovations 只发布开源权重和 Python 包,不运营托管 API。所有托管的 Laya API,包括我们的,都是第三方基于开源 checkpoint 提供的。
Laya API 免费吗?
自己部署免费:Laya 是 Apache 2.0 许可,只需要付硬件费用。托管的 Laya API 按 input token 或按决策次数收费;我们的计划价格是每百万 input token $0.05,注册送 20 次调用。
Laya API 能用 TypeSafe SDK 和 Jev 的代码调用吗?
能。Laya API 的请求和返回格式与 POST /v1/systemone 一致,Jev 客户端改一下接口地址就能用。切换后请用自己的数据重新检查准确率和阈值。
Laya API 支持中文吗?
支持。multilingual checkpoint 覆盖 100 多种语言,路由会把中文自动交给它。非英文的准确率低于英文,正式使用前请先用自己的中文数据测一下。
调用 API 之前能先试试 Laya 吗?
能。Laya Playground 用真实的 Laya checkpoint 跑现成的示例,不用注册。
最后核对:laya 0.3.22 及各服务商公开页面,2026 年 9 月 30 日。