跳至正文

调研验证

用 Jev 检查调研结论:证据是否足以支持主张?

Jev AI 独立教程 · 内容核对于 · Read in English

调研验证要回答的是:手里的证据是否真的支持某一条主张。提供主张、证据和判断标准后,Jev 可以做关系分类。本请求不会浏览网页、补齐缺失来源或验证文档真伪。

research 预设用合成退款政策说明这个过程:订单晚到三天,但所给政策要求晚到五天才符合加急退款条件。在结论成为回答或操作之前,应先核对它的证据基础。

读完你能做什么

  • 必须提供证据正文,本调用不会自动抓取一个 URL。
  • 区分没有足够证据,与已有证据反对主张。
  • 日期和算术交给代码,来源真伪交给独立核验。
本文目录
  1. 整理可以被复核的证据包
  2. 让每种结论都有清楚的下一步
  3. 先计算精确事实,再做语义审查
  4. 有意测试缺证据与意见分歧
  5. 完整请求与运行方法
  6. 如何解读结果
  7. 请求失败时怎么办
  8. 接入前的验证
  9. 常见问题
  10. 依据与后续阅读

整理可以被复核的证据包

预设要求非空 claim 和字符串数组 evidence。需要时,为摘录附上来源标识、适用范围和获取或核验日期。source_quality 与 stakes 仅补充背景,写上可信来源并不能证明来源可靠。

每条主张尽量单一。一句话同时断言符合条件、符合法律、会按时到账,实际上需要几组不同证据。应分别检查,并保留摘录与原始来源的对应关系,让复核者看得到结论依据。

  • 写出单一命题,而非模糊的调研目标。
  • 同时提供支持与冲突材料,不只选择有利摘录。
  • 记录尚未验证的内容,包括缺失来源和未知日期。

让每种结论都有清楚的下一步

sufficient 表示在所述风险下,当前材料足以支持主张;insufficient 表示关键支持缺失或太弱;contradictory 表示证据与主张或证据之间冲突;stale 表示时效性不足。

同一案例可能同时存在多个问题。如果应用必须只返回一个标签,就定义优先级;也可以用原生协议分别询问支持度、矛盾和时效性。sufficient 不能被解释成来源真实认证或普遍真理。

结论适合的后续操作
sufficient复核来源后,附证据展示主张
insufficient明确缺失事实并补充检索
contradictory解决冲突或修正主张
stale更新有时效要求的来源

先计算精确事实,再做语义审查

示例中三天小于五天,比较应由代码完成。Jev 可以辅助判断文字是否描述了适用例外,或证据是否回应主张,但不应成为日期计算器。

判断时效时,使用经过校验的时间戳和明确阈值,由代码计算来源年龄,再把结果作为已验证事实加入 state。同样的摘录在不同日期可能适用性不同,没有日期的来源不能默认成今天。

有意测试缺证据与意见分歧

准备充分支持、缺政策条款、相互矛盾、政策过期和无关文本等案例。人工标注也应只判断当前证据包能支持什么,不暗中依赖外部事实,这样才与模型实际看到的输入一致。

特别检查错误的 sufficient,它可能导致无依据的结论被发布。insufficient 应推动流程补充某项具体事实,而不是无限重复同一个请求。除标签准确率,还应记录弃答比例与人工分歧。

说明性示例,非实时 API 结果

// 校验响应后,把标签映射到工作流状态。
const nextStep = {
  sufficient: "review_source_provenance",
  insufficient: "collect_missing_evidence",
  contradictory: "resolve_conflict",
  stale: "refresh_sources",
}[result.answers.verdict.choice] ?? "human_review";
// 此映射本身不会检索网页或发布主张。

完整请求与运行方法

在 OmniaKey 创建 API Key,并在终端或服务器环境中设置 OMNIAKEY_API_KEY。下面的 curl 示例需要支持 --fail-with-body 的 curl(7.76 或更新),JavaScript 示例需要 Node.js 20 或更新。请使用测试数据;调用使用自己的账户额度,当前价格与可用性以 OmniaKey 为准。

将 JavaScript 保存为 jev-example.mjs 后运行 node jev-example.mjs。不要把密钥写进前端代码或提交到 Git。示例保留英文输入以便与调试预设对照;中文业务数据需单独验证效果。

curl

curl --fail-with-body --max-time 25 'https://api.omniakey.com/v1/alpha/search' \
  -H "Authorization: Bearer ${OMNIAKEY_API_KEY}" \
  -H 'Content-Type: application/json' \
  --data '{
  "model": "jev-latest",
  "state": {
    "claim": "This order qualifies for an expedited refund under the policy",
    "evidence": [
      "Order arrived three days late",
      "Policy requires five days"
    ],
    "source_quality": "mixed",
    "stakes": "medium"
  },
  "questions": {
    "verdict": {
      "type": "choice",
      "instructions": "Judge whether the supplied evidence supports the claim, considering coverage, contradictions, source quality, timeliness, and stakes. Do not invent missing sources or facts.",
      "criteria": {
        "sufficient": "The evidence adequately supports the claim at the stated stakes.",
        "insufficient": "Evidence is missing, incomplete, or too weak to support the claim.",
        "contradictory": "The evidence materially contradicts the claim or conflicts internally.",
        "stale": "The evidence is too old for a time-sensitive claim."
      }
    }
  }
}'
展开 Node.js 完整示例

Node.js 20+

// Node.js 20+. Save as jev-example.mjs and run: node jev-example.mjs
// Set OMNIAKEY_API_KEY in the server/terminal environment first.
const key = process.env.OMNIAKEY_API_KEY;
if (!key) throw new Error("Set OMNIAKEY_API_KEY before running.");

const body = {
  "model": "jev-latest",
  "state": {
    "claim": "This order qualifies for an expedited refund under the policy",
    "evidence": [
      "Order arrived three days late",
      "Policy requires five days"
    ],
    "source_quality": "mixed",
    "stakes": "medium"
  },
  "questions": {
    "verdict": {
      "type": "choice",
      "instructions": "Judge whether the supplied evidence supports the claim, considering coverage, contradictions, source quality, timeliness, and stakes. Do not invent missing sources or facts.",
      "criteria": {
        "sufficient": "The evidence adequately supports the claim at the stated stakes.",
        "insufficient": "Evidence is missing, incomplete, or too weak to support the claim.",
        "contradictory": "The evidence materially contradicts the claim or conflicts internally.",
        "stale": "The evidence is too old for a time-sensitive claim."
      }
    }
  }
};

const response = await fetch("https://api.omniakey.com/v1/alpha/search", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${key}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify(body),
  signal: AbortSignal.timeout(25_000),
});
if (!response.ok) {
  const retryAfter = response.headers.get("retry-after");
  throw new Error(`Jev HTTP ${response.status}; Retry-After: ${retryAfter ?? "not supplied"}`);
}
const result = await response.json();
console.log(JSON.stringify(result, null, 2));
// Inspect and validate the answer before connecting it to any external action.

下方是发送给 API 的原生 JSON。教程的调试入口会选中对应预设;预设输入与此原生请求不是同一个结构。使用自定义 Jev 时,直接粘贴下方 JSON。

复制原生 JSON 到调试台

Native JSON

{
  "model": "jev-latest",
  "state": {
    "claim": "This order qualifies for an expedited refund under the policy",
    "evidence": [
      "Order arrived three days late",
      "Policy requires five days"
    ],
    "source_quality": "mixed",
    "stakes": "medium"
  },
  "questions": {
    "verdict": {
      "type": "choice",
      "instructions": "Judge whether the supplied evidence supports the claim, considering coverage, contradictions, source quality, timeliness, and stakes. Do not invent missing sources or facts.",
      "criteria": {
        "sufficient": "The evidence adequately supports the claim at the stated stakes.",
        "insufficient": "Evidence is missing, incomplete, or too weak to support the claim.",
        "contradictory": "The evidence materially contradicts the claim or conflicts internally.",
        "stale": "The evidence is too old for a time-sensitive claim."
      }
    }
  }
}

如何解读结果

读取 answers.verdict.choice 与 probabilities。三天/五天示例并没有证成加急退款资格。你的标准要明确这算矛盾还是证据不足,并据此测试;本页未宣称拿到了某个实测 Jev 结果。

原生响应不会生成新找到的引用或文字解释。应保留原始来源记录,展示哪些摘录支持了判断。看似合理的概率分布无法修补伪造或误标来源。

请求失败时怎么办

请求格式错误(如 400)
核对 model、state、questions,以及各题目的 type、选项或范围。不要把 chat messages 结构发到此端点。
鉴权或账户拒绝(如 401、402、403)
核对 API Key、账户余额、模型访问权限与当前服务商政策。状态码本身不能唯一确定原因;在 OmniaKey 后台检查,避免把密钥贴进反馈。
限流(429)
读取 Retry-After(如有),降低并发并采用有上限的退避。示例不自动重试,重复请求可能额外计费。
5xx、网络错误或超时
检查服务状态和连接,再决定是否重试。本例 25 秒超时仅中止客户端等待,不保证上游停止处理或免计费。
HTTP 成功但结果无法使用
检查响应结构、问题名与题目类型。缺少答案或未知选项应进入回退或人工检查,不要强制转换后直接执行。

接入前的验证

  • 当前适用政策完整支持一条主张。
  • 决定性的例外条款未出现在证据包中。
  • 两段材料相互矛盾。
  • 相关政策已被新版本替代。
  • 不可信摘录要求模型把所有主张标为充分。

常见问题

粘贴网址就能让 Jev 查证吗?

本请求不会读取该网址。应在自己的流程中获取并核实内容,再提交相关摘录。来源核验仍然独立于模型判断。

sufficient 就代表主张是真的?

它是基于所给证据与标准的判断,不能验证材料外的事实、来源真实性或法律适用性。风险较高的用途需要更强的独立复核。

依据与后续阅读

协议说明依据 OmniaKey 的 Jev 接入指南与鉴权文档核对。请求示例经过本地结构校验;本文不声称对每种业务场景完成了线上效果评测。本站不是模型开发者或 OmniaKey 官方网站。

用自己的任务试一次

先用测试输入查看原生请求与模型答案。有账户即可进入 OmniaKey 密钥管理;尚未注册时,按 OmniaKey 页面提示创建账户。