TypeSafe 决策模型 Jev 通过 OpenRouter Decisions API 开放调用

OpenRouter:Announcements(RSS)·2026-09-21 08:00·2天前·Kenny Rogers
AI 导读

TypeSafe 的决策模型 Jev 已可通过 OpenRouter Decisions API 调用,模型 ID 为 typesafe/jev-1.13,于 2026 年 9 月 15 日发布早期访问。

OpenRouter:Announcements(RSS)
精选
62AI 编辑部评分,满分 100

TypeSafe 决策模型 Jev 通过 OpenRouter Decisions API 开放调用

2026-09-21 08:00· 2天前· Kenny Rogers
AI 导读

TypeSafe 的决策模型 Jev 已可通过 OpenRouter Decisions API 调用,模型 ID 为 typesafe/jev-1.13,于 2026 年 9 月 15 日发布早期访问。

推荐理由

文章给出 Jev 三种决策原语、真实 API 响应和调用代码,开发者可据此判断如何用它替代 LLM 加正则的解析流程。

正文 · AI 翻译
What Is Jev? TypeSafe's Decision Model Explained for Developers

什么是 Jev?你应该用它来做什么?它是 TypeSafe 的决策模型,接收一段文本加上一个带类型的问题,并返回一个带类型的答案,该答案是你在预定义答案集合中所选的其中一个选项。所以,如果我有一个关于工单路由的问题,比如这张工单应该归到账单、技术还是账户,Jev 会查看工单的文本,并用预定义选项之一来作答,billing。但它比这还要更酷,因为它会给出该答案选项的校准概率,以及每个其他选项的概率。哦,还有一个整体置信度分数(稍后详述)。TypeSafe 将这些称为 System One 模型,而 Jev 是其中的第一个。

但 Jev 实际返回什么呢?让我们一探究竟!它返回三个原语,下面每个都有真实的 API 响应。以下是如何在解读概率时不欺骗自己。以及如何用 OpenRouter API key 调用 Jev。

什么是决策模型(System One 模型)?

Jev 是一个决策模型。System One 模型是一种接收一份状态,并在给定该状态的情况下返回一个决策的模型。在这种情况下,Jev 的决策始终是你预先定义的一个带类型的值,外加一个从 0 到 1 的实际概率数字。这个名字来源于 Daniel Kahneman 在 《思考,快与慢》中所称的 System One:快速的、模式匹配式的思考,而 System Two 则是缓慢且深思熟虑的。

那么,是什么让它成为一个决策模型,而不是某种预言机?决策模型必须从你事先确定的一小组值中返回结果。没有自由形式的文本,因此你无需解析任何内容,也不必担心模型幻觉。

现在,TypeSafe 对 Jev 进行了校准,使其在给出 0.8(即 80% 的概率)时,含义确实如此——就像 80% 的降雨概率一样,Jev 在这类回答上大约有 80% 的时候是正确的(System One 概念)。

这只有在对许多回答取平均时才成立。任何单个回答仍然可能是错的。这带来了实际差异;这一点我们稍后会再回来讨论。

Jev 与 LLM:各自返回什么

一旦你理解了 Jev 和 LLM 各自做什么,它们之间的区别就变得清晰了。两者都能读取自然语言,但分歧完全在输出端。

以下是两者的并排对比:

生成式 LLMJev
输出Token:散文、代码、你要求的 JSON一个带类型的答案加上一个概率分布
结构有保证吗?只有在使用结构化输出时才行,而且内容仍然可能是错的始终是你给定的选项、等级之一,或是一个是/否概率
不确定性隐藏在行文之中以可设定阈值的数字形式返回
输入文本,通常还包括图像、音频或视频仅文本(字符串、JSON 对象、文本数组)
OpenRouter 上的价格因模型而异,输入和输出均计费每百万输入 token $0.042,输出免费

每当你需要以文字作为主要输出时,例如回复、摘要或代码补丁,就用 LLM。当你需要做出可转化为代码操作的决策时,就用 Jev。几乎在所有真实场景中,这两个系统都是协同工作的:Jev 负责路由和验证,LLM 负责提供语言。这正是配套文章 Jev vs LLM:何时使用哪一个所讲的内容。它在 140 个支持案例上对这条分工进行了基准测试,并用 TypeScript 将两者串联起来。

Jev 的三大原语:Choice、Score 和 Noul

你向 Jev 提出的每一个问题都属于三种类型之一。一个请求包含两部分:state,即待评估的文本,以及一个 questions 对象,其中包含一个或多个带类型的问题。Jev 会在一次处理中回答所有问题,每个答案都会以你给定的键返回。

下面的示例是我在 2026 年 9 月 21 日发起的真实调用。它们通过 OpenRouter 的 Decisions API 针对 typesafe/jev-1.13 运行,如果你设置了 OPENROUTER_API_KEY,就可以按原样运行这些示例。

Choice:从固定选项集中选择一个选项

当你从 API 获得一个 Choice 时,它总是包含三样东西:被选中的选项、每个选项的概率,以及一个置信度值。

这条命令会发送请求:

curl https://openrouter.ai/api/alpha/decisions \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "typesafe/jev-1.13",
    "state": "My invoice for September shows two charges for the Pro plan. I only have one workspace.",
    "questions": {
      "team": {
        "type": "choice",
        "instructions": "Which team should handle this ticket?",
        "criteria": {
          "billing": "Charges, invoices, and refunds",
          "technical": "Bugs, outages, and broken features",
          "account": "Login, password, and profile changes"
        }
      }
    }
  }'

这个响应展示了 API 返回的内容:

{
  "model": "typesafe/jev-1.13-20260917",
  "answers": {
    "team": {
      "type": "choice",
      "choice": "billing",
      "probabilities": { "technical": 0, "account": 0, "billing": 1 },
      "confidence": 1
    }
  },
  "usage": { "input_tokens": 357, "output_tokens": 38, "cost": 0.000014994 },
  "id": "gen-dec-1790013975-0Cpw7ykY8YRfP85l4eqS",
  "provider": "TypeSafe"
}

Jev 在做出选择之前会阅读 criteria 的描述,所以要像给新员工做简报那样来撰写它们。TypeSafe 的 API 参考文档指出,问题 id(此处为 team)永远不会被发送给模型。所有含义都必须体现在描述中。其次,model 字段指明了 OpenRouter 所服务的具体快照。

Score:按照你描述的有序等级进行评分

Score 接收一个有序的层级描述数组。它返回一个代表该文本得分的数字,以及一个将数组中每个索引映射到其描述的 legend,外加 Jev 对每个层级的概率和一个置信度值。

curl https://openrouter.ai/api/alpha/decisions \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "typesafe/jev-1.13",
    "state": "Export to CSV fails with a 500 error for every workspace in our org since this morning. We can still download JSON exports, but our finance team can only import CSV.",
    "questions": {
      "severity": {
        "type": "score",
        "instructions": "How severe is this bug report?",
        "criteria": [
          "Cosmetic; no impact to functionality",
          "Broken or degraded feature, but a workaround exists",
          "Blocking issue; no workaround exists"
        ]
      }
    }
  }'
{
  "model": "typesafe/jev-1.13-20260917",
  "answers": {
    "severity": {
      "type": "score",
      "score": 1.15,
      "legend": {
        "0": "Cosmetic; no impact to functionality",
        "1": "Broken or degraded feature, but a workaround exists",
        "2": "Blocking issue; no workaround exists"
      },
      "probabilities": { "0": 0, "1": 0.85, "2": 0.15 },
      "confidence": 0.77
    }
  },
  "usage": { "input_tokens": 354, "output_tokens": 17, "cost": 0.000014868 },
  "id": "gen-dec-1790013976-PwmCQLkieCXkoK3qb8Ja",
  "provider": "TypeSafe"
}

得分 1.15 是各层级的概率加权平均值,即 0.85 乘以 1 加上 0.15 乘以 2,如上述响应所示。你自己运行时结果会相差百分之几,因为 Jev 的概率在不同调用之间会略有波动。把“我们仍然可以下载 JSON 导出”解读为一种变通方案,Jev 主要落在层级 1。它也给“阻断”赋予了一定权重,因为财务部门无法使用这个变通方案。

由于得分处于有序尺度上,你必须将各层级按从最低到最高的真实顺序排列,并用文字描述每个层级。TypeSafe 文档列出了 Score 原语的详细信息,包括最多 10 个层级的限制。

Noul:一个是/否命题成立的概率

Noul 是三者中最简单的原语。它以命题为输入,返回答案为“是”的概率。

下面的命令发送该请求:

curl https://openrouter.ai/api/alpha/decisions \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "typesafe/jev-1.13",
    "state": "I was charged twice for September. Please refund the duplicate charge.",
    "questions": {
      "refund": {
        "type": "noul",
        "instructions": "Is the customer asking for money back?"
      }
    }
  }'

以下是 API 返回的响应:

{
  "model": "typesafe/jev-1.13-20260917",
  "answers": {
    "refund": { "type": "noul", "noul": 0.99 }
  },
  "usage": { "input_tokens": 287, "output_tokens": 20, "cost": 0.000012054 },
  "id": "gen-dec-1790013977-LxrJdV3aOEliWmRmdmh9",
  "provider": "TypeSafe"
}

请记住,Noul 的答案没有单独的 confidence 字段。概率就是整个答案。下一节将解释如何解读它。

在一次调用中同时询问全部三个

你甚至可能会问自己,嘿,那个 questions 对象里能放多少个问题?想放多少就放多少。state 不必是普通字符串:它可以是一个 JSON 对象,具备由此带来的一切灵活性。然后你的指令就可以用反引号按名称引用它的各个字段。

假设你想在单次往返中,从同一个工单领域一次性询问一个 Choice、一个 Score 和一个 Noul。

发送此请求的命令如下所示。

curl https://openrouter.ai/api/alpha/decisions \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "typesafe/jev-1.13",
    "state": {
      "ticket": "Hi, I was charged twice for my Pro subscription this month. Please fix this before my next payroll run on Friday."
    },
    "questions": {
      "team": {
        "type": "choice",
        "instructions": "Which team should handle `ticket`?",
        "criteria": {
          "billing": "Charges, invoices, and refunds",
          "technical": "Bugs, outages, and broken features",
          "account": "Login, password, and profile changes"
        }
      },
      "urgency": {
        "type": "score",
        "instructions": "How urgent is `ticket`?",
        "criteria": [
          "No deadline; routine question",
          "Customer wants a fix soon but nothing is blocked",
          "Customer names a deadline or something is blocked now"
        ]
      },
      "refund": {
        "type": "noul",
        "instructions": "Is the customer in `ticket` asking for money back?"
      }
    }
  }'

下面显示的是 API 返回的响应。

{
  "model": "typesafe/jev-1.13-20260917",
  "answers": {
    "team": {
      "type": "choice",
      "choice": "billing",
      "probabilities": { "technical": 0, "billing": 1, "account": 0 },
      "confidence": 1
    },
    "urgency": {
      "type": "score",
      "score": 2,
      "legend": {
        "0": "No deadline; routine question",
        "1": "Customer wants a fix soon but nothing is blocked",
        "2": "Customer names a deadline or something is blocked now"
      },
      "probabilities": { "0": 0, "1": 0, "2": 1 },
      "confidence": 1
    },
    "refund": { "type": "noul", "noul": 0.82 }
  },
  "usage": { "input_tokens": 447, "output_tokens": 69, "cost": 0.000018774 },
  "id": "gen-dec-1790013867-chEjwDPvoiiffM3J3eDF",
  "provider": "TypeSafe"
}

如果一切顺利,每个答案都会落在你为它指定的键下。在代码中,你随后就能直接访问 answers.team.choiceanswers.refund.noul

如何解读 Jev 的概率和置信度

在解读 Jev 的概率和置信度时,有三条准则需要牢记。

当 Noul 接近 0.5 时,那意味着 Jev 在说它不知道该作何判断。 把它理解为一种不确定状态。我们来做个小实验,向你展示这是怎么回事。我用同一个退款问题——“客户是在要求退款吗?”——针对“我这个月卡上有两笔扣款。如果其中一笔是误扣,我有哪些选择?”这一状态,在两次独立的调用中分别提问。一次返回的 Noul 为 0.52,而在完全相同的消息上(没错,一字不差),Jev 返回的 Noul 为 0.49。如果你忍不住想说“哎呀,客户就是想要退款”,请想一想,客户在这条消息里从未要求过退款。他们是在绕着它打转,而 Jev 感受到两个方向的拉扯,你我也同样无法确定。与此同时,早先那次 Noul 调用中明确的退款请求达到了 0.99。看出规律了吗?当结果处于中间地带时,把它当作第三种结果,一种你可以据此采取行动的结果。追问一个问题,或者把工单转交给人工处理。

Choice 和 Score 置信度是衡量分布集中程度的指标。 分布的权重越集中在某一个结果上,置信度就越高。集中在单一选项上的选择会产生一个高置信度数值,范围从 0 到 1。置信度数值越高,说明在各选项之间的犹豫越少。但 Jev 把注意力集中在某个选项上,并不意味着答案就是对的。TypeSafe 的置信度数值来自其 probabilities 的形状,而非其实际正确性(置信度文档)。在极端情况下,一个把所有权重都分配给某一个结果的模型,其置信度将为 1.0,而集中程度越低,该数值就越小。

你可以用计费示例来验证这一点。这个 state 更加模糊:“我昨天升级到了 Pro,但仪表盘仍然显示 Free,而且我还被扣费了。到底是哪个?”下面的响应会准确展示 API 返回了什么:

{
  "type": "choice",
  "choice": "billing",
  "probabilities": { "account": 0.02, "technical": 0.19, "billing": 0.79 },
  "confidence": 0.69
}

Jev 仍然选择 billing,尽管其五分之一的权重落在 technical 上,置信度降至 0.69。置信度衡量的是 Jev 在多个选项之间有多纠结,但这些选项是否选得好,则取决于你。

根据你自己的标注数据来选择你自己的阈值。 操作建议很简单。校准在总体上成立,这意味着适合你的正确截断值取决于你的错误有多昂贵。TypeSafe 的 置信度指南 建议三个区间:如果置信度超过某个阈值,就自动执行。在中间区间谨慎推进,标记出来以便增加一层用户确认,或者干脆标记出来供人工审核。如果置信度低于另一个阈值,则转交给人工或不同系统处理。

如何设置这些区间?标注几百个示例。对每个示例,检查 Jev 的概率落在哪里。然后选择一些区间,确保“自动执行”区间内的错误率是你能够接受的。

Jev 留给你的代码去做的部分

有一些事情 Jev 不会做,但你可能会期望它作为模型去做。这些部分仍然留在你自己的代码中,或者交给 LLM 处理:

  • 文本生成。每个 Jev 响应都是前面展示的三种带类型形态之一,绝不是补全,绝不是 JSON 正文,绝不是解释。当流水线需要一句话时,由 LLM 生成,再由 Jev 校验。verified cascade cookbook 展示了这一模式。

  • 可见推理。Jev 只返回你各选项上的分布,别的什么都不返回。没有理由说明,没有思维链。把该分布作为用于记录日志和设定阈值的信号。若需要审计追踪,记录请求 ID、问题名称、概率,以及你的代码所应用的阈值。不要把 state 本身记入日志,因为工单和文档包含客户数据。

  • 工具调用、对话或多步计划。Jev 在一次往返中回答你针对所传入状态提出的问题。它不进行工具调用,不保持对话,也不采取任何步骤。它在智能体内部作为决策部分发挥作用,例如对工具调用进行门控

这就是三条!还有两条约束需要牢记:

  • Jev 只接受文本,即字符串、JSON 对象或文本数组。不接受图像、音频或视频。

  • 精确算术、日期运算和阈值比较不是 Jev 的职责。先计算好这些,再把语义部分交给 Jev。

何时使用 Jev 模型

现在你已经了解了 Jev 是做什么的,接下来我们聊聊它什么时候适用:当你的 LLM 预期给出的答案可以归入一个枚举、一个布尔值或一个数字时。

何时使用 Jev

  • 路由与分诊: 你确定队列、负责人、优先级。每张工单一次 Choice 和一次 Score。
  • 大规模分类与打标签: 成本足够低(见下方定价),可以对每一行都运行;输出本身就已经是一个标签。
  • 为智能体操作设卡: 在运行破坏性工具之前,先问一个 Noul:用户的请求是否授权删除这些文件;低于你的阈值就拦截。
  • 验证 LLM 输出: 先用 LLM 起草,然后问 Jev:这份草稿是否基于你提供的策略文本。
  • 排序与过滤: 按照所描述的分级对候选项打分,然后排序。

何时跳过 Jev

当答案需要是散文,或者当输入是一张图片,或者当逻辑是确定性的。一条精确规则?正则表达式或数据库查询胜过任何模型。想在写代码之前先试试,Jev Lab 可以在浏览器中对实时调用运行其中几种模式。

如何在 OpenRouter 上访问 Jev

你需要一个 OpenRouter API key 和一个模型 ID:typesafe/jev-1.13(固定版本)或 ~typesafe/jev-latest(用于跟踪最新版本的别名)。同一个调用可以通过三种不同方式发起:使用 OpenRouter SDK、TypeSafe SDK,或原始 HTTP。

使用 OpenRouter SDK 的 Decisions API

下面的代码展示的调用与“置信度”一节中那个更模糊的工单里的调用相同:一次POST https://openrouter.ai/api/alpha/decisions通过 OpenRouter TypeScript SDK 发起的调用alpha.decisions。该代码已使用 SDK 1.3.11 测试通过,安装方式为npm install @openrouter/sdk。由于顶层的await,请使用以下方式运行bun run或作为 ES 模块运行。开始吧:

import { OpenRouter } from '@openrouter/sdk';

const openrouter = new OpenRouter({ apiKey: process.env.OPENROUTER_API_KEY });

const decision = await openrouter.alpha.decisions.create({
  decisionsRequest: {
    model: 'typesafe/jev-1.13',
    state: 'I upgraded to Pro yesterday but the dashboard still says Free and I got charged. Which one is it?',
    questions: {
      team: {
        type: 'choice',
        instructions: 'Which team should handle this ticket?',
        criteria: {
          billing: 'Charges, invoices, and refunds',
          technical: 'Bugs, outages, and broken features',
          account: 'Login, password, and profile changes',
        },
      },
    },
  },
});

const team = decision.answers.team;
if (team.type === 'choice') {
  console.log(team.choice, team.probabilities, team.confidence);
}
billing { account: 0.01, technical: 0.15, billing: 0.84 } 0.77

请注意,这里的数值与之前在同一工单上的运行结果不同(0.79 和 0.69)。Jev 的概率每次调用都会有所变化,因此最好将阈值设置在区间上,而不是精确值上。最后请注意,OpenRouter SDK 返回的 decision.usage.inputTokensdecision.usage.outputTokens 采用 camelCase 命名,而非原始 API 的 input_tokensoutput_tokens

指向 OpenRouter 的 TypeSafe JavaScript SDK

第二条调用路径是 TypeSafe SDK:将 SDK 的 base URL 指向 OpenRouter,并将你的 OpenRouter API key 作为 API key 传入。SDK 会在 base URL 后追加 /v1/systemone。像 jev-1.13 这样的裸模型名称会映射到 typesafe/jev-1.13。下面的代码是使用 @typesafe-ai/sdk 对 Jev 的同一调用;该代码已在 SDK 0.6.0 上测试通过:

import { TypeSafeClient } from '@typesafe-ai/sdk';

const client = new TypeSafeClient({
  apiKey: process.env.OPENROUTER_API_KEY,
  baseURL: 'https://openrouter.ai/api',
});

const result = await client.systemOne({
  model: 'jev-1.13',
  state: 'Export to CSV fails with a 500 error for every workspace in our org since this morning. We can still download JSON exports, but our finance team can only import CSV.',
  questions: {
    severity: {
      type: 'score',
      instructions: 'How severe is this bug report?',
      criteria: [
        'Cosmetic; no impact to functionality',
        'Broken or degraded feature, but a workaround exists',
        'Blocking issue; no workaround exists',
      ],
    },
  },
});

console.log(result.answers.severity);
{
  type: "score",
  score: 1.19,
  legend: {
    "0": "Cosmetic; no impact to functionality",
    "1": "Broken or degraded feature, but a workaround exists",
    "2": "Blocking issue; no workaround exists",
  },
  probabilities: {
    "0": 0,
    "1": 0.81,
    "2": 0.19,
  },
  confidence: 0.72,
}

指向 OpenRouter 的 TypeSafe Python SDK

在 Python 中实现同样的思路,使用 typesafe-sdk 0.7.1(pip install typesafe-sdk):

import os

from typesafe_sdk import TypeSafeClient

client = TypeSafeClient(
    api_key=os.environ["OPENROUTER_API_KEY"],
    base_url="https://openrouter.ai/api",
)

result = client.system_one(
    model="jev-1.13",
    state="There are two charges on my card this month. If one of them is a mistake, what are my options?",
    questions={
        "refund": {"type": "noul", "instructions": "Is the customer asking for money back?"}
    },
)

print(result.answers["refund"])
type='noul' noul=0.49

将你的 OpenRouter 密钥安全妥善地保存在服务端。TypeSafe SDK 指南中有关于别名映射、响应封装以及错误处理的详细说明。

Jev 定价与上下文窗口

来自 2026 年 9 月 21 日的 OpenRouter 模型页面

OpenRouter 上的 Jev 1.13
输入价格$0.042 / 百万 tokens
输出价格$0
上下文窗口32,000 tokens
模态输入文本,输出决策
提供商TypeSafe

总结一下:上面那个三问题工单调用使用了 447 个输入 token,花费 $0.000019(约千分之二美分)。一百万条这种规模的工单大约花费 $19。输出是免费的,而且答案很小(上面每次调用的输出都在 17 到 69 个 token 之间)。由于 probabilities 内部的键顺序在每次调用之间会发生变化,我建议你按名称而非位置来索引条目。

OpenRouter 列出的是 32k 上下文窗口。TypeSafe 的 模型页面列出每次请求总计 64k token,其中 32k 用于你的 state 加上最长的问题。

Jev 是开源的吗?

快速问一下:Jev 是专有的吗?答案显而易见(是的),但让我解释一下。TypeSafe 没有发布 Jev 的权重,也没有发表关于 Jev 的论文,而且所有想使用 Jev 的人调用的都是同一个托管模型。

试一试

现在该用你自己的 OpenRouter API key 来亲自体验这一切了!拿到它,粘贴上面某条 curl 命令,然后把 state 换成来自你自己系统的真实消息。

常见问题

什么是 Jev?

Jev 是 TypeSafe 打造的一款决策模型。你与大多数模型交互的方式是向它们发送文本。而使用 Jev 时,你不仅仅这样做。相反,你向它发送文本外加一个或多个带类型的问题,返回给你的答案也是带类型的答案,并附有经过校准的概率。没有文本生成。TypeSafe 将这一类模型称为 System One 模型。

Jev 是谁打造的?

Jev 是一款决策模型。它由 TypeSafe 打造,这是一家由 Diogo Almeida、Erik Gafni 和 Sasha Sheng 创立的 AI 实验室。Jev 于 2026 年 9 月 15 日开放抢先体验。目前,当前版本是 Jev 1.13。你可以通过 TypeSafe 自家的 API 或通过 OpenRouter 获取它。

Jev 是大语言模型吗?

不。Jev 是一个非生成式决策模型,而 LLM 是生成式模型:Jev 像 LLM 一样读取你的自然语言,但随后不生成任何文本、任何 token。根据你的问题,Jev 返回三种答案形态之一:要么是在一组预先确定的选项之间做出选择,要么是在一组已定义的等级上给出评分,要么是给出“是”与“否”的概率。由于没有生成的文本,就没有任何东西需要解析,也不存在输出幻觉的可能。

Jev 用来做什么?

好吧,假设你得决定哪张支持工单被路由到哪个团队。你得把这篇博客文章归类到某个内容类型。你想基于一个置信度阈值来对 AI 智能体的工具调用进行把关。你得对一组候选进行排序。你还得对照某项策略来核验一份草稿。听起来很熟悉吧?在这些场景中,以前都是你来向 LLM 提问,然后用正则表达式解析出一个布尔值或枚举值。来认识一下 Jev,这款专为这类决策而打造的模型,用来取代那种“LLM 加正则表达式”的工作流。

我如何访问 Jev?

所以你想通过 OpenRouter 访问 Jev?那么,你只需要一个 OpenRouter API key,并向以下 URL 发送一个 POST 请求:https://openrouter.ai/api/alpha/decisions,模型为 typesafe/jev-1.13。或者,你也可以使用 OpenRouter SDK 中的 decisions 客户端。你甚至可以使用 TypeSafe 的 JavaScript 和 Python SDK。只需将 base URL 设置为 https://openrouter.ai/api,并传入你的 OpenRouter key 即可。

Jev 的费用是多少?

目前,截至 2026 年 9 月 21 日,OpenRouter 上的 Jev 1.13 每百万输入 token 收费 $0.042(输出完全免费)。这意味着,针对一个简短支持工单的典型三问题调用大约使用 450 个输入 token,成本约为千分之二美分。所以请务必记得查看模型页面以了解当前定价。

Jev 是开源的吗?

不是。Jev 是一个专有模型,因此没有公开的权重,也没有论文。不过,你可以通过 TypeSafe API 或 OpenRouter 调用它。

来源:OpenRouter:Announcements(RSS)· openrouter.ai