RAG Workbench · Interface

企业级 RAG 工作台

把「检索到的内容」变成「能被引用的证据」。界面上每一句话都要能点回原始出处, 答不上来的时候明确说答不上来。

端到端 17 / 17 历史记录 65 / 65 覆盖率 93% 独立实验 token-F1 0.7275
◆

Main screen

检索工作台:三栏各自负责一件事

左栏管「从哪儿来」,中栏管「找到了什么」,右栏管「怎么答」。三栏互不越界, 答案区不允许出现没有证据支撑的句子。

设计稿说明:以下界面依据项目文档与功能描述重建,用于表达交互结构与信息层级; 面板中的指标取自项目可验证结果,可回到七段式页面逐项核对口径。

enterprise-rag-workbench 检索 · 证据 · 生成

检索源

  • 语义检索 top 6
  • 词法检索 top 6
  • 网页检索 top 4
  • 知识图谱 top 3
  • FAQ 库 top 2
五路结果经 RRF 融合重排;权重经 5 次重建索引验证稳定在 6 文档 / 6 分块 / 1 FAQ。

证据(3)

合同条款中关于违约金的约定比例

contract-2024chunk-070.82

↳ 已引用 [1]

违约金上限的司法解释与调整规则

law-refchunk-120.77

↳ 已引用 [2]

内部 FAQ:违约金减免的审批流程

faqitem-030.61

↳ 未引用(低于引用阈值)

答案

合同约定违约金为合同总额的 10%,司法实践中超过实际损失 30% 的部分可请求调整[1][2]。

证据:contract-2024#chunk-07 · law-ref#chunk-12

置信度低于阈值时返回「未找到可靠依据」,不生成看起来像样的猜测。
17 / 17端到端验收 · 518.16 ms
历史记录 65 / 65站内回归记录 · 非本轮实跑
93%代码覆盖率
34.53 ms路由 50 次 P95
25.45 ms8 并发 ×40 就绪 P95
◆

Highlights

四个界面上的硬约束

这些不是偏好,是写进验收的条件——界面做不到就算没做完。

答案必须能点到出处

每句事实陈述后面挂证据脚注,点开能看到文档名、分块编号与融合分值。没有证据的句子不进答案区。

代价:答案变短,但可核查

拒答是一等界面状态

低置信度时不返回猜测,界面直接显示「未找到可靠依据」并列出最接近的证据,让用户自己判断。

代价:体验不如「有问必答」顺滑

检索过程可见

五路各自的命中数与融合后的重排结果都在界面上,不是为了好看,是为了出问题时能定位是哪一路失效。

代价:界面信息密度更高

质量做成门禁而非提示

指标不达标直接阻断发布流程,界面只展示门禁结果;不把「建议优化」当交付标准。

代价:迭代节奏被质量卡住

◆

Detail

两个决定界面形态的判断

为什么是五路并行,不是单一路

口语化提问在纯语义检索上召回明显偏低,条款型提问又反过来。单一路总有一类问题答不好。

  • 语义 / 词法 / 网页 / 知识图谱 / FAQ 各自覆盖不同提问形态
  • 融合权重需要调试,重建索引 5 次才敢定下来
  • 界面因此必须暴露「哪一路命中」,否则无法诊断
检索诊断recall by source

各路命中(同一提问)

语义6
词法4
网页2
知识图谱3
FAQ1
条形为示意;融合后进入证据区的为 6 文档 / 6 分块 / 1 FAQ。

为什么默认模型做成确定性替身

确定性替身验证路由、状态与编排。真实模型需要固定评测集和统计判定;不能把 mock 延迟或通过率当作生产效果。

  • 验收与压测跑在确定性替身上,结果可复现
  • 延迟数据因此对生产不具代表性——自述里显式标为已知边界
  • 换真模型时不改链路,只换模型适配器
评测面板offline → full LLM

独立智能座舱实验 · 不同配置分别报告

0.3619token_f1 · 离线
0.7275token_f1 · 全 LLM
1.0000faithfulness · 离线
0.9722faithfulness · 全 LLM
离线用确定性词法代理,全 LLM 用 LLM 判官——两个数不可直接比较,界面上并列但不计算差值。
◆

Boundary

界面上明确不做的事

不隐藏检索失败

某一路检索超时或为空,界面照常显示,不用别的路的结果凑数。

空就是空

不把置信度做成装饰

分值显示在证据卡上,用户能自己判断这条证据值不值得信,而不是只给一个「高 / 中 / 低」。

数字优先于形容词

不承诺生产性能

压测跑在确定性替身上,界面上的延迟数字标注为链路指标,不作为生产 SLA 展示。

边界写在界面里