AI大模型(三)基于Deepseek搭建本地RAG私人知识库全面攻略

AI大模型(三)基于Deepseek搭建本地RAG私人知识库全面攻略

DeepSeek开源大模型在榜单上以黑马之姿横扫多项评测,其社区热度指数暴涨、一跃成为近期内影响力最高的话题,这个来自中国团队的模型向世界证明:让每个普通人都能拥有媲美GPT-4o的智能体,不再是硅谷巨头的专利。随着DeepSeek的爆火和出圈、以及社区的完善和上手门槛的降低,AI大模型与普通人的距离也越来越近,对AI大模型的使用在未来很可能会成为一项主流的工作技能。基于此,本系列文章将以DeepSeek为例,从本地大模型部署、可视化服务UI、本地知识库搭建、大模型部署调优、破除大模型限制以及角色定制、酒馆使用等方面进行保姆级教学(陆续更新中…),让你轻松玩转大模型,享受大模型带来的便利与乐趣。

在这里插入图片描述

在本文开始之前,我们先简单回顾下上篇文章的内容,在上篇文章中我们详细介绍了基于 DeepSeek 本地搭建可视化交互UI的三种方式:Open WebUI、Chatbox AI和Page Assist插件。在本篇文章中,我们将进一步基于Deepseek搭建本地RAG私人知识库,让AI大模型帮你管理文档、数据、资料等知识内容,使其回答更加精确且贴合需求、成为真正意义上更加定制化的助手。除此之外,我们还将对知识库实现的关键—检索增强生成(RAG)技术的核心原理进行介绍,知其然知其所以然。

一. 知识库搭建方法

在搭建定制化本地个人知识库时,除了提供DeepSeek大模型外,我们还需要实现知识库及其与大模型的关联,目前行业中已经有多种主流的知识库实现框架及应用,包括AnythingLLM、Dify、MaxKB、FastGPT、CherryStudio等,它们在功能丰富性、知识库能力、部署方式等方面各有优缺点,本文将以AnythingLLM为例进行知识库搭建与部署,其他方式大家可以自行探索。

1. 安装AnythingLLM

AnythingLLM 官网: https://anythingllm.com/

AnythingLLM Github: https://github.com/Mintplex-Labs/anything-llm

1.1 官网下载与安装

在这里插入图片描述

在 AnythingLLM 官网选择本机系统对应的下载方式(此处以Windows为例),点击下载完成后,双击安装包即可执行AnythingLLM客户端的安装过程(此处可以修改安装路径),等待安装完成后会自动生成桌面快捷方式,双击打开即可进入主界面的引导页如下:

在这里插入图片描述

1.2 安装报错问题

在安装过程中需要注意可能会出现以下 Error 报错问题: 这个错误的意思是 无法下载 LocalLLM 相关的依赖库(访问被禁止 403),但其他所有提供程序均可正常使用

在这里插入图片描述

AnythingLLM 客户端包含一个通过内置 Ollama 提供支持的默认本地 LLM 模型,这是一种无需任何额外设置即可开始使用 LLM 的超级便捷方式,因此在安装 AnythingLLM 客户端时会尝试自动下载并安装 LocalLLM 及其相关的依赖库,并且这些额外的依赖项可以让该本地 LLM 模型使用本机上的 GPU(NVIDIA 或 AMD)甚至 NPU,如果未安装这些额外的依赖项,本地 LLM 模型的性能会降低(将被限制仅使用 CPU 处理)。这里有两种解决方法:

  • 手动下载: 依赖项包地址(需要魔法) https://cdn.anythingllm.com/support/0.5.4/ollama/win32_lib.zip,将其下载并解压到 AnythingLLM 安装目录下的ollama文件夹下即可;
  • 使用本地模型: 不使用AnythingLLM提供的内置LocalLLM模型就可以不用关心该问题(直接忽略),后面直接在 AnythingLLM 中选择使用本地的 Ollama 提供模型服务即可;

2. 配置 AnythingLLM

打开 AnythingLLM 客户端后,在引导页面中我们首先需要选择模型提供商(LLM providers),这里我们就选择Ollama以及之前部署在本地Ollama中的deepseek-r1:7b模型。

在这里插入图片描述

点击下一步后进入信息提示页,可以看到AnythingLLM的三大核心组件即LLM(大语言模型)、Embedding(嵌入模型) 和 Vector Database(向量数据库),这里直接点击下一步即可(后续配置都是可修改的)。

在这里插入图片描述

接着这一页面主要是信息调研相关,可以直接点击下方Skip Survey按钮跳过:

在这里插入图片描述

然后需要创建工作区,AnythingLLM 中可以创建多个工作区,每个工作区内可以包含多个对话,工作区之间是相互独立的(包括模型、配置和知识库等),这里我们先随便创建一个即可。

在这里插入图片描述

然后就进入了 AnythingLLM 的主界面,工作区之间是相互独立的,注意对每个工作区需要重新配置如下(否则用的模型是AnythingLLM默认的本地LLM),更新完一定要再点击一下下方的Update workspace按钮更新工作区设置才能生效。

在这里插入图片描述

在这里插入图片描述

3. 配置RAG知识库

在配置RAG知识库时,我们需要配置三个核心组件即大语言模型(LLM)、嵌入模型(Embedding)和向量数据库(Vector Database),其中LLM大模型我们选择之前Ollama中部署的deepseek-r1:7b即可,那么嵌入模型(Embedding)和向量数据库(Vector Database)的概念如下:

  • 嵌入模型(Embedding): 用于将上传的文件等知识库数据进行向量化的模型,将自然数据嵌入到向量维度。它提供了一种将文本数据转化为计算机可以理解和处理的形式,同时保留了词语之间的语义关系;
  • 向量数据库(Vector Database): 用于存储、检索和查询文本嵌入模型进行向量化后的向量数据,在构建知识库过程中主要起到数据存储的作用;

3.1 配置嵌入模型

嵌入模型可以在Ollama提供的模型仓库中进行下载,这里推荐使用nomic-embed-text模型或者bge-m3模型,二者的区别如下(本文将选择bge-m3为例进行部署):

在这里插入图片描述

在Ollama官网的模型仓库中搜索bge-m3并复制获取命令,然后在本地命令窗口中执行(需本地已安装Ollama,没安装的可以看我之前的教程),然后等待下载完成即可。

在这里插入图片描述

下载完成后,在 AnythingLLM 左下角的设置 - Embedder 首选项,将嵌入模型的提供商改为Ollama并在模型中选择bge-m3,如果没找到请使用ollama list查看模型是否下载成功。

在这里插入图片描述

3.2 配置向量数据库

这里使用 AnythingLLM 默认内置的 LanceDB 即可,如果选择其他的向量数据库则需要配置对应数据库的地址、 API Key等进行外部连接信息,不同的向量数据库将会影响存储大小、检索速度、查询效果等。

在这里插入图片描述

4. 使用RAG知识库

在使用RAG数据库之前,我们需要先上传文件、数据等知识库内容,并保存到向量数据库中。这里的操作步骤是先在 AnythingLLM 的工作区上点击上传按钮,并上传需要管理的文件(支持多种文件格式)或爬取网络链接。

在这里插入图片描述

在这里插入图片描述

上传完成后,选中需要保存的文件项,并点击下方的Move to Workspace按钮将其移动到右侧工作区并保存向量化(否则上传内容不会被大模型所感知)。

在这里插入图片描述

在这里插入图片描述

那么最后,就可以在工作区中创建对话,并针对文档内容进行提问使用了,可以看到模型在回答时会结合知识库内容综合进行回答,并展示所引用的文件项。

在这里插入图片描述

除此之外,我们还可以在工作区设置中,更换查询模式来增强文档来源的权重,以及设置提示模板、温度等参数让大模型更加智能和准确,对于大模型的调优、破限、角色定制等更多好玩的内容我们将在下篇文章中继续进行详细介绍,请大家多多关注!

在这里插入图片描述

在这里插入图片描述

二. RAG技术作用原理

在使用大模型的过程中,我们发现大语言模型本身具有一定的局限性:

  • 时效性: 大模型训练所使用的数据集都不是实时的,这意味着在该时间点之后所出现的数据更新都不会反映在模型中,并且大模型的训练均涉及庞大的计算资源和时间,因此频繁更新模型也是不现实的;
  • 全面性: 大模型的训练数据集可能无法覆盖所有领域的知识与深度,尤其是在某些专业领域或非公开私有知识库中,这将使得大模型在回答相关问题时缺乏逻辑和可信度;

基于上述局限,大模型在处理某些问题时可能就会生成虚假信息,在用户看来其回答可能就像是答非所问、回答错误或内容空泛,这就是我们常说的模型幻觉问题,要解决模型幻觉,RAG的提出就是一种较好的解决方案。

检索增强生成(Retrieval-augmented Generation,RAG) 是一种结合检索和生成技术的模型,也是大模型研究的前沿方向之一,上述利用大模型搭建知识库的过程就是RAG技术的应用。 RAG的核心思想是通过检索和引用外部大规模数据集合中的相关信息,并利用这些信息来指导答案或内容的生成,这使得结果具有较强的可解释性和定制能力,从而提高预测的质量和准确性,从而避免模型幻觉问题的出现,解决模型训练过程中的局限性。其作用原理如下(图源 @akshay_pachaar):

在这里插入图片描述

  • 数据加载与分块(Custom knowledge and Chunks): 数据集合是RAG的核心基础,可以通过多种工具从不同来源加载各种数据,这可以表现为结构化数据或非结构化数据(文件、图片、音视频等),甚至可能是两者兼具的综合形式。接着,通过分块技术将加载的大输入文本有策略的分解成小数据块,确保所有输入能够适应嵌入模型的限制大小并提高检索效率;
  • 向量嵌入与嵌入模型(Embeddings and Embedding Model:): 通过嵌入模型将多模态数据(文本、图片、音频等)表示为数值向量,使其能够输入到大模型中;
  • 向量数据库(Vector Databases): 向量数据库是一类特殊的数据库(Database),其表示一组预先计算的数据矢量,用于实现持久化存储、快速检索和相似性搜索,具有 CRUD 操作、元数据过滤和水平扩展等功能;
  • 提示词模板(Prompt Template): 提示词模板的内容将作为输入提供给LLM以产生最终响应结果,其包含用户查询和自定义知识库中搜索到的相似检索作为上下文,以共同指导大模型生成更加准确的内容;
<think>好的,我现在需要帮助用户解决关于MaxKB界面使用教程或错误排查的问题。首先,我需要了解用户提到的MaxKB是什么。根据引用[1]和引用[3],MaxKB似乎是一个与RAGAI工作流相关的知识库系统,可能用于大模型应用的管理和部署。用户需要的是使用教程或错误排查的指导。 接下来,我需要检查用户提供的引用内容,看看是否有直接相关的信息。引用[2]提到了应用概览页面的操作,包括演示、启用/禁用链接、嵌入第方和API Key管理。这可能与MaxKB的界面操作有关。此外,引用[3]中的链接可能有帮助,比如maxkb.cn,但用户无法直接访问外部链接,所以需要依赖现有引用中的信息。 用户的问题分为两部分:使用教程和错误排查。我需要根据现有信息组织回答。首先,使用教程可能需要描述界面布局、主要功能模块和基本操作步骤。引用[2]提到的应用概览页面操作可以作为参考,比如如何进入应用概览、管理访问链接和API Key。 对于错误排查,可能需要列出常见问题,如界面加载失败、API连接问题、配置错误等,并提供解决方法。如果引用中没有明确的错误处理步骤,可能需要根据一般知识库系统的常见问题给出建议,例如检查网络连接、验证API Key、查看日志等。 需要注意的是,回答必须使用中文,并遵循格式要求:行内公式用$...$,独立公式用$$...$$,但这里可能不太涉及数学公式。确保LaTeX语法正确,但问题主要涉及界面操作,可能用不上数学表达式。 另外,用户引用的内容有限,可能需要补充一般性的建议,同时注明引用来源。例如,引用[2]提到应用概览页面的操作,可以用于说明如何管理应用。引用[3]中的maxkb.cn可能指向官方网站,但无法直接链接,所以建议用户查阅官方文档。 在生成相关问题部分,需要围绕MaxKB的界面使用和故障排除提出相关问题,如如何创建应用、如何生成API Key、如何处理界面卡顿等。 最后,确保回答结构清晰,分步骤说明,并标注引用。需要避免使用Markdown格式,使用自然的中文段落,并正确引用来源。</think>以下为MaxKB界面使用教程及常见错误排查的详细说明: ### 一、MaxKB界面使用教程 1. **应用概览页面** - 进入路径:在应用列表页面点击应用面板[^2] - 核心功能: * 演示模式:实时预览知识库效果 * 访问控制:启用/禁用公开链接,重新生成访问密钥 * 第方嵌入:支持将知识库嵌入网站或APP * API管理:查看和管理接口调用凭证 2. **知识库配置流程** - 新建知识库:通过「+创建」按钮建立索引库 - 数据上传: * 支持PDF/TXT/Markdown格式 * 文件大小建议不超过20MB(依据行业通用标准) - 模型绑定:关联预训练大模型进行语义理解 3. **对话测试模块** - 内置交互式测试窗口 - 可调节temperature参数($0.1 \leq t \leq 1.0$)控制生成随机性 ### 二、常见错误排查 | 问题现象 | 解决方案 | 关联引用 | |---------|---------|---------| | 界面加载失败 | 1. 检查网络连接<br>2. 清除浏览器缓存<br>3. 确认使用Chrome 100+或Edge 105+ | [^3] | | API调用错误 | 1. 验证API Key有效性<br>2. 检查配额限制<br>3. 确认终结点URL正确性 | [^2] | | 文件解析失败 | 1. 检查文件编码(建议UTF-8)<br>2. 移除特殊字符<br>3. 分片上传大文件 | [^1] | | 响应延迟高 | 1. 降低temperature值<br>2. 设置max_tokens限制<br>3. 检查模型负载状态 | ### 、高级技巧 1. 使用$$ \text{相似度阈值} = \frac{\text{匹配段落数}}{\text{总段落数}} \times 100\% $$公式调整检索精度 2. 通过「调试模式」查看RAG工作流中间结果[^1] 3. 利用「版本回溯」功能恢复误操作前的配置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿阿阿安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值