Skip to content
进阶阅读时长 18 分钟·

用 RAG 打造基于知识库的问答系统

大模型不知道你私有的、最新的资料,还容易产生幻觉。RAG(检索增强生成)通过“先检索、再生成”,让模型基于可靠的知识库作答,是目前最实用的落地方案之一。

作者:AI Resource Hub

为什么需要 RAG

直接微调模型来注入知识成本高、更新慢。RAG 把知识放在外部数据库里,回答时临时检索相关片段喂给模型,既便宜又能随时更新。

构建流程概览

一个典型的 RAG 系统分两个阶段:离线的“索引阶段”把文档处理成可检索的向量;在线的“查询阶段”根据用户问题检索并生成答案。

文档切分与 Embedding

先把文档切成合适大小的片段(chunk),过大检索不精准,过小又丢失上下文,常见做法是几百 token 并保留一定重叠。

再用 Embedding 模型把每个片段转成向量,存入向量数据库(如 pgvector、Milvus、Qdrant 等)。

向量检索与 Top-K

用户提问时,把问题也转成向量,在数据库里做相似度检索,取出最相关的若干片段(Top-K)。

可以结合关键词检索做“混合检索”,并用重排序(Rerank)进一步提升召回质量。

拼接上下文并生成答案

把检索到的片段拼进提示词,并要求模型“仅依据提供的资料回答,若资料中没有则如实说明”,能显著减少幻觉。

进阶优化包括:查询改写、引用出处、控制上下文长度,以及对检索结果做去重与过滤。

RAG向量数据库Embedding知识库

相关教程