跳到主要内容
版本:最新版(main)

事实核查信号

概述​

fact_check 识别答案依赖于需要核查的事实陈述的请求。它提出 fact_check 预设问题:“Does answering this request require checking facts?”,选项为 FACT_CHECK_NEEDED 和 NO_FACT_CHECK_NEEDED。它只标记需要核查,并不核查任何事实。

主要优势​

  • 把事实核查与领域路由分开。
  • 让决策为证据敏感的流量选择检索、更强的模型或答案检查。
  • 让核查策略在路由图中可见,而不是藏在后面的插件里。

解决什么问题?​

并非每个请求都需要同等程度的依据。对所有流量一视同仁,会过度约束创作类请求,又对事实类请求保护不足。fact_check 在路由之前把两者区分开。

何时使用​

在以下情况使用 fact_check:

  • 事实类请求需要检索、更严格的路由或有依据的答案检查;
  • 创作或改写类请求应跳过昂贵的核查路径;
  • 只有当请求需要事实时,response_guard 规则才检查依据。

配置​

recipes:
- name: default
signals:
fact_check:
- name: needs_fact_check
description: Requests with factual claims that should be verified.
- name: no_fact_check_needed
description: Creative or rewriting requests.
labels: [NO_FACT_CHECK_NEEDED]
decisions:
- name: grounded
priority: 150
rules:
operator: AND
conditions:
- {type: fact_check, name: needs_fact_check}
modelRefs:
- model: grounded-model
字段含义
name规则名称,供 {type: fact_check, name: ...} 条件使用
labels[FACT_CHECK_NEEDED](默认)或 [NO_FACT_CHECK_NEEDED]
predicate规则所选选项的最低概率;对于 FACT_CHECK_NEEDED,默认为模型的校准阈值(vela3-fast 上为 0.9999),否则为 0.5
deployment、timeout_ms回答问题的部署,以及答案的截止时间

规则的名称不决定它的选项:没有 labels 的规则匹配 FACT_CHECK_NEEDED。每个选项按自己的概率匹配,所以模型不确定时,请求可能两条规则都不匹配。

vela3-fast 的事实核查适配器给出的概率接近 0 或 1,所以它的校准阈值接近 1。在其他模型上,请写一个你测量过的 predicate。

回答问题的模型​

除非 fact_check 绑定或规则的 deployment 指定了其他部署,否则由决策模型回答所有事实核查规则;见选择部署。vela3-fast、Vela 3.0 的 d3 规格和 Vela 2.0 有该问题的训练形式。它读取当前用户轮次。

完整示例见 config/fragments/signal/fact-check/needs-verification.yaml。