内部资料线 · 只查本库

一句话进来,走固定管线(改写 → 向量 + BM25 → RRF → 生成), 出去的是带引用的答案和各阶段真实耗时。 不联网,不调外部工具。

知识来源:本厂文档库| 注定查内部 —— 没有"要不要查"这个判断| 答案可点回原文
这一页为什么和「外部检索与工具Agent编排」分成两页

本系统的知识来源被有意分成两条独立的线:

线注定查什么编排
内部线(本页) 我们自己的文档库 —— 没有"要不要查"这个判断 固定管线(改写 → 向量+BM25 → RRF → 生成)
外部线 模型自身 + 记忆 + 通用工具(含联网)—— 不接本库 模型自主决定调不调工具、调哪个

分成两条线的原因:意图分流做不到 100% 准。判错一次,外部场景就会被内部资料污染, 而页面上看不出它判错了。与其赌分类,不如让每条线没有判断,也就没有判错。 ⇒ 所以本站不在一个页面上让你"选走哪条线",两条线各有各的页面。

本页还空着的位置⬜ 待补

「内部检索 + 编排合起来服务于一个固定业务流」的那种形态 —— 目前尚未实现(施工单已写、未开工)。这里先占位; 那个模块做完之后,会把具体内容回写到本节。

「链」展示列表:点击行首的切换按钮,下方左右两个面板将同步更新。
3POST /api/v1/rag/stream_search:流式输出 ⇒ 单独一页(这里放不下)· 点这一行过去
POST /api/v1/rag/search 就绪

预设问题取自本库的真实主题(售后与保修 / 备件调拨 / 上门作业 / 投诉升级)。

8

点一下会真调 POST /api/v1/rag/search(⛔ 不是本地模拟)。

阶段 accurate_norerank
1查询改写—
2检索(向量 + BM25 + RRF)—
3重排—

这三段是接口返回的 timing(真实毫秒)。 重排在 demo 上恒为 0 —— 镜像不装重排依赖(DEC-157)。
🔴 「生成答案」那一段【这里没有】 —— 实测 total_ms 只等于上面三段之和(它是检索管线的总时长,⛔ 不含生成)。 ⛔ 拿它倒推生成耗时会在页面上印出一个假的 0。本页只读,不改动任何数据。

answer—
answer还没有跑过。提问之后,这里出现带 [来源 n] 标记的答案。
⚠️ 「根据现有资料,无法回答。」也是一种正常返回 —— 那说明库里确实没有那条资料,⛔ 不是页面坏了。
引用 —
sources[]跑一次之后,这里逐条列出每条结论绑到的原文区间。
端点级(这一步打的是哪条接口)— 条 · 默认收起 · 点开 ▾
端点它做什么本环境
POST /rag/pg_search只走向量检索可用
POST /rag/hybrid_search向量 + BM25 + RRF可用
POST /rag/rewrite_search先让模型改写问题再检索可用
POST /rag/rerank_search交叉编码器重排缺重排模型
POST /rag/search本页用的那条(按 mode 组装)可用
两组参数并排对比默认收起 · 点开 ▾

配置 A · —

命中条数
—
引用 / 结论
—
端到端
—
本次费用
—

配置 B · —

命中条数
—
引用 / 结论
—
端到端
—
本次费用
—

🔴 点一次「提问」会跑【两次】:一次是你选的档(= 配置 A),另一次是最下面那档里【另一个可用档】(= 配置 B)—— 因为要真比出差异,就必须两个都真跑,⛔ 不能拿一次的结果编两次。
⚠️ 两次都按你当前那三个开关跑;generate_answer 打开时,两次都会花 LLM 的钱。
⛔ 两边一样的时候这个对比就是摆设 —— 真一样了它也会如实显示两边一样。

本次花费 / 我的额度默认收起 · 点开 ▾
本用户累计 LLM tokens
—
本用户累计 embedding tokens
—
本用户累计费用
—
今日剩余额度
—

⚠️ 缺值一律显示「取不到」,⛔ 不显示 0(0 会被读成"没花钱")。
前三格来自 GET /api/v1/agent/cost/records,按本页这次的 thread_id 筛 (那个端点⛔ 没有 thread 过滤,所以是在客户端筛最近一批)。第四格来自 token/budget。

检索历史(本会话)默认收起 · 点开 ▾
chat_history这一格读的是 GET /api/v1/rag/chat_history。
🔴 而本页用的那条接口【不写会话历史】 —— 全仓只有 6 条【流式】端点会写(persist_turn),非流式的 /rag/search 一行都不写。
⇒ 所以这里通常是空的,而那不是坏了:只有你在这个 thread_id 上用过流式接口,这里才会有东西。