本文分享如何快速搭建本地 DeepSeek 相关的 RAG 应用。因告警信息敏感且多变,选择 Ollama 本地部署 DeepSeek – R1 大模型,以保障数据安全。同时使用 AnythingLLM 实现 RAG,避免手动搭建的复杂过程。文中详细介绍 Ollama 安装、模型下载运行,以及 AnythingLLM 配置、RAG 概念及实现步骤。通过添加告警知识库实例,展示应用效果。最后指出 AI 生态成熟,掌握 AI 应用将成基本要求。

在当下这个AI蓬勃发展的时代,不少技术爱好者都渴望在本地搭建功能强大的大模型应用。今天,就来和大家详细分享一下如何快速搭建基于DeepSeek的本地RAG应用,无论是对于学习研究,还是实际工作中的一些特定场景,都非常实用。

一、前言

深度求索开源的DeepSeek-R1推理模型性能相当出色,已经能够对标OpenAI-o1正式版。我当时正好大年初四值班处理告警,就突发奇想,能不能借助DeepSeek-R1来识别告警,并且结合同事们之前处理告警的记录,给出合理的处置建议呢?

但告警信息属于公司机密数据,肯定不能直接调用deepseek-reasoner的API。而且随着业务需求的开发,告警信息会不断增多,相同的告警也可能有不同的处置方式,所以需要大模型能随时扩充“告警知识库”。思来想去,最终确定了实现方案:一是进行大模型本地部署;二是基于RAG实现告警信息检索增强。

在本地部署大模型的众多方式中,像LM Studio和Ollama都能轻松实现。不过LM Studio没有开源,从数据安全角度考虑,我选择了Ollama。而RAG的实现,如果自己手动搭建一套系统,难度实在太大,所以我选用了AnythingLLM,它能让我们傻瓜式地实现RAG 。最终,本文将基于Ollama + AnythingLLM + DeepSeek-R1来打造告警信息处理的RAG应用。考虑到是入门教程,AnythingLLM选择桌面版,全程零代码开发,操作十分简单。

二、基于Ollama本地部署DeepSeek-R1

Ollama堪称一款宝藏开源大模型“管理底座”,主要用于解决AI大模型在本地的硬件配置和环境搭建难题。就算你不是AI专业人士,也能借助Ollama快速完成大模型的下载和部署。它还对外暴露统一协议的API,方便我们在本地搭建大模型应用,不管是学习场景还是生产环境,Ollama都是本地部署大模型的首选。

Ollama的官网是 ollama.com,无需特殊网络工具就能访问,下载速度也很快。进入官网后,点击Download就能完成下载与安装。安装完成后,本地默认是没有大模型的,我们需要去下载。Ollama支持的大模型可以在官网左上角的Models里查询。

我们找到DeepSeek-R1模型,它有不同的参数量可供选择,除了671B参数量的模型,其它模型都是基于DeepSeek-R1蒸馏出来的小模型,在基准测试中性能都很出色。大家可以根据自己电脑显卡的显存情况来决定使用哪种参数量的模型,这里我选择8B参数量的模型。

选定模型后,打开对应操作系统的终端,执行下面这条指令就能用Ollama运行模型:

ollama run deepseek-r1:8b 

如果是第一次执行这个指令,Ollama会先帮我们下载模型,然后再运行。需要注意的是,在Windows操作系统下,模型默认下载到C盘,所以大家要留意一下C盘的剩余空间。模型下载好后,就可以开始和模型聊天啦。

Ollama把模型加载到内存中后,默认会保持5分钟。要是你想立即把模型从内存中卸载,可以使用下面这条命令:

ollama stop deepseek-r1:8b 

如果在使用Ollama的过程中遇到问题,可以查看FAQ,基本常见问题都能找到解决办法。Ollama监听在本地的11434端口,相应的API也是通过这个端口暴露出来的。后续我们还能基于SpringAI等框架,方便地调用Ollama的接口,去实现自己的大模型应用。

三、基于AnythingLLM实现RAG

借助Ollama在本地把DeepSeek-R1跑起来后,我们就具备了通过本地11434端口调用大模型接口的能力,实现RAG的条件也成熟了。在大模型框架如此成熟的今天,我们不用重复造轮子,直接选用现成的框架即可,这里我选的是AnythingLLM。在动手实践之前,我们先来了解一下什么是RAG。

RAG,也就是Retrieval Augmented Generation,中文叫检索增强生成。简单来说,我们向大模型提问时,问题是作为Prompt提示词给到它的。而RAG就是基于我们的提问,在提前准备好的数据库里搜索相关信息,把这些信息注入到提问中,生成更完备的Prompt再给大模型。这样大模型在推理时,数据库里搜索到的信息就能作为辅助,帮助它给出更准确的答案。如下是RAG的通用架构图,结合RAG的通用架构图,一眼就能理解RAG了。

(一)RAG的实现步骤

  1. 数据准备阶段
    • 首先,知识库要通过Embedding Model完成向量化。比如可以选择ChatGPT-Embedding或M3E等Embedding模型,将知识库(文本数据)转化为语义向量。
    • 接着,把向量化后的数据存储到向量数据库。像Pinecone或LanceDB等向量数据库,都能用来存储语义向量,这样就构建好了向量知识库。
  2. 数据检索阶段
    • 先使用选定的Embedding模型将提问信息转变为查询向量。
    • 然后基于一种或多种检索方式在向量数据库中检索与提问信息相关的信息。
  3. 模型推理阶段
    把检索得到的信息和提问信息合并,生成Prompt。此时的Prompt至少包含背景信息(从向量数据库中检索得到的信息)和提问信息,大模型结合这些背景信息进行推理,给出的回答就会更加符合预期。

(二)使用AnythingLLM构建RAG应用

AnythingLLM是一个非常强大的工具,它可以在本地创建AI知识库,还能打造属于自己的Agent,是一款All-In-One的AI应用程序,对新手特别友好。

1)下载并安装AnythingLLM:大家注意要选择下载桌面版。相比Ollama,AnythingLLM的下载速度会慢一些,安装时还会安装向量数据库等,所以整个下载加安装的过程可能需要几个小时,大家耐心等待即可。安装完成后首次打开,会有引导界面,随便选就行,后续在设置中还能重新选择。

2)配置大模型和向量数据库:打开AnythingLLM后,在界面左下角找到设置选项。在【人工智能提供商-LLM首选项】中,把大模型配置为基于Ollama本地部署的DeepSeek-R1模型,具体参数设置如下:

    • Ollama Model:选择deepseek-r1.8b
    • Max Tokens:设置为4096
    • Ollama Base URL:填写http://127.0.0.1:11434
    • Ollama Keep Alive:保持默认的5 minutes
    • Performance Mode:选择Base (Default)

在【人工智能提供商-向量数据库】里,将向量数据库配置为LanceDB,LanceDB不需要额外配置。

3)创建Workspace:点击【新工作区】创建一个Workspace,它是我们配置知识库的最小单元,还能单独针对Workspace配置大模型和向量数据库。因为之前已经配置好了全局设置,这里就直接使用默认的全局配置。

4)创建一个Thread开启聊天:开始聊天前,需要先创建一个Thread,这里我们就用默认的default Thread。

 

假设我们要处理的告警关键数据如下:

告警编码:RECEIPT-TO-TRADE-ERROR-01 告警描述:回执通知交易模块超时 集群:交易集群 发生时间:2025-01-30 20:30:00 

如果直接用下面这个Prompt问大模型:

你是一个精通告警分析和处理的运维专家,现在发生了告警,<告警编码>是RECEIPT-TO-TRADE-ERROR-01,请你结合运维经验,言简意赅的告诉我应该如何处理这条告警,你的返回数据应该遵循如下格式,其中<是否有效>的参数类型是布尔值。 { "alarmCode": "<告警编码>", "alarmMessage": "<告警描述>", "handleSuggestion": "<处置建议>", "effective": <是否有效> } 

测试下大模型的回答如下:

大模型的回答可能不尽人意,因为组内告警属于私域化信息,基座大模型没有相关训练数据。这时候,我们就需要用到RAG。

5)为Workspace添加知识库:通常组内每周值班人员会把发生的告警信息记录在在线文档中。为Workspace添加知识库时,只要把在线文档的网页地址给到AnythingLLM,它会将对应地址的HTML文件向量化并添加到向量数据库中。除了网页地址,还能通过指定txt文本、csv文件或音频文件等添加知识库。

添加时,点击Workspace的上传按钮打开添加页面,可以上传文件,也能指定网页地址。

添加页面如下所示:

成功添加的内容会出现在My Documents栏目中,选中这些内容,点击Move to Workspace就能加入当前Workspace,最后点击Save and Embed即可将选中内容向量化。

假设我添加的docx文件里有如下内容:

告警编码告警描述处置建议是否有效
RECEIPT-TO-TRADE-ERROR-01回执通知交易模块超时联系网络管理员协助排查有效
RECEIPT-TO-TRADE-ERROR-02回执通知交易模块失败联系交易值班人员协助排查有效

此时再用相同的Prompt询问大模型,得到的答案就靠谱多了。而且随着告警信息不断丰富,我们还能持续调整Prompt进行优化,大模型给出的告警处置建议也会越来越准确。

四、总结

本地部署DeepSeek-R1依靠大模型管理底座应用Ollama,只要是Ollama支持的大模型,都能一键安装和部署,非常方便。而实现RAG则可以借助AnythingLLM,只需要配置好大模型和向量数据库这两步,就能轻松实现。

如今AI生态逐渐成熟,在未来,掌握如何使用AI和应用AI,或许就像研发人员掌握数据库和消息中间件一样,会成为一项基本技能。以上就是手把手教你如何快速搭建DeepSeek本地RAG应用的全部内容,你学会了吗?