跳转到内容

09 RAG:让模型使用外部资料

  • 理解 RAG 不是简单塞全文。
  • 会实现最小检索问答流程。
  • 知道召回、重排和上下文拼接各自负责什么。

模型参数里不可能包含所有最新资料。RAG 的做法是先从外部知识库找相关片段,再把片段放进 prompt,让模型基于资料回答。

Document
↓ chunk
Chunks
↓ embedding / lexical index
Retrieve
↓ rerank
Context
↓ prompt
LLM answer

LangChain RAG From Scratch 从切分、检索、生成逐步构建 RAG。LlamaIndex 展示了更完整的数据连接和索引工程。

源码:labs/09-rag/index.mjs

这个实验使用 TF-IDF 风格检索复现 RAG 数据流。

运行:

Terminal window
npm run lab:09

实验使用 TF-IDF 风格检索,而不是向量模型。这样可以先理解 RAG 数据流,不被模型 API 和向量库细节挡住。

  • 召回到错误资料,生成再强也会答错。
  • chunk 太短会丢上下文,太长会污染召回。
  • RAG 需要评测集,否则很难知道改动是否变好。