跳过主要内容

决策 API

提交背景和问题,获取结构化决策。

在账户设置创建 API Key 并购买积分。请求需携带 Authorization: Bearer YOUR_API_KEY 和唯一的 Idempotency-Key,费用从密钥所属用户余额扣除。不要在浏览器代码中暴露密钥。

从一个 Jev API 示例开始接入

通过 cURL 调用 iajev REST API,以 JSON 获取选项、概率与置信度。

阅读 iajev API 接口文档
请求
curl https://iajev.com/api/v1/decisions/run \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Idempotency-Key: YOUR_UNIQUE_REQUEST_ID' \
  -H 'Content-Type: application/json' \
  --data '{
  "state": {
    "message": "我上个月的订阅被扣了两次款,到现在还没有收到退款。",
    "plan": "pro",
    "country": "CN"
  },
  "decision": {
    "type": "choice",
    "question": "哪个团队应该处理此请求?",
    "choices": [
      "账单",
      "技术",
      "销售",
      "欺诈"
    ]
  }
}'

选择决策模型

现有请求继续使用 Jev。接口地址、API Key、决策类型和 Jev 响应结构不变。仅在需要 Clef 时添加 model: "clef";省略 model 或传入 "jev" 都使用 Jev。

Jev:每开始 1,000 输入 tokens 扣 1 积分。Clef:每开始 100 输入 tokens 扣 1 积分,均至少扣 1 积分。实际输入用量包含问题和选项定义,不仅是上下文文本。

Jev 预留最多 32 个可用积分,至少需要 1 积分。Clef 根据完整文本和图片尺寸动态估算预留,调用前余额须覆盖本次预估。完成后按实际输入用量扣费,最高不超过预留金额;余量释放,估少的差额由 iajev 承担,失败不扣费。

文本估算使用 state 与映射后的上游 questions 的 JSON,包含选项标签及描述:max(Unicode 字符数 × 2, UTF-8 字节数) + 200 tokens。图片按至少放大至 65,536 像素后的 32 像素网格估算,增加 25% 余量及每图 16 tokens。总估算封顶 65,536 tokens,再按每 100 tokens 向上取整预留积分。这是经验估算,不是 tokenizer。GET /api/v1/models 返回估算版本、参数和最大预留,Clef billing 改用 reservationMode、maxReservationCredits、estimation 和 chargeCappedAtReservation,替代固定 reservationCredits/minimumAvailableCredits。

Jev 保持 8,000 字符 / 16,000 字节限制。Clef 接收最多 1 MiB 的 JSON 编码文本,文本、图片与问题共享 65,536-token 模型窗口;超长状态可能被上游截断。均为每次一个问题、最多 8 个选项或评分等级。Clef 整体请求最多 13 MiB,不支持视频。

Clef 图片:可选 images 数组,支持 data:image/png;base64,...(也支持 JPEG/WebP)或 {content_type, base64} 对象。最多 4 张,每张最多 4 MiB / 16 MP,总解码大小最多 8 MiB。不接受远程 URL。图片参与幂等校验,不保留于历史或保存配置;重试须提交原图片。Clef 超时 90 秒,Jev 仍为 15 秒。 网页试用通过内部服务读取三个固定 iajev CDN 示例,缩至 512px 后提交。API/MCP 仍须传入嵌入图片,不接受远程 URL。

GET /api/v1/models 使用现有 API Key,不消耗积分;调用前检查 available。MCP 可使用免费的 list_models 工具,再向 run_decision 传入 model。认证方式与权限范围不变。

结果不确定时使用原幂等键重试。同一键更换模型返回 IDEMPOTENCY_CONFLICT。已完成的调用始终重放原结果与扣费,即使之后停用 Clef;不会自动切换到其他模型。

仅 Clef 响应新增 meta.model 及 billing.pricingVersion、estimationVersion、estimatedInputTokens、reservedCredits、waivedCredits。waivedCredits 为实际用量超出预留时平台承担的积分差额;billing.credits 是实际扣款。Jev 响应不变。MODEL_UNAVAILABLE(503)表示 Clef 未启用。

查询可用模型
curl https://iajev.com/api/v1/models -H 'Authorization: Bearer YOUR_API_KEY'
Clef API 请求
curl https://iajev.com/api/v1/decisions/run \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Idempotency-Key: clef-example-001' \
  -H 'Content-Type: application/json' \
  --data '{
  "model": "clef",
  "state": {
    "message": "我的款项已经连续三天支付失败,请今天帮忙处理。"
  },
  "images": [
    "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+jRZkAAAAASUVORK5CYII="
  ],
  "decision": {
    "type": "noul",
    "question": "这条请求是否需要紧急处理?"
  }
}'
run_decision 的 Clef MCP 参数
{
  "model": "clef",
  "state": {
    "message": "我的款项已经连续三天支付失败,请今天帮忙处理。"
  },
  "images": [
    "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+jRZkAAAAASUVORK5CYII="
  ],
  "decision": {
    "type": "noul",
    "question": "这条请求是否需要紧急处理?"
  },
  "idempotency_key": "clef-example-001"
}

请求字段

model
现有请求继续使用 Jev。接口地址、API Key、决策类型和 Jev 响应结构不变。仅在需要 Clef 时添加 model: "clef";省略 model 或传入 "jev" 都使用 Jev。
images
Clef 图片:可选 images 数组,支持 data:image/png;base64,...(也支持 JPEG/WebP)或 {content_type, base64} 对象。最多 4 张,每张最多 4 MiB / 16 MP,总解码大小最多 8 MiB。不接受远程 URL。图片参与幂等校验,不保留于历史或保存配置;重试须提交原图片。Clef 超时 90 秒,Jev 仍为 15 秒。 网页试用通过内部服务读取三个固定 iajev CDN 示例,缩至 512px 后提交。API/MCP 仍须传入嵌入图片,不接受远程 URL。
state.message
Jev 保持 8,000 字符 / 16,000 字节限制。Clef 接收最多 1 MiB 的 JSON 编码文本,文本、图片与问题共享 65,536-token 模型窗口;超长状态可能被上游截断。均为每次一个问题、最多 8 个选项或评分等级。Clef 整体请求最多 13 MiB,不支持视频。
state.<field>
除 message 外,最多可添加 5 个补充字段。字段名为 1–40 个字符;值可为最多 300 个字符的文本、有限数值或布尔值。不支持嵌套对象。
decision.type
支持 "choice"、"noul" 和 "score"。每次请求针对一条 state 评估一个问题。
decision.question
必填文本,1–300 个字符。
decision.choices
仅 choice 必填:2–8 个非空且不重复的选项,每项最多 80 个字符。
decision.criteria
noul:可选对象,必须同时包含 true 和 false 的判断标准,每项 1–300 个字符。score:必填的有序数组,包含 2–8 个不重复的评分标签,每项 1–80 个字符,按从低到高排列。这两种类型不传 choices。

响应字段

decision
choice:选中的字符串。noul:判断为真的概率(0–1),不是布尔值。score:0 到 criteria.length − 1 的数值评分,可以是小数。
confidence
choice 和 score 返回独立的置信度(0–1)。noul 返回 null,因为上游模型未提供该值。
results
choice:各选项及概率,按概率降序。noul:依次为 true、false,概率为 p 和 1 − p。score:各评分标签及概率,保持 criteria 原始顺序,数组下标对应评分等级。
meta
响应耗时(毫秒)及用于排查问题的请求 ID。
billing
实际扣除的 credits、inputTokens 和 outputTokens。

错误与限制

400
背景、问题、选项或 JSON 格式无效。
401
API Key 缺失、无效、过期或已撤销。
402
可用积分不足。
403
账户未验证或已被禁用。
409
请求处理中、已失败或相同幂等键被用于不同请求。
413
请求超过 16,000 个 UTF-8 字节(包含所有字段)。
415
Content-Type 必须为 application/json。
429
已达到预览版用量限制,请遵循 Retry-After 响应头。
502 / 503 / 504
决策服务不可用或超时,请勿立即反复重试。
响应结构
{
  "decision": "Billing",
  "confidence": 0.8,
  "results": [
    { "value": "Billing", "probability": 0.87 },
    { "value": "Technical", "probability": 0.10 },
    { "value": "Sales", "probability": 0.02 },
    { "value": "Fraud", "probability": 0.01 }
  ],
  "meta": { "latencyMs": 218, "requestId": "…" },
  "billing": { "credits": 1, "inputTokens": 380, "outputTokens": 0 }
}

真假概率与评分示例

noul

请求
{
  "state": {
    "message": "我的款项已经连续三天支付失败,请今天帮忙处理。"
  },
  "decision": {
    "type": "noul",
    "question": "这条请求是否需要紧急处理?"
  }
}
响应结构
{
  "decision": 0.95,
  "confidence": null,
  "results": [
    {
      "value": "true",
      "probability": 0.95
    },
    {
      "value": "false",
      "probability": 0.05
    }
  ],
  "meta": {
    "latencyMs": 218,
    "requestId": "…"
  },
  "billing": {
    "credits": 1,
    "inputTokens": 380,
    "outputTokens": 45
  }
}

score

请求
{
  "state": {
    "message": "我的款项已经连续三天支付失败,请今天帮忙处理。"
  },
  "decision": {
    "type": "score",
    "question": "这条请求有多紧急?",
    "criteria": [
      "低紧急度",
      "中等紧急度",
      "高紧急度"
    ]
  }
}
响应结构
{
  "decision": 1.8,
  "confidence": 0.9,
  "results": [
    {
      "value": "低紧急度",
      "probability": 0.05
    },
    {
      "value": "中等紧急度",
      "probability": 0.1
    },
    {
      "value": "高紧急度",
      "probability": 0.85
    }
  ],
  "meta": {
    "latencyMs": 218,
    "requestId": "…"
  },
  "billing": {
    "credits": 1,
    "inputTokens": 380,
    "outputTokens": 45
  }
}

API 变更记录

2026-10-04:新增 Clef 动态预留与封顶扣费、图片与 64K 上下文、可选 model、独立计费、GET /api/v1/models 与 MCP list_models。Jev 仍为默认模型,保留原扣费、响应结构及历史幂等重放。

POST /api/v1/decisions/run 新增 noul 与 score 类型。保留 state + decision 外层结构,现有 choice 请求和响应、鉴权、计费及幂等机制保持兼容。

查询可用积分
curl https://iajev.com/api/v1/credits -H 'Authorization: Bearer YOUR_API_KEY'

Jev: 每次付费调用预留最多 32 个可用积分(至少需有 1 积分),成功后按每开始 1,000 个输入 token 扣 1 积分,最少 1 积分;余量释放,失败不扣费。网络异常时使用相同 Idempotency-Key 重试。409 REQUEST_PENDING 表示稍后用相同 key 重试,REQUEST_FAILED 表示已失败,可使用新 key 重新调用。

请勿提交密钥或不必要的个人信息。背景信息将用于推理。登录用户和 API 请求的输入、结果和扣费记录保存在私有历史中;保存的决策也保留输入背景。匿名预览仅记录限流计数,不保存决策历史。