什么是RAG?
RAG是一种结合文档检索(Retrieval)与语言模型生成(Generation)的技术,它的核心思想是:先查资料,再作答。
RAG是"知识"和"大模型"的桥梁。
与传统LLM(Large language model,大型语言模型,如chartgpt)不同,RAG不完全依赖模型内部知识,而是将用户的问题与一个外部知识库结合,通过检索获取相关文档,再交由语言模型生成回答。
为什么会有RAG?
RAG的出现,是为了解决传统打语言模型(LLM)在真实应用中的三大痛点:
- 知识截止问题:LLM的知识固定在训练时的数据(如GPT-3.5截止到2021年),无法回答新的事实、最新的政策、技术文档更新等问题
- 幻觉(Hallucination):LLM可能编造事实,当模型遇到知识空白时,它会"自洽的胡说八道",表面看似合理,实则错误
- 无法访问私有知识:无法访问公司内部知识、专属文档、个人数据等非公开内容
RAG的优势
功能 | 说明 |
---|---|
外部知识接入 | 实时连接知识库,让模型不止靠记忆 |
提升问答可信度 | 基于真实内容作答,减少幻觉 |
支持复杂问答 | 多文档融合后,能支持长文档或跨文档问答 |
可快速迭代 | 只需要更新知识库,无需重复训练模型 |
企业智能化 | 支撑内部问答、助手、客服等应用场景 |
RAG的典型应用场景
- 客户服务助手
- 金融文档的自动文档
- 企业文档助手,客服机器人
- 医学指南、病例支持
RAG工作流程

如何搭建一个简单的RAG系统
工具选型(可用):
- 文档向量化:OpenAI Embedding API
- 向量数据库:FAISS
- 生成模型(选择已有模型):OpenAI GPT
- 框架推荐:LangChain、LlamIndex、Haystack
步骤概览:
- 文档预处理(切片、清洗)
- 文本向量化并存入数据库
- 接收用户问题 -> 转成向量 -> 检索相似片段
- 将检索内容 + 问题作为Prompt输出LLM生成回答

参考文章
- Code a simple RAG from scratch:https://huggingface.co/blog/ngxson/make-your-own-rag
下一步计划
搭建一个软考相关RAG系统。