[AIask]新增支持 Jev 模型,另有赛博鸡蛋自动发放。

tianmenshan 2026-09-20 09:48 1

[AIask]新增支持 Jev 模型,另有赛博鸡蛋自动发放。


请先注册: https://aiask.me/


使用方法:AIask.me 网站后台 -> API 密钥 -> 创建密钥 -> 名称自定义,类型选:OpenAi ,分组选:JEV 模型


费用(目前):$0.063 / 1M 输入 token ,输出免费


一、curl 示例


curl https://aiask.me/v1/systemone \
-H "Authorization: Bearer sk-你的 key" \
-H "Content-Type: application/json" \
-d '{
"state": {"message": "导出按钮在 Safari 上会让设置页崩溃,Chrome 正常。", "source": "support_ticket"},
"model": "jev-latest",
"questions": {
"is_bug": {
"type": "noul",
"instructions": "这是不是一个软件缺陷报告?"
},
"team": {
"type": "choice",
"instructions": "该分给哪个团队?",
"criteria": {"frontend": "UI 、浏览器兼容性", "backend": "API 、数据库", "infra": "部署、可用性"}
},
"severity": {
"type": "score",
"instructions": "严重程度?",
"criteria": ["仅外观问题", "功能受损但有变通办法", "阻塞且无变通办法"]
}
}
}'

二、JEV 是什么


TypeSafe System One 不是聊天模型,是结构化判断模型。你给它一段素材( state )和若干道题( questions ),它一次性返回每道题的概率化答案,没有自由文本、没有流式输出、没有 tool call 。


典型用途:工单分类、内容审核、RAG 段落筛选、LLM 输出兜底校验、意图路由、置信度分流。


与 OpenAI 协议的区别一览:




































OpenAI Chat/Responses TypeSafe System One
端点 /v1/chat/completions/v1/responses /v1/systemone
输入 messages state + questions
输出 文本 / tool call 每题一个概率化答案
流式 支持 不支持
计费 输入 + 输出 只算输入 token ,输出免费

三、端点与鉴权


POST https://aiask.me/v1/systemone
Authorization: Bearer sk-你的-aiask-key
Content-Type: application/json

四、请求结构


{
"state": "客户说运动鞋尺码发错了,想换成 10 码。",
"model": "jev-latest",
"questions": {
"自定义题目 key": { "type": "noul|choice|score", "instructions": "...", "criteria": ... }
}
}

三个字段都必填。questions 的 key 由你自己定义,响应会用同样的 key 返回答案 —— 这就是"结构化"的来源,不需要解析自由文本。


state 接受三种形态 **[官方文档]**:


"state": "我的卡被扣了两次款。"                                    // 字符串:单段文本
"state": {"message": "我的卡被扣了两次款。", "order_id": "A-104"} // 对象:带字段名的记录(推荐)
"state": ["你好", "我的客户号是 TS1337 。", "卡被扣了两次款。"] // 数组:消息序列

只接受文本,不支持图片 / 音频 / 视频。英文准确率最高,中文等其它语言支持但准确率会下降 [官方文档] —— 中文业务场景建议先小批量实测再上量。


原则:state 放事实和素材,questions 放要做的判断。两者不要混着写。


五、三种题型


1. noul —— 是非题,返回"是"的概率


{
"type": "noul",
"instructions": "客户是不是在要求转人工?",
"criteria": {
"true": "提到了之前的工单、尝试过联系、或说'我问过了'",
"false": "没有任何过往联系的迹象"
}
}

criteria 可选,只有 true / false 两个描述字段。返回:


{ "type": "noul", "noul": 0.93 }

noul 是 0~1 的概率值,表示"是"的可能性。注意 0.5 表示两种可能性各半,不是"中等程度"。noul 答案不带 confidence 字段


2. choice —— 单选题,返回选项 + 完整概率分布


{
"type": "choice",
"instructions": "这条工单应该归哪个部门?",
"criteria": {
"returns": "换货、退款、错发或破损",
"shipping": "物流状态、延迟、丢件",
"billing": "扣费、发票、支付问题"
}
}

criteria对象/映射(不是数组):key 是选项名,value 是选项描述。描述可以写 null(选项名本身够清楚时)。最多 255 个选项 **[官方文档]**。返回:


{
"type": "choice",
"choice": "returns",
"confidence": 0.88,
"probabilities": { "returns": 0.88, "shipping": 0.09, "billing": 0.03 }
}

choice 是概率最高的那个,probabilities 全部选项加起来等于 1.0 。


3. score —— 打分题,返回有序量表上的位置


{
"type": "score",
"instructions": "这个 bug 有多严重?",
"criteria": [
"仅影响外观,功能正常",
"功能受损或降级,但有变通办法",
"阻塞性问题,无变通办法"
]
}

criteria数组(注意和 choice 不同),2~10 个等级,从低到高排列 **[官方文档]**。返回:


{
"type": "score",
"score": 1.3,
"confidence": 0.54,
"legend": { "0": "仅影响外观,功能正常", "1": "功能受损或降级,但有变通办法", "2": "阻塞性问题,无变通办法" },
"probabilities": { "0": 0.0, "1": 0.7, "2": 0.3 }
}

score 不是整数,是各等级编号的概率加权平均(上例 1×0.7 + 2×0.3 = 1.3 )。legend 是等级编号到描述的映射。


写 criteria 的要点 **[官方文档]**:等级描述要写得可对照素材("功能受损但有变通办法"),不要写抽象词("中等严重")。一道题只评一个维度,多维度拆成多道题然后在自己代码里加权。


选型速查


























答案形态 用哪个 关键返回字段
是 / 否 noul noul( 0~1 概率)
一组固定选项里挑一个(无序) choice choice + probabilities + confidence
有序量表上的位置(严重度、满意度、成熟度) score score + legend + probabilities + confidence

六、完整响应


{
"model": "jev-1.13.0",
"answers": {
"题目 key1": { ... },
"题目 key2": { ... }
},
"usage": { "input_tokens": 360, "output_tokens": 39 }
}

一次请求可以问多道题,共用同一份 state 。这是省钱的关键:state 只计费一次,加题几乎不增加输入 token 。能合并就别拆成多次请求。


七、confidence 怎么用


confidence( 0~1 )由 probabilities 的集中程度算出来,只有 choice 和 score 有 **[官方文档]**。分布越集中越高,1.0 表示概率全压在一个结果上。


官方建议的三档分流 **[官方文档]**:






















区间 处理方式
直接自动执行
谨慎处理 —— 让用户确认、标记待审、或补充数据再判
不要执行 —— 转人工、要求澄清、或走其它系统

具体阈值要按业务定:官方示例用 0.5 作为兜底底线(低于此一律转人工),**破坏性操作要求 0.9+**,只读操作可以放宽。阈值要拿自己的数据实测后再调,别直接抄。


八、官方 SDK 接入


官方 SDK 可以直接用,只需把 base URL 指到 aiask.me 、key 换成本站 key,其余代码不用动。


Python


from typesafe_sdk import TypeSafeClient, Noul, Choice, Score

client = TypeSafeClient(
api_key="sk-你的 aiask-key",
base_url="https://aiask.me", # 默认是 https://api.typesafe.ai
model="jev-latest",
)

with client:
resp = client.system_one(
state="导出按钮在 Safari 上会让设置页崩溃。",
questions={
"team": Choice(
instructions="该分给哪个团队?",
criteria={"frontend": "UI 、浏览器兼容性", "backend": "API 、数据库"},
),
"severity": Score(
instructions="严重程度?",
criteria=["仅外观问题", "功能受损但有变通办法", "阻塞且无变通办法"],
),
},
)
print(resp.answers["team"].choice, resp.answers["team"].confidence)


  • 环境变量走 TYPESAFE_API_KEYTYPESAFE_BASE_URL(把后者设成 https://aiask.me 即可,代码零改动)

  • 异步用 AsyncTypeSafeClient + async withawait client.system_one(...)

  • 重试超时:RetryPolicy(max_retries=3, backoff_max=0.2, timeout=1.0),可挂在 client 上也可以单次调用传

  • 不想用 Noul() / Choice() 这些辅助类,也可以直接传原始字典:{"billing": {"type": "noul", "instructions": "关于账单吗?"}}


JavaScript / TypeScript


npm install @typesafe-ai/sdk    # 需要 Node.js 20+

import { TypeSafeClient, choice } from "@typesafe-ai/sdk";

const client = new TypeSafeClient({
apiKey: "sk-你的 aiask-key",
baseURL: "https://aiask.me", // 默认 https://api.typesafe.ai
defaultModel: "jev-latest",
timeout: 10000, // 单次尝试超时,毫秒
});

const resp = await client.systemOne({
state: { document: "我被重复扣款了,请尽快处理。" },
questions: {
category: choice("这条工单是关于什么的?", { billing: null, technical: null, other: null }),
},
});

console.log(resp.answers.category.choice);

TypeSafeClientConfig 全部可选项 [官方文档]apiKeybaseURLdefaultModel(默认 jev-latest)、timeout(默认 10000ms )、retrydefaultHeadersfetchloggerlogLevel(默认 warn)、dangerouslyAllowBrowser(默认 false ,别开,会把 key 暴露给页面用户)。



注意:base_url / baseURL 填站点根地址 https://aiask.me 就行,SDK 自己会拼 /v1/systemone。别填成 https://aiask.me/v1/systemone



九、限制














































项目 限制 来源
单请求总上下文 64k token ( state + 所有题目合计) [官方文档]
state + 最长的那道题 32k token [官方文档]
choice 选项数 最多 255 [官方文档]
score 等级数 2 ~ 10 [官方文档]
上游吞吐 250,000 token/秒; 1,200 请求/分钟 [官方文档]
流式 不支持 [已实测]
输入模态 纯文本 [官方文档]

官方说明速率限制会因需求波动动态调整,可能不另行通知。本站还叠加自己的分组并发、RPM 、配额限制。


十、错误码与排错









































状态码 含义 怎么办
401 key 无效 / 缺失 [已实测] 检查 Authorization: Bearer sk-...
403 权限不足 key 状态、IP 白名单
404 key 的分组不是 OpenAI 平台 [已实测] 后台把 key 换到 OpenAI 平台分组
422 请求校验失败 [已实测] 见下方三种常见情况
429 限流 指数退避重试 [官方文档]
5xx / 529 上游过载 [官方文档] 指数退避重试;本站会先尝试切换账号

422 的三种常见原因 **[已实测]**:



  1. body 不是合法 JSON ,或为空

  2. model 不是 jev-*(比如误传 gpt-5.4)—— 报 model must be a jev model (e.g. jev-latest)

  3. questions,或 questions 不是对象 —— 报 questions is required


排错顺序建议



  1. GET /v1/models 确认 key 能看到 jev 模型 —— 看不到说明分组白名单或平台不对

  2. 后台 → 账号管理 → 对应账号点"测试连接",模型选 jev-latest,会直接打上游 /v1/systemone 并回显 model / noul / usage [已实测]

  3. 后台 → 使用记录,确认 inbound_endpointupstream_endpoint 都是 /v1/systemone

最新回复 (1)
  • poyanhu 09-20 09:55
    1
    正找着,就来了。网络拉直了。酷酷开测先。
* 帖子来源V2EX
返回