如果想在 V2EX 获得更好的推广效果,欢迎了解 PRO 会员机制:
https://www.v2ex.com/pro/about

如果你经常使用铜币置顶主题,持有 V2EX Solana Token 会在每日签到时获得额外铜币:
https://www.v2ex.com/solana
tianmenshan
V2EX  ›  推广

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

  •  
  •   tianmenshan · 5 days ago · 470 views

    [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_KEY 和 TYPESAFE_BASE_URL(把后者设成 https://aiask.me 即可,代码零改动)
    • 异步用 AsyncTypeSafeClient + async with,await 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 全部可选项 [官方文档]:apiKey、baseURL、defaultModel(默认 jev-latest)、timeout(默认 10000ms )、retry、defaultHeaders、fetch、logger、logLevel(默认 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_endpoint 和 upstream_endpoint 都是 /v1/systemone
    poyanhu
        1
    poyanhu  
       5 days ago
    正找着,就来了。网络拉直了。酷酷开测先。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1127 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 17:41 · PVG 01:41 · LAX 10:41 · JFK 13:41
    ♥ Do have faith in what you're doing.