决策 API
提交背景和问题,获取结构化决策。
在账户设置创建 API Key 并购买积分。请求需携带 Authorization: Bearer YOUR_API_KEY 和唯一的 Idempotency-Key,费用从密钥所属用户余额扣除。不要在浏览器代码中暴露密钥。
从一个 Jev API 示例开始接入
通过 cURL 调用 iajev REST API,以 JSON 获取选项、概率与置信度。
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'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": "这条请求是否需要紧急处理?"
}
}'{
"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 请求的输入、结果和扣费记录保存在私有历史中;保存的决策也保留输入背景。匿名预览仅记录限流计数,不保存决策历史。