事实核查信号路由 (Fact Check Signal Routing)
本指南向您展示如何根据请求是否需要事实验证来进行路由。fact_check 信号有助于识别需要幻觉检测或事实核查的事实性查询。
关键优势
- 自动检测:基于机器学习检测事实性查询与创意/代码类查询
- 幻觉防御:将事实性查询路由到具有验证功能的模型
- 资源优化:仅在需要时应用昂贵的事实核查
- 合规性:确保受监管行业的事实准确性
它解决了什么问题?
并非所有查询都需要事实验证:
- 事实性查询:"法国的首都是哪里?" → 需要验证
- 创意性查询:"写一个关于龙的故事" → 不需要验证
- 代码类查询:"写一个 Python 函数" → 不需要验证
fact_check 信号会自动识别哪些查询需要事实验证,使您能够:
- 将事实性查询路由到具有幻觉检测的模型
- 仅为事实性查询启用事实核查插件
- 通过避免不必要的验证来优化成本
配置
基础配置
在您的 config.yaml 中定义事实核查信号:
signals:
fact_check:
- name: needs_fact_check
description: "查询包含应根据上下文进行验证的事实陈述"
- name: no_fact_check_needed
description: "查询是创意、代码相关或基于观点的 - 无需事实验证"
在决策规则中使用
decisions:
- name: factual_queries
description: "路由带验证的事实性查询"
priority: 150
rules:
operator: "AND"
conditions:
- type: "fact_check"
name: "needs_fact_check"
modelRefs:
- model: "openai/gpt-oss-120b"
use_reasoning: true
plugins:
- type: "system_prompt"
configuration:
system_prompt: "你是一位事实信息专家。请提供准确、可验证的信息,并在可能时提供来源。"
- type: "hallucination"
configuration:
enabled: true
threshold: 0.7
用例
1. 医疗保健 - 医疗信息
问题:医疗查询必须事实准确,以避免造成伤害
signals:
fact_check:
- name: needs_fact_check
description: "查询包含应验证的事实陈述"
domains:
- name: "health"
description: "医疗和健康查询"
mmlu_categories: ["health"]
decisions:
- name: verified_medical
description: "带事实验证的医疗查询"
priority: 200
rules:
operator: "AND"
conditions:
- type: "domain"
name: "health"
- type: "fact_check"
name: "needs_fact_check"
modelRefs:
- model: "openai/gpt-oss-120b"
use_reasoning: true
plugins:
- type: "system_prompt"
configuration:
system_prompt: "你是一位医疗信息专家。请提供准确的、基于证据的健康信息。"
- type: "hallucination"
configuration:
enabled: true
threshold: 0.8 # 医疗类设置高阈值
示例查询:
- "糖尿病的症状有哪些?" → ✅ 路由并验证
- "写一个关于医生的故事" → ❌ 创意类,不验证