1.什么是 RAG
RAG,即检索增强生成(Retrieval-Augmented Generation),是一种先进的自然语言处理技术架构,它旨在克服传统大型语言模型(LLMs)在处理开放域问题时的信息容量限制和时效性不足。RAG的核心机制融合了信息检索系统的精确性和语言模型的强大生成能力,为基于自然语言的任务提供了更为灵活和精准的解决方案。
2.RAG与LLM的关系
RAG不是对LLM的替代,而是对其能力的扩展与升级。传统LLM受限于训练数据的边界,对于未见信息或快速变化的知识难以有效处理。RAG通过动态接入外部资源,使LLM得以即时访问和利用广泛且不断更新的知识库,进而提升模型在问答、对话、文本生成等任务中的表现。此外,RAG框架强调了模型的灵活性和适应性,允许开发者针对不同应用场景定制知识库,从而满足特定领域的需求。
RAG就像是为大型语言模型(LLM)配备了一个即时查询的“超级知识库”。这个“外挂”不仅扩大了模型的知识覆盖范围,还提高了其回答特定领域问题的准确性和时效性。
想象一下,传统的LLM像是一个博学多才但记忆力有限的学者,它依赖于训练时吸收的信息来回答问题。而RAG,则是这位学者随时可以连线的庞大图书馆和实时资讯网络。当面临复杂或最新的查询时,RAG能让模型即时搜索并引用这些外部资源,就像学者翻阅最新的研究资料或在线数据库一样,从而提供更加精准、全面和最新的答案。这种设计尤其适用于需要高度专业化或快速更新信息的场景,比如医学咨询、法律意见、新闻摘要等。
基于此,RAG 技术特别适合用来做个人或企业的本地知识库应用,利用现有知识库资料结合 LLM 的能力,针对特定领域知识的问题能够提供自然语言对话交互,且答案比单纯用 LLM 准确性要高得多。
3.实战
3.1.windows环境安装部署deepseek模型
参考文档 手把手教你本地部署DeepSeek(windows环境
3.2. windows环境安装部署AnythingLLM
- 下载地址 选择对应的 windows版本
- 完成安装后大概是这个样子,每次启动会比较慢,耐心等待.....
-
在AnythingLLM界面中选择 Ollama,并选择deepseek模型
在 Base URL中填:http://127.0.0.1:11434
模型选择之前下载的 deepseek模型
Token context window 可以先用默认的 4096
3.3. 利用本地文档搭建,本地文档库
- AnythingLLM界面,选择新建工作空间。比如创建java必备技能“spring知识库”
- 搭建一个知识库,会涉及到另外两个关键:嵌入模型和向量数据库
Embedding Model,嵌入模型。它负责把高维度的数据转化为低维度的嵌入空间。这个数据处理过程在RAG中非常重要。
Vector Store,向量数据库,专门用来高效处理大规模向量数据。
下图中就是默认的嵌入模型以及向量数据库,我们先使用默认的。
-
在第一步创建工作空间中,上传本地文档,构建本地知识库。
(可以上传文件(支持多种格式 pdf word…),甚至是一个外部的网站链接,不太好的是它不能上传一个文件夹,如果你的文件夹是包含多级目录的,那么它无法识别,你需要把所有文件平铺放在同一级目录中再全选上传。)
上传文件列表如下:
你可以根据项目来创建Workspace,一个项目建一个。然后,把关于这个项目的所有文档、所有网页都导入Workspace。 聊天模式还有两种可以设置:
对话模式:大模型会根据你给的文档,以及它本来就有的知识储备,综合起来回答。
查询模式:大模型只是简单地针对文档进行回答。
- 创建结束后,我们默认选择对话模式,通过对话来获取本地知识库的知识
- 文档溯源,我们是可以通过回答的内容,来追溯到具体文档库文档的位置
至此,本地个人知识库就搭建完成了!