结构化判断
默认用 OpenRouter 上的 typesafe/jev-1.13,走中转的海外机。它不是对话模型:交给它一段材料(state)和几道带类型的题(questions),它返回是非题的概率、单选题选了哪项、分档题落在第几档,不生成文字。适合代码里要分类、路由、打标签的地方,比如判断工单归哪个组、有多急。照 OpenRouter 模型页1的示例调,只改两处:
- base URL:
https://openrouter.ai换成https://openrouter.reverse-pro.xyz - API key:用
.env里的MY_API_KEY,写成Authorization: Bearer $MY_API_KEY,别打印出来
curl -sS https://openrouter.reverse-pro.xyz/api/alpha/decisions \
-H "Authorization: Bearer $MY_API_KEY" -H "Content-Type: application/json" \
-d '{"model": "typesafe/jev-1.13",
"state": {"ticket": "我点了支付之后结账页面一片空白,换了两个浏览器都一样。周五发工资前必须修好。"},
"questions": {
"is_bug": {"type": "noul", "instructions": "`ticket` 里的客户是在报告软件缺陷吗?"},
"team": {"type": "choice", "instructions": "`ticket` 该交给哪个团队?",
"criteria": {"payments": "结账、账单、支付", "frontend": "渲染、布局、浏览器兼容", "account": "登录、权限、资料"}},
"urgency": {"type": "score", "instructions": "`ticket` 有多急?",
"criteria": ["不急,下个版本再说", "这周内要修", "现在就挡着收钱"]}}}'
返回的 answers 按题目的键排好(摘录):
{"is_bug": {"type": "noul", "noul": 0.96},
"team": {"type": "choice", "choice": "payments", "probabilities": {"payments": 0.73, "frontend": 0.27, "account": 0}, "confidence": 0.6},
"urgency": {"type": "score", "score": 1.93, "probabilities": {"0": 0, "1": 0.07, "2": 0.93}, "confidence": 0.89, "legend": {"0": "不急,下个版本再说", "1": "这周内要修", "2": "现在就挡着收钱"}}}
- 端点:
/api/alpha/decisions,/api/v1/systemone也行,两个返回一样。调chat/completions会被拒,OpenAI SDK 用不了,直接发 HTTP - 三种题:
noul是非题:返回noul,是「是」的概率,不是布尔值。可以加criteria: {"true": "…", "false": "…"}说清楚什么算是、什么算否choice单选题:criteria写成「选项键: 说明」的对象,返回choice和每项的概率score分档题:criteria写成从低到高的数组,返回的score是按概率算的期望值,会带小数,比如 1.93
- state:可以是对象,也可以是一个字符串。
instructions里用反引号指字段,比如`ticket`。一次可以问好几道题,各题分开作答 - 阈值自己定:材料说得含糊,概率就落在中间。「订阅扣了我两次钱」问「是不是要退款」,中英文几种问法只给了 0.44 到 0.76;加上「请退给我」就是 0.98。要靠得住,就把 state 写清楚,再按业务定一个阈值
- 结果:经中转一秒多,中文能用。只收输入的钱,每百万 token 0.042 美元,三道题一次大约 0.00002 美元;上下文 64k
换模型
OpenRouter 上另外三家的决策模型,请求格式和 Jev 一样,只改 model。默认用 Jev,碰到下面几种情况再换:
| 情况 | model |
|---|---|
| 要看图片 | openai/gpt-6-luna-decisions |
| 材料超过 64k token | openai/gpt-6-luna-decisions,上下文 105 万 |
| 用户点名微软,或者要拿两家同题对比 | microsoft/microsoft-decision-1 |
| 用户要省钱、批量很大 | inception/mercury-decide |
-
带图片:
state写成数组,文字和图片混排。图片只收 base64 data URL,填 http 链接返回 400。请求体太大,命令行参数放不下,先写进文件再-d @body.json。看图一次几秒到半分钟,超时别设太短 -
图片别发给 Jev 和微软:Jev 返回 400;微软填图片链接不报错,把链接当文字读,照样给出概率,那是从链接字面猜出来的
- OpenAI 会拒答:材料里找不到答案,它不给中间的概率,直接返回 502
refused to answer question。当「判断不了」处理,别当网络故障重试
维护记录:接口从哪来、四家的实测和选型依据。正常使用不用看,出问题再看。
-
OpenRouter 模型页,2026-10-15 读。 ↩