回答生成与引用标注
公开教程 · 无需登录

回答生成与引用标注

问答并非让生成模型自由发挥。系统先对用户当前这句话执行本班混合检索,只有命中切片之后,才将这几段交给模型撰写简短回答。

1先检索,再生成

1 问题仅以最新一句发起检索
2 混合检索限定本班,取前 4 条
3 有切片连同编号一并交给模型
4 回答回答中以 [1] 指回出处

模型获得的是材料标题、切片序号与切片正文,而非向量分量。页面上展示的出处列表与回答中的 [1]、[2] 标注顺序一致。

用户本轮提问 历史对话附于其后 本班混合检索 取前 4 条 有切片 → 调用生成模型 回答中的 [1]、[2] 与出处列表顺序一致 无切片 → 不调用生成模型 返回固定文案,citations 为空
生成模型仅在已取得本班切片之后才被调用。天气、比分一类问题不会被模型以参数记忆勉强作答。

2无命中切片时不调用生成模型

混合检索无候选结果时,接口直接返回「资料中未找到相关内容」,citations 为空。此路径不访问对话网关,以避免模型凭借参数记忆将天气、比分一类的问题勉强作答。

此前若干轮对话可附于其后,便于连续追问。班级仍仅从会话读取。客户端注入的 system 消息会被丢弃。本课不实现流式输出。
传递给对话模块的输入 材料标题、切片序号、切片正文 用户最新一句提问 最多前 4 条,顺序对应 [1] [2] 此前若干轮对话附于其后 不传递给它的内容 向量分量与 Qdrant 原始点数据 其他班级的切片 客户端自行构造的 system 消息 无命中切片时,这一整块流程均不会发生
对话模块的输入由检索模块组装。它不得自行访问数据库或向量库检索其他材料。