Jev 案例:商品问答答案打分(完整代码)

更新于 适用版本 Jev 1.13 示例数据(example fixture)

TL;DR: 本案例给电商平台的商品问答加了一道质量门禁:商家写的每个答案,发布前都由 Jev 1.13 的一道打分题按 1-10 打分。7 分及以上自动上线,其余退回商家后台。完整代码见下文。

场景

我们的平台允许商家在自己的商品页下回答买家提问。理论上这是很好的商品文档;实际上答案的水平从”真正有用”到”去看宝贝描述”再到”把问题里的关键词复制进营销文案”不等。全放行,问答区就废了;全人工审,每周几百条根本审不过来。

我们最终落地的门禁是对每个答案发一次打分题

给这个回答解决买家疑问的程度打分,1 到 10 分。

这里用的是 Jev 三种题型中的打分题(判断题、选择题、打分题——见三种题型指南)。Jev 是 TypeSafe AI 发布的 System One 判断模型,2026 年 9 月上线;调用走 OpenRouter 的 OpenAI 兼容端点。打分输出是类型化 JSON,所以发布门禁就是一次数值比较加一个阈值,主链路里没有任何文本解析。

请求

{
  "model": "typesafe/jev-1.13",
  "messages": [
    {
      "role": "system",
      "content": "Scoring question. Score how well the answer addresses the buyer's question, on a scale of 1 to 10. Reply with JSON only: {\"answer\": <1-10>, \"scale\": [1, 10], \"confidence\": <0-1>, \"rationale\": <one sentence>}"
    },
    {
      "role": "user",
      "content": "Question: Is this desk made of solid wood or veneer? What is the load limit of the drawers?\n\nAnswer: Premium quality desk! Great value and fast shipping. Check our storefront for more deals."
    }
  ]
}

响应

示例数据(example fixture)——用于说明格式,不是线上实测抓包:

{
  "answer": 2,
  "scale": [1, 10],
  "confidence": 0.86,
  "rationale": "The answer does not address either the material or the drawer load limit and reads as promotional copy rather than a product answer."
}

这里刻意展示低分例子:门禁的价值体现在拦下坏答案,而不是夸好答案。通过的答案结构完全相同,只是 answer 高、rationale 说清了回答覆盖了问题的哪部分。

复现脚本

设置环境变量 OPENROUTER_API_KEY 后运行:

curl https://openrouter.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "typesafe/jev-1.13",
    "messages": [
      {
        "role": "system",
        "content": "Scoring question. Score how well the answer addresses the buyer'"'"'s question, on a scale of 1 to 10. Reply with JSON only: {\"answer\": <1-10>, \"scale\": [1, 10], \"confidence\": <0-1>, \"rationale\": <one sentence>}"
      },
      {
        "role": "user",
        "content": "Question: Is this desk made of solid wood or veneer? What is the load limit of the drawers?\n\nAnswer: Premium quality desk! Great value and fast shipping. Check our storefront for more deals."
      }
    ]
  }'

把 OpenAI 兼容响应里的 message content 按 JSON 解析,即可得到上面的字段。

关键参数

字段取值说明
modeltypesafe/jev-1.13固定版本,发布阈值才能长期有效。准确 slug 请以 OpenRouter 模型页为准。
messages[0](system)打分题 + 量程 + JSON 结构“是否解决了买家疑问”就是评分细则——每次调用都一字不差地写上。
messages[1](user)问题和答案,各自带标签两个带标签的文本块;多部分问题没问题,细则本来就会奖励覆盖全部部分。
answer(响应)2发布门禁:>= 7 发布,否则退回商家。
scale(响应)[1, 10]回显量程,每次调用顺手做个哨兵检查。
confidence(响应)0.86(示例数据)低置信度无论分数多少都转人工。
rationale(响应)一句话直接退给商家当可执行的修改意见,而不是一句冷冰冰的拒绝。
价格$0.0462 / 1M input tokens每个答案一次调用;预算前请在 OpenRouter 核对当前价格。

注意事项

继续阅读