即将推出: OpenAI Decisions API

查看方案对比

DEVELOPER GUIDE

接入你的第一个决策

本站使用指南:运行、检查、接入、计量。

本站是独立的工作台与 API 服务,支持 TypeSafe AI 的 Jev、Upstage 的 Solar Decide、Jared Palmer 的 Kev 4B 和 Laya。答案范围受限不代表一定正确,请用自己的数据验证。

快速开始

注册后获赠 100 credits。加载示例,查看预算后运行;调整问题、保存配置,并打开代码标签。创建本站 API key,即可从服务端调用并使用同一积分余额。

export DECISIONS_API_KEY="YOUR_API_KEY"

curl --fail-with-body 'https://decisions-api.org/v1/systemone' \
  -H "Authorization: Bearer $DECISIONS_API_KEY" \
  -H "Content-Type: application/json" \
  --data-raw '{
  "model": "typesafe/jev-1.13",
  "state": "I was charged twice for order A-4471. Please refund the duplicate payment.",
  "questions": {
    "route": {
      "type": "choice",
      "instructions": "Which team should handle this ticket? Use other when no option fits.",
      "criteria": {
        "billing": "Payments, charges and refunds",
        "technical": "Bugs and product errors",
        "account": "Login and account access",
        "other": "None of these teams"
      }
    }
  }
}'

API key 应保存在服务端,不应嵌入浏览器代码或提交到代码仓库。

API 参考

POST https://decisions-api.org/v1/systemone

发送含 model、state、questions 的 JSON,使用本站密钥作为 Authorization: Bearer。成功响应 code 为 0,答案位于 data.result.answers。官方服务方 SDK 的响应格式不同。

字段类型与含义
modelPlayground 与 API 均支持 typesafe/jev-1.13(别名 jev-latest)、liquid/d1、upstage/solar-decide、jaredpalmer/kev-4b、laya-english、laya-multilingual 和 laya-auto。Liquid d1 通过 Vercel AI Gateway 调用;服务端会把 boolean 问题和 token 用量字段转换为 Jev 工作台格式。Solar Decide 与 Jev 使用相同的 System One 请求和响应 schema。laya-auto 自动选择英文或多语言模型;result.routing.model 标明实际选中的 Laya 模型。独立的 Span 工作台与此 API 还支持 respan/span-01、respan/span-01-lite,仅接受 Noul 问题。
state非空文本、JSON 对象或数组;所有问题共享此上下文。 Span 接受文本或 {input: 消息数组, output: 助手消息},每条消息仅含 role 与文本 content;不接受普通 JSON 对象或裸数组。
questions1–8 个具名问题。ID 以字母开头,后接字母、数字、_ 或 -,最多 64 字符。

choice

在 criteria 中定义 2–255 个具名选项。响应包含 choice、probabilities 和 confidence。为不符合任何类别的情况设置兜底选项。

score

在 criteria 中定义 2–10 个有序等级。score 的范围从 0 到最后一个下标,可包含小数;probabilities 描述各等级的概率。

noul

noul 返回 0 到 1 的 P(true)。可通过 criteria.true 和 criteria.false 描述什么算“是”和“否”。返回值不是布尔值,请按业务需要设置阈值。

概率是模型对候选答案的输出分布,confidence 是另一种信号,两者都不等于实测准确率。Noul 的阈值使用 max(P(yes), 1 − P(yes)),0.01 也可能代表明确的“否”。请在规则对比中使用带标签样例验证阈值。

响应示例,非实时测量

{
  "code": 0,
  "message": "ok",
  "data": {
    "requestId": "example-request-id",
    "creditsUsed": 1,
    "historySaved": true,
    "result": {
      "model": "typesafe/jev-1.13",
      "answers": {
        "route": {
          "type": "choice",
          "choice": "billing",
          "probabilities": {
            "billing": 0.94,
            "technical": 0.02,
            "account": 0.02,
            "other": 0.02
          },
          "confidence": 0.9
        }
      },
      "usage": {
        "input_tokens": 1000,
        "output_tokens": 0
      },
      "elapsedMs": 250
    }
  }
}

延迟记录本站服务端处理时间,包含请求上游服务的耗时,不含浏览器到本站的网络往返,不代表性能保证。

计费与限制

每次最多 8 个问题,完整请求不超过 32 KiB;网页两次尝试至少间隔 3 秒。网页、API 和评测执行相同规则:Jev、Kev 和 Laya 积分 = max(1, ceil(输入 tokens × 600 / 1,000,000));Solar Decide 系数为 720;Span-01 系数为 300;Span-01 Lite 每次 1 credit。调用前先预留页面显示的保守预算,成功后按实际输入 tokens 结算并退回差额,失败则释放预留积分。异常中断的预留额度在 10 分钟后,于下次查询余额或调用时释放。

400 参数无效 · 401 需要登录或密钥 · 402 积分不足 · 409 重复请求 · 413 请求过大 · 429 按 Retry-After 等待 · 502 模型服务失败 · 503 服务暂不可用。每个逻辑 API 请求可携带唯一 Idempotency-Key(8–64 位字母、数字、_ 或 -);重复使用会返回 409,不会再次调用模型。网络结果不确定时,先检查历史再重试。

所有实时调用均消耗积分,包含网页和评测。每次成功请求最低 1 credit,输出 tokens 不收费。Span-01 为 300 credits / 百万输入 tokens;Span-01 Lite 每次成功请求 1 credit;Jev、Kev 和 Laya 为 600 credits / 百万,Solar Decide 为 720 credits / 百万。$1 = 10,000 credits。失败请求退回积分,估算不含税费。

数据与历史

已存配置及网页请求正文与结果仅你的账户可见。API 历史只记录元数据、token 用量与积分,不存请求内容。浏览器草稿仅保存在本地。

场景配方

用同一批样例比较两版规则

先捕获工作台当前模型与规则为 A,切换模型或修改问题后再捕获 B。导入最多 25 条带标签样例,即可比较两版配置。每条样例的 state 会替换捕获时的 state。

{"id":"refund","state":"Please refund my duplicate payment.","expected":{"route":"billing"}}
{"id":"login","state":"My reset link has expired.","expected":{"route":"account"}}

1–25 条样例。JSONL 每行一个 {id, state, expected};CSV 列为 id,state,expected,expected 是以问题 ID 为键的 JSON 对象。 匹配率以成功请求的标注答案为分母,失败另计。Noul 标签为 true/false(P(是) ≥ 0.5);Score 使用运行前设定的误差容限。

模型参考资料