Amux

Evaluate Questions

最近更新:2026年10月7日

TypeSafeAI System One 协议的决策端点,兼容官方 SDK,用于 Jev 这类决策模型。

这个端点兼容 TypeSafeAI 的 System One 接口,可直接配合官方 SDK(typesafe-sdk、@typesafe-ai/sdk)使用,只需把 base URL 指过来。

鉴权用 Bearer:Authorization: Bearer <你的 Amux 密钥>。

这一页讲协议:所有决策模型共用的请求与响应形状。某个模型的别名、上下文、已知短板见它自己的页面, 例如 Jev。

POSThttps://gateway.amux.ai/v1/systemone

鉴权

header
Authorizationstring必填

Bearer <你的 Amux 密钥> 控制台创建的 Amux 密钥。忘了可以回控制台的密钥页再看一次。

Content-Typestring必填默认 "application/json"

固定为 application/json。

请求

application/json
modelstring必填

站内 ID,或 jev-latest 这类别名(官方 SDK 不传 model 时默认发它)。别名会随新版本发布移动;响应里的 model 给出实际作答的带版本号 ID。

statestring | object | array必填

要评估的内容:字符串,或 JSON 对象/数组(聊天记录、业务记录、应用状态)。建议用带描述性字段名的对象,并在问题里用反引号引用这些字段,例如 ` message `。只收文本,不收图像、音频、视频。

questionsmap<string, Question>必填

问题表,键是你自定的 id,答案按同样的 id 返回。id 不会发给模型,不影响推理。所有问题针对同一个 state 并行评估,多加几个问题几乎不增加延迟。

›questionsmap<string, Question>
‹question id›Question

一个带类型的问题。type 决定它是下面三种形状中的哪一种;三种共有 type 与 instructions,各自多一个 criteria。

›‹question id›Question
noulobject

是/否问题。答案是这个陈述成立的概率(0–1)。

›noulobject
type"noul"必填

固定为 noul。

instructionsstring | object | array必填

要判断的是/否陈述。可以是字符串,也可以是对象/数组:把问题放在一个字段里、把它要引用的数据放在其它字段里,再用反引号按名字引用。

criteriaobject

可选。说明「是」(接近 1)和「否」(接近 0)各指什么。边界情况写在这里。

›criteriaobject
truestring | object | array

「是」的含义。

falsestring | object | array

「否」的含义。

choiceobject

从你定义的选项里恰好选一个。答案带最可能的选项、每个选项的概率,以及 confidence。

›choiceobject
type"choice"必填

固定为 choice。

instructionsstring | object | array必填

要模型做的决定。字符串、对象或数组,同 noul。

criteriaobject必填

选项名 → 判定说明。某个选项不需要说明时写 null。最多 255 个选项。选项名会原样作为 probabilities 的键返回。

scoreobject

在有序的档位上给 state 打分。答案是按概率加权的值,可以落在两档之间。

›scoreobject
type"score"必填

固定为 score。

instructionsstring | object | array必填

要模型打分的维度。字符串、对象或数组,同 noul。

criteriaarray<string>必填

各档位的描述,从低到高:下标 0 是最低档。至少 2 档,最多 10 档。

响应

200response

每个问题一个答案,键与请求一致。

400response

请求体格式不对;某个问题没通过上游校验(错误信息会点名字段);或明显超出上下文上限。

402response

余额不足。

它不是对话模型

决策模型不生成文本。你给它一段 state 和若干带类型的问题,它对每个问题回一个结构化答案:

  • noul:一个是/否判断成立的概率(0–1);
  • choice:从你给的选项里挑一个,附每个选项的概率与 confidence;
  • score:在你给的有序档位上打分,可以落在两档之间。

所以它不能从 /v1/chat/completions、/v1/messages 这些对话端点调用,也不在操练场里。

错误

错误用 OpenAI 的错误形状返回。问题内部由上游校验,不合法时返回 400 并点名字段; type 取值与重试语义见错误与重试。

cURL
curl https://gateway.amux.ai/v1/systemone \
  -H "Authorization: Bearer $AMUX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "typesafe/jev",
    "state": {
      "message": "Hi, my Stripe integration has been failing for 3 days. Please help ASAP."
    },
    "questions": {
      "department": {
        "type": "choice",
        "instructions": "Which team should handle `message`?",
        "criteria": {
          "billing": "Payment or subscription issues",
          "technical": "Bugs or integration problems",
          "sales": null
        }
      },
      "frustration": {
        "type": "score",
        "instructions": "How frustrated does the customer appear?",
        "criteria": [
          "Calm",
          "Frustrated but civil",
          "Very angry"
        ]
      },
      "is_urgent": {
        "type": "noul",
        "instructions": "`message` conveys urgency or time-sensitivity"
      }
    }
  }'
{
  "model": "jev-1.13.0",
  "answers": {
    "department": {
      "type": "choice",
      "choice": "technical",
      "confidence": 0.95,
      "probabilities": {
        "billing": 0.03,
        "sales": 0,
        "technical": 0.97
      }
    },
    "frustration": {
      "type": "score",
      "score": 1,
      "confidence": 1,
      "legend": {
        "0": "Calm",
        "1": "Frustrated but civil",
        "2": "Very angry"
      },
      "probabilities": {
        "0": 0,
        "1": 1,
        "2": 0
      }
    },
    "is_urgent": {
      "type": "noul",
      "noul": 1
    }
  },
  "usage": {
    "input_tokens": 407,
    "output_tokens": 73
  }
}