09 RAG:让模型使用外部资料
- 理解 RAG 不是简单塞全文。
- 会实现最小检索问答流程。
- 知道召回、重排和上下文拼接各自负责什么。
模型参数里不可能包含所有最新资料。RAG 的做法是先从外部知识库找相关片段,再把片段放进 prompt,让模型基于资料回答。
Document↓ chunkChunks↓ embedding / lexical indexRetrieve↓ rerankContext↓ promptLLM answer参考项目里的对应实现思路
Section titled “参考项目里的对应实现思路”LangChain RAG From Scratch 从切分、检索、生成逐步构建 RAG。LlamaIndex 展示了更完整的数据连接和索引工程。
最小代码实验
Section titled “最小代码实验”这个实验使用 TF-IDF 风格检索复现 RAG 数据流。
运行命令与预期输出
Section titled “运行命令与预期输出”运行:
npm run lab:09实验使用 TF-IDF 风格检索,而不是向量模型。这样可以先理解 RAG 数据流,不被模型 API 和向量库细节挡住。
- 召回到错误资料,生成再强也会答错。
- chunk 太短会丢上下文,太长会污染召回。
- RAG 需要评测集,否则很难知道改动是否变好。