Appearance
Jev / System One API
Jev 是 TypeSafe 决策模型,使用专用的 System One 协议。它不是聊天模型,不能通过 /v1/chat/completions 的 messages 格式调用。
IMPORTANT
Jev 请求必须发送到 POST /v1/systemone。如果把 Jev 模型发送到 /v1/chat/completions,会返回 TypeSafe channels support only /v1/systemone。
API Path
http
POST https://ai.furry.vg/v1/systemone请求仍然使用普通 S3AI API Key:
http
Authorization: Bearer sk-your-s3ai-key
Content-Type: application/json可用模型
当前 TypeSafe 渠道使用的模型包括:
jev-1.13jev-1.13-free
模型权限和公开名称可能随账户配置变化,请先调用 GET /v1/models,并将返回的模型 ID 原样填入 model。oc-proxy_jev 是后台渠道名称,不应作为模型 ID,除非它确实出现在当前 Key 的模型列表中。
完整调用示例
下面的请求让 Jev 根据一段状态,同时完成分类、评分和二元判断:
bash
curl -sS https://ai.furry.vg/v1/systemone \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "jev-1.13-free",
"state": {
"message": "客户反馈信用卡被重复扣款,并要求尽快处理。"
},
"questions": {
"route": {
"type": "choice",
"instructions": "选择负责处理该问题的团队。",
"criteria": {
"billing": "支付、账单、退款或重复扣款问题",
"support": "产品使用或技术故障问题"
}
},
"urgency": {
"type": "score",
"instructions": "评估该问题的处理紧急程度。",
"criteria": [
"低:可以排队处理",
"中:应当尽快处理",
"高:需要立即处理"
]
},
"needs_human": {
"type": "noul",
"instructions": "是否需要人工客服立即介入?"
}
}
}'请求体参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 从 GET /v1/models 返回结果中选择 Jev 模型 ID。 |
state | string、object 或 array | 是 | 需要模型分析的当前状态;不能是 null。 |
questions | object | 是 | 非空问题对象;每个键是调用方自定义的问题 ID。 |
questions.<id>.type | string | 是 | 支持 noul、choice 或 score。 |
questions.<id>.instructions | 任意非空 JSON 值 | 是 | 告诉模型需要判断什么,通常使用字符串。 |
questions.<id>.criteria | object 或 array | 视类型而定 | choice 和 score 必填,noul 可省略。 |
问题类型
type | 用途 | criteria 格式 |
|---|---|---|
noul | 二元判断 | 可省略。 |
choice | 从多个命名选项中选择 | 非空对象,键为选项 ID、值为选项说明;最多 255 个选项。 |
score | 按有序等级评分 | 包含 2 至 10 个等级说明的数组,顺序从低到高。 |
同一请求可以在 questions 中放入多个不同类型的问题。问题 ID(例如 route)由调用方定义,建议使用稳定且便于程序读取的英文标识。
JavaScript 调用
js
const response = await fetch('https://ai.furry.vg/v1/systemone', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.OPENAI_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
model: 'jev-1.13-free',
state: { message: '客户反馈信用卡被重复扣款。' },
questions: {
route: {
type: 'choice',
instructions: '选择负责处理该问题的团队。',
criteria: {
billing: '支付、账单和退款问题',
support: '技术故障和产品使用问题',
},
},
},
}),
})
if (!response.ok) {
throw new Error(`${response.status}: ${await response.text()}`)
}
const result = await response.json()
console.log(result)读取响应
System One 的响应由 TypeSafe 上游以 JSON 返回,并由网关原样转发。它不是 OpenAI Chat Completions 响应,因此不要读取 choices[0].message.content。
调用方应按照请求中的问题 ID,从响应的对应问题结果中读取判断值;响应还可能包含 usage.input_tokens 和 usage.output_tokens。实际字段以当前接口响应为准,接入时建议先输出一次完整 JSON 再完成字段映射。
常见错误
TypeSafe channels support only /v1/systemone
请求被发送到了 /v1/chat/completions 等其他路径。把地址改为:
text
https://ai.furry.vg/v1/systemone并将 OpenAI messages 请求体改成本文的 state + questions 格式。
/v1/systemone requires a TypeSafe channel
当前 model 没有路由到 TypeSafe 渠道。重新查询 GET /v1/models,确认使用的是已授权的 Jev 模型 ID;如果模型存在但仍报错,请联系管理员检查模型映射和渠道状态。
不能直接使用 OpenAI SDK 的聊天方法
chat.completions.create() 固定调用 /v1/chat/completions,不适用于 Jev。请使用 fetch、curl 或其他能够向 /v1/systemone 发送自定义 JSON 的 HTTP 客户端。
