JEV 生态的独立信息与使用指南。 JEV 官方网站
开发者指南

API

将你的应用接入 JEV AI。创建密钥、发送结构化问题,在自己的代码中读取结果。

管理 API 密钥

让 AI 帮你完成第一次调用

将完整指令复制给具备终端执行能力的 AI 编程助手,包含本站地址、认证方式、请求示例和结果检查。切换下方问题类型后,指令也会更新。请先在执行环境中配置 JEV_API_KEY。

查看完整指令
请使用 JEV AI 的 API 执行一次示例请求,并返回真实结果。请使用终端或服务端 HTTP 工具实际执行,不要只解释操作步骤。

服务地址:https://jevai.info
文档地址:https://jevai.info/api
模型:typesafe/jev-1.13
认证:Authorization: Bearer <执行环境中的 JEV_API_KEY 值>
请求类型:Content-Type: application/json

1. 从执行环境读取 JEV_API_KEY。若未配置,先提示我在本地环境中配置,不要要求我把密钥发到聊天里。不要打印、记录密钥,也不要将其写入前端代码。如果你没有执行 HTTP 请求的工具,请说明并给出可运行代码,不要虚构调用结果。
2. 携带 Bearer 请求头调用 GET https://jevai.info/api/jev/account?page=1,检查 data.balance.ready、data.balance.pending 和 data.balance.balance。每个问题需要至少 32,000 个可用输入 Token。若服务未就绪、已有待处理任务或余额不足,说明情况并停止,不要购买额度或修改账号设置。
3. 为 requestId 生成新的 UUID,向 https://jevai.info/api/jev/run 发送且仅发送一次 POST,请求 JSON 如下(只将 requestId 替换为新生成的 UUID):

{
  "requestId": "123e4567-e89b-42d3-a456-426614174000",
  "model": "typesafe/jev-1.13",
  "state": "我的订阅被重复扣款了,请帮我退回重复支付的款项。",
  "questions": {
    "decision": {
      "type": "choice",
      "instructions": "这条客服消息应该由哪个团队处理?",
      "criteria": {
        "billing": "支付、账单与退款",
        "technical": "报错、故障与配置问题",
        "other": "其他请求"
      }
    }
  }
}

4. 检查 HTTP 状态和 JSON 的 code/message。完成后返回 data.id、data.status、data.result.answers、inputTokens 和 outputTokens,再查询一次账号接口获取剩余余额。必须报告真实响应,不能用文档示例数值代替。
5. 模型调用会消耗已购买的输入 Token,输出 Token 免费。不要生成新的 UUID 重复运行示例。遇到超时,先查账号历史;如确需重试,只能复用原 UUID 和完全相同的请求体,至少间隔一秒并遵守 Retry-After。复用 UUID 返回已有记录(包括待处理或已释放状态),不会重新执行任务。遇到 needs_review 或任务状态未明确时,报告记录 ID 并停止。

最后给出简洁的执行结果,始终保密 API Key。
  1. 01

    创建 API 密钥

    进入 API 密钥页创建密钥。点击复制按钮或密钥前缀,即可复制完整 Key。旧版仅保存哈希的密钥无法恢复,如有需要请创建新密钥。

    管理 API 密钥
  2. 02

    准备可用 Token

    API 与 Playground 共用购买的 Token 余额。创建密钥免费,调用模型前需先购买 Token 套餐。

    购买 Token
  3. 03

    发送第一个请求

    选择问题类型,复制示例到你的后端运行。本页不会自动执行请求,也不会消耗 Token。

    查看调用示例

连接与认证

每次请求携带 Authorization: Bearer YOUR_API_KEY。以下示例从你的服务端调用本站 JSON API,无需 OpenAI SDK 或浏览器登录 Cookie。

服务地址
https://jevai.info
模型
typesafe/jev-1.13
终端 · 设置环境变量
export JEV_API_KEY="YOUR_API_KEY"

在本地终端将 YOUR_API_KEY 替换为完整密钥。密钥只放在后端环境变量中,不要写入前端代码或公开仓库。此密钥仅适用于本站,不能直接用于模型供应商。

发起模型请求

POST /api/jev/run

choice 从 2–255 个选项中选择类别。此示例判断一条客服消息应该分配给哪个团队。

使用兼容 Bash 的终端,需安装 curl 7.76+ 和 uuidgen。先在同一终端设置 JEV_API_KEY。

Shell
REQUEST_ID="$(uuidgen)"

curl --fail-with-body 'https://jevai.info/api/jev/run' \
  --request POST \
  --header "Authorization: Bearer $JEV_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
  "requestId": "'"$REQUEST_ID"'",
  "model": "typesafe/jev-1.13",
  "state": "我的订阅被重复扣款了,请帮我退回重复支付的款项。",
  "questions": {
    "decision": {
      "type": "choice",
      "instructions": "这条客服消息应该由哪个团队处理?",
      "criteria": {
        "billing": "支付、账单与退款",
        "technical": "报错、故障与配置问题",
        "other": "其他请求"
      }
    }
  }
}'

每个新任务使用新的 UUID requestId;重试同一任务时必须复用原 requestId 和完全相同的内容。POST /api/jev/run 会执行模型并可能消耗 Token。

查看响应示例

以下为示意数据,不是真实调用结果。code: 0 表示请求已被处理,还需检查 data.status。当状态为 completed 且 result 不为空时,从 data.result.answers 读取答案。重复请求可能返回仍在处理或已释放的记录。

JSON
{
  "code": 0,
  "message": "ok",
  "data": {
    "id": "example-run-id",
    "status": "completed",
    "inputTokens": 180,
    "outputTokens": 24,
    "questionCount": 1,
    "elapsedMs": 850,
    "createdAt": "2026-09-28T12:00:00.000Z",
    "result": {
      "model": "typesafe/jev-1.13",
      "answers": {
        "decision": {
          "type": "choice",
          "choice": "billing"
        }
      },
      "usage": {
        "input_tokens": 180,
        "output_tokens": 24
      },
      "elapsedMs": 850
    }
  }
}

请求参数

字段类型/取值说明
requestIdUUID必填。用于标识一次任务的 UUID;以同一内容重试时避免重复执行模型。
modeltypesafe/jev-1.13可选,默认使用此模型;不接受其他模型名称。
statestring | string[] | object必填,所有问题共用的上下文。字符串长度为 1–16,000 个字符;字符串数组包含 1–100 项;也可传 JSON 对象。
questionsobject必填,包含 1–8 个命名问题。问题名以英文字母开头,仅含英文字母、数字和下划线,最多 64 个字符。
questions.*.typechoice | score | noul每个问题必填。可切换上方问题类型查看对应示例。
questions.*.instructionsstring必填。用 1–16,000 个字符明确说明需要做出的判断。
questions.*.criteriaobject | string[]choice:含 2–255 个选项的描述对象,描述可为 null;score:含 2–10 项的有序描述数组;noul:省略此字段。

完整 JSON 请求体最多 32 KiB。顶层或问题中包含未定义字段会被拒绝。API 路径不加 /zh 语言前缀。

查询余额与调用记录

GET /api/jev/account
curl --fail-with-body 'https://jevai.info/api/jev/account?page=1' \
  --header "Authorization: Bearer $JEV_API_KEY"

该接口不执行模型。data.balance.balance 是可用 Token,data.balance.reserved 是预留 Token。data.history.items 每页最多返回 20 条调用记录;hasMore 为 true 时可递增 page 继续查询。

查看 Token 用量

Token 如何扣除

执行前,每个问题预留 32,000 个输入 Token,因此余额需覆盖该预留额度。完成后按实际输入用量结算,未使用的预留额度释放,输出 Token 免费。待核查请求的预留额度会保留至处理完成。

避免重复执行的重试方式

请求间至少间隔一秒,同一账号同时只执行一个任务。超时后先查询记录,仅用相同 UUID 和原内容重试。复用 UUID 会返回已有记录,不会重新执行已释放的任务;确认原任务已释放后,才可新建任务。出现 needs_review 或任务长时间未完成时,提供调用记录 ID 联系支持,不要发送 API 密钥。

常见错误与处理

错误响应会返回非成功 HTTP 状态。JSON 中 code 为 -1,message 包含错误码。请同时检查 HTTP 状态与响应内容。

HTTP错误码处理方式
400invalid_request检查 JSON 结构、criteria、UUID 格式以及请求体是否超过 32 KiB。
401unauthorized在 Bearer 请求头中使用完整且有效的本站 API Key;密钥前缀、已删除密钥和供应商密钥均无效。
402insufficient_tokens购买 Token 或等待上一次请求释放预留额度,检查可用余额与预留余额。
403invalid_origin这是网页登录调用的同源校验。服务端集成应携带有效的 Bearer Key,不要使用浏览器 Cookie。
409idempotency_conflictrequestId 已用于不同输入。重试需保留原始内容;确实是新任务时才使用新 UUID。
409request_pending / account_busy账号存在未完成任务或正在更新。先查询记录并稍后重试,不要并行发起模型请求。
429rate_limited按 Retry-After 响应头指定的时间等待,再重试同一任务。
502 / 503needs_review / upstream_rejected / service_unavailable / account_unavailable重试前先查询记录。needs_review 需要人工核查,请勿另建任务重复执行;临时服务不可用时稍后再试。
联系支持