一步步设计
把问题拆成需要证明的事实
虚构查询:“我在日本买的 X2 耳机,可以在中国保修吗?”需要型号 X2、购买渠道、地区条款及有效日期。请先解释 RAG:检索器找候选文档,判断层筛选证据,生成模型组织回答。Jev 的结构化判断可放在筛选层;它不会凭空补出未提供的政策。
召回前按文档元数据缩小范围
让代码根据型号、地区、发布时间筛选候选,保留 document_id、passage_id、来源 URL、版本和原文跨度。中文问句也可能需要日文政策,语言相同不等于地区适用。没有日本购买条款时,应扩大检索或提示证据不足,而不是让模型从一般售后 FAQ 推断跨国资格。
分开判断相关、支持与冲突
官方 RAG 配方将多个问题放到查询与片段的 state 中,判断相关性、可用证据等,再由代码筛选。本例进一步建立明确的适用范围记录:片段是否谈 X2?是否直接说明跨国保修?是否与另一个同版本政策冲突?与问题相关的维修地址不能证明保修资格。
只让生成器陈述被覆盖的事实
虚构证据 P1:日本直营购买的 X2,在一年内可到指定日本网点保修。P2:大陆维修中心提供付费维修。两个片段都不能推出“日本购买可在中国免费保修”。可回答已知的网点范围,并明确跨国免费保修尚无证据;需要确认时引导核查官方支持。
生成之后逐条核查主张
先由代码确认引用 ID 存在、原文跨度匹配,再把主张与对应片段一起做语义支持判断。若一句话包含地区、费用、期限三个主张,应拆开核查。相似内容不等于支持;引用存在也不等于结论正确。来源冲突时展示适用时间和范围,不能只保留更顺眼的一条。
分别度量各层失败
给固定查询集标注相关文档与可支持主张:召回层看所需证据是否进入候选,排序层看可用证据位置,回答层看无支持主张和正确回退比例。记录型号、地区与语言切片;如果日文源召回不到,调筛选阈值没有帮助。完整链路测试需要真实文档,这里只是文字走查。
完整走查 · 本站虚构样本
| 观察到什么 | 如何判断 | 代码怎么处理 |
|---|---|---|
| P1:日本指定网点,一年保修 | 支持日本服务范围与期限 | 可陈述该范围,附 P1 |
| P2:中国大陆提供付费维修 | 支持付费维修,不证明免费保修 | 费用与保修资格分开说明 |
| 答案草稿:全球免费保修 | P1/P2 均未支持“全球、免费” | 删去无支持主张,提示待确认 |
可复制的设计草案
以下为本站原创示例。JSON 展示请求或输入形状;Python 仅计算虚构分数,不调用 API。真实接入仍需核对官方接口及任务策略。
{
"query": "Can a Japan-bought X2 receive warranty service in China?",
"passage": {
"id": "P1",
"source": "invented-policy-for-this-exercise",
"scope": {"model": "X2", "purchase_channel": "Japan direct store"},
"text": "One-year coverage at designated service centers in Japan."
},
"claim_to_check": "X2 has free worldwide warranty service.",
"required_facts": ["purchase_region", "service_region", "fee", "term"]
}设计我的任务容易踩的坑
- 只问“是否相关”,就把片段当作可支持完整答案的证据。
- 混用旧政策与新政策,忽略国家、渠道和生效时间。
- 因为引用格式合法就接受答案;格式检查与语义支持是两关。
TRY / THINK / COMPARE
先想一想,再看解析
找到一个片段说“维修中心接受 X2”,能否回答“日本购买也享受免费维修”?
展开解析
不能。“接受型号”只说明可受理,不证明购买地区、费用或保修资格。至少要找到覆盖这些条件的适用条款;没有时准确表达证据缺口。
交付前检查
- 查询所需事实逐项列出,缺证据时可回退。
- 证据保存来源、版本、地区与原文跨度。
- 生成主张与证据一一对应,冲突未被隐藏。
- 召回、排序、生成各有独立错误记录。
常见问题
Jev 能代替向量数据库吗?
这里的设计不能。检索器先召回候选,再让判断层帮助筛选或排序。
支持度高就说明真实无误吗?
不一定。判断只针对提供的片段;原文可能过时、错误或不适用于该用户。还需核实来源与范围。
资料与延伸阅读
参考官方架构模式与 Datawhale 实战主题,本站独立编写讲解、案例与练习。示例为教学设计,未调用 API,不代表性能测试。