1. 页面概览

RAG 配置页(路由 /admin/rag)是 AIP 管理后台面向管理员的 RAG(检索增强生成)链路配置台。它包含三块能力:通道配置(metadata/knowledge/history/fewshot 四通道的启用开关与权重,启用通道权重合计应约等于 100%,可自动归一化)、索引重建(按数据源或全量重建元数据向量索引,展示 data_source/items/indexed/failed/degraded/collection 真实字段 + 前端秒表等待反馈)、检索测试(内嵌 RagRetrievePage 复用检索交互)。用于调整 RAG 多路召回权重、维护索引与调试检索链路。所有请求走 aipClient/aip-api/v1 → AIP 18080),后端未就绪时优雅提示不白屏。

一句话总结:本页是 RAG 链路的「通道权重 + 索引维护 + 检索调试」控制台,四通道加权融合的入口在此配置。

2. 访问入口

3. 界面布局

+--------------------------------------------------------------+
| RAG 配置                                      [刷新]           |
| 通道配置(启用通道权重合计 X%):                                 |
|   表格:通道(label+name)|说明|启用(switch)|权重(%)[清零]        |
|   提示:权重精度 0.05(对应 5%)… [自动归一化] [保存配置]         |
| 索引重建:数据源[select](可选,为空则重建全部) [重建索引]        |
|   结果 chip:data_source | items | indexed | failed | degraded | collection |
|   (重建中按钮显示 spinner + 已用 Ns,防重复点击)                |
| 检索测试(调试 RAG 链路):内嵌 RagRetrievePage(embedded 模式) |
+--------------------------------------------------------------+

各板块职责:

4. 交互元素

控件位置含义与作用
刷新页面头部并行刷新通道配置与数据源下拉,加载中禁用
启用开关通道表格启用列勾选/取消通道启用,停用通道的权重输入禁用并强制清零
权重(%)输入通道表格权重列0-100 数字输入(step=5,对应精度 0.05),失焦时 clamp 到 0-100;旁有「清零」按钮
自动归一化通道卡片底部按启用通道把权重归一化到合计 100%(取整漂移修正到最后一个启用通道),成功提示「已按启用通道归一化权重(合计 100%)」
保存配置通道卡片底部校验至少启用一个通道;若启用权重合计与 100% 相差超 0.5%,confirm「是否先归一化为 100% 再保存?」,然后 PUT /rag/channels
重建索引索引重建卡片POST /rag/index/rebuild,可带 data_source_id;空选择为全量重建,结果展示 data_source/items/indexed/failed/degraded/collection重建为同步请求(后端无 task_id),按钮期间禁用并显示 spinner + 已用秒数,避免重复点击放大同步负载

次要控件:通道行内「清零」按钮;重建结果区 message 展示;内嵌检索测试页的交互见 RagRetrievePage。

重建无进度条(后端缺口,非前端遗漏):重建端点 POST /rag/index/rebuild同步接口——后端在同一请求内完成「清空索引 → 全量向量化 → 写入索引状态」后直接 ok(c, result) 返回结果对象(nlq/rag_handler.go:147-171),不返回 task_id、不提供进度查询,故无法做服务端进度条;前端仅以秒表给出等待时长反馈(重操作期间请勿重复点击)。平台虽已具备通用任务查询端点 GET /api/v1/tasks/:idplatform/task/rest.go:27-31,接线于 server/server.go:1001),但重建未任务化——真正进度条需后端先把重建改造为异步任务。

5. 后端关联

5.1 端点表

方法路径用途
GET/rag/channels通道配置列表(无记录落默认值),登录组(rag_handler.go:36-40
PUT/rag/channels更新通道启用与权重,body {channels:[{name,enabled,weight}]},admin 组(rag_handler.go:41-45,62-65
POST/rag/index/rebuild重建元数据索引,body 可带 data_source_id同步返回 {data_source,items,indexed,failed,degraded,collection},admin 组(rag_handler.go:44,147-171
POST/rag/retrieve检索(由内嵌 RagRetrievePage 使用),登录组(rag_handler.go:38

5.2 关键机制

6. 权限与安全

7. 常见问题与排错

8. 已知缺陷与边界

说明
通道不可增删四通道为固定枚举,页面仅可调整启用与权重
归一化取整权重归一化按百分比取整,末位通道吸收漂移,多次保存可能略有微差
重建无进度条(后端缺口,非前端遗漏)POST /rag/index/rebuild同步接口,后端在同一请求内跑完「清空 → 向量化 → 入库 → 写状态」后直接返回结果,无 task_id、无进度查询nlq/rag_handler.go:147-171),故无法做服务端进度条。平台通用任务端点 GET /api/v1/tasks/:id 已存在(platform/task/rest.go:27-31、接线 server/server.go:1001),但重建未任务化。前端已补 spinner + 已用秒数等待反馈(2026-09-13),真正进度条需后端先把重建改为异步任务
重建结果字段(已于 2026-09-13 修正)后端返回 {data_source,items,indexed,failed,degraded,collection}nlq/rag.go:1286-1293),item_count;此前前端误读 item_count 恒为空,现已改为真实字段展示
检索测试独立组件内嵌 RagRetrievePage(embedded 模式),与独立 /rag-test 页行为一致但不共享页面状态