所有文章 > AI驱动 > 基于Ollama与AnythingLLM的DeepSeek-R1本地RAG应用实践
基于Ollama与AnythingLLM的DeepSeek-R1本地RAG应用实践

基于Ollama与AnythingLLM的DeepSeek-R1本地RAG应用实践

点击关注,与你共同成长!

image

由开源的推理模型在推理性能上已能对标正式版本。值班场景需要处理大量告警工单,借助实现智能告警处理:通过模型自动识别告警信息,并基于历史处置记录生成合理建议。由于告警数据涉及核心业务机密,直接调用云端API存在安全隐患。同时考虑到告警类型动态增加,且同类告警可能存在多种处置方案,最终确定以下技术路线:本地化部署模型:选择支持开源协议的Ollama框架,相较于闭源的LM Studio更符合数据管控要求;动态知识库构建:采用技术实现实时知识更新。具体实施方案如下:通过Ollama本地部署DeepSeek-R1推理模型;使用AnythingLLM桌面版搭建RAG系统,其零代码特性大幅降低实现门槛;建立历史,支持增量更新处置方案。未来计划通过提升系统稳定性。

image

一、基于Ollama的DeepSeek-R1本地部署实践

Ollama作为一款开源的大模型管理框架,为AI大模型的本地化部署提供了完整的解决方案。它主要解决了以下两个核心问题:硬件配置与环境搭建:Ollama通过预置的优化配置,自动适配不同硬件环境,简化了CUDA、依赖库等环境配置的复杂度。模型管理与服务部署:提供统一的模型管理接口,支持一键式模型下载与部署,极大降低了使用门槛。

image

Ollama的官网地址是官网,不需要魔法就能访问,下载速度也是一流,进入官网点击Download就能完成下载与安装,如下图所示。

image

具体安装可参考这篇推文:在本地电脑部署自己的 DeepSeek 大模型 AI:小白也能轻松上手

二、基于AnythingLLM的RAG实现

RAG(检索增强生成)在成功通过本地部署并开放端口服务后,我们已经具备了构建RAG(Retrieval Augmented Generation,检索增强生成)系统的基础能力。在当今成熟的大模型生态下,借助现有框架快速实现业务需求已成为主流开发范式。本文将基于AnythingLLM框架实现RAG功能。RAG(检索增强生成)是一种结合检索和生成的技术,它在用户提问时,先从预先准备的数据库中搜索相关信息,并将检索到的内容注入到大模型中,提供给大模型进行推理。这种方式相当于为大模型补充外部知识,使其在回答问题时能够参考更准确、相关的信息,从而提升回答的精准度和可靠性。

image

RAG结合提示词工程(Prompt Engineering)的工作流程,整体架构如下:

  • 训练数据 & 领域数据
    • 训练数据用于LLM(大模型)的预训练和微调,使其具备基本的推理和生成能力;
    • 领域数据被索引到知识库,为后续的查询提供外部信息支持。
  • 知识库 & 检索器
    • 用户查询被送入提示词工程,解析任务、查询和样本信息;
    • 检索器负责从知识库中搜索与查询相关的文档,获取辅助信息。
  • 增强提示词 & 生成
    • 搜索到的相关文档被注入到原始提示词中,形成一个更丰富、更完整的Prompt;
    • 经过增强的Prompt送入LLM,结合检索到的信息进行推理和生成。
  • 返回结果
    • LLM生成最终的回答,并返回给用户,实现更精准的问答效果。

以上就是对RAG概念的一个简单介绍。毋庸置疑,想要从零实现一个RAG框架,势必少不了一番折腾。幸运的是,如今已有现成的解决方案可供使用——接下来要介绍的AnythingLLM。简而言之,AnythingLLM是一款All-In-One的AI应用程序,支持在本地构建AI知识库,并打造属于自己的智能Agent,让RAG的实现变得更加轻松高效。

The all-in-one AI application. Any LLM, any document, any agent, fully private.

AnythingLLM支持的能力可以见Features,是绝对新手向友好的AI应用程序,强烈建议大家下载来体验一下。

使用AnythingLLM构建RAG应用,只需要选定使用的大模型并上传知识库就行了,下面我们就一起来实现下。

下载并安装AnythingLLM
image

请注意,建议选择下载桌面版,相比于Ollama,AnythingLLM的下载速度会更慢。此外,在安装过程中,系统会自动安装向量数据库等必要组件,因此下载和安装的时间通常以小时为单位,请耐心等待。安装完成后,首次打开时会有一个引导界面,随意选择即可,后续可以在设置中随时重新调整配置。

配置大模型和向量数据库
打开进入AnythingLLM后,在界面左下角打开设置。

image

在人工智能提供商-LLM首选项中配置大模型为基于Ollama本地部署的DeepSeek-R1模型。

image

在人工智能提供商-向量数据库中将向量数据库配置为LanceDB。

image

创建Workspace
点击新工作区创建一个Workspace。

image

Workspace是配置知识库的最小单元,支持独立配置大模型和向量数据库。若未进行单独配置,系统将默认使用全局设置,即人工智能提供商-LLM首选项和人工智能提供商-向量数据库中预设的大模型与向量数据库。由于全局配置已完成,此处无需对Workspace进行额外配置。

创建一个Thread开启聊天
开始聊天之前需要先创建一个Thread。

image

default是默认Thread。还记得本文要解决的问题是什么吗,就是我希望大模型可以根据上下文进行回答,假设我一条告警关键数据如下所示。那么此时我如果直接问大模型告警编码为APPLICATION-SECURITY-AUTHORIZATION-ERROR-098的告警,大模型肯定会开始自由发挥,例如我使用如下的Prompt。

大模型的回答如下。

image

可以明显观察到,即使是强大的大模型,在处理组内告警这类高度定制化的场景时,也会出现“一本正经地胡说八道”的现象。这是因为基座大模型的训练数据中并没有这些数据,针对这种情况,通常有两种解决方案:1. 人工标注数据;2. 使用知识库。在本方案中,我们选择了使用知识库。为Workspace添加知识库
在为Workspace添加知识库时,只需将在线文档的网页地址提供给AnythingLLM,系统会自动将对应地址的HTML文件向量化并存储到向量数据库中。除了网页地址,知识库的添加还支持多种文件格式,包括txt文本、csv文件以及音频文件等。点击Workspace中的以下按钮即可打开添加页面:

image

添加页面如下所示。

image

可以上传文件,也可以指定网页地址,成功添加的内容会出现在My Documents栏目中,选中My Documents栏目中的内容,点击Move to Workspace可以将添加的内容加入到当前Workspace中。我这里已经添加过了就不再添加了。最后点击开始向量化即可将选中内容向量化。我添加的文件如下表所示。以下是基于提供的告警信息和告警示例。告警编码是随机生成的,告警描述和处置建议根据常见的运维场景进行搭配。

告警编码 告警描述 处置建议 是否有效
NETWORK-LATENCY-001 网络延迟过高 检查网络设备状态,优化网络配置 有效
DISK-USAGE-002 磁盘使用率超过90% 清理磁盘空间或扩展磁盘容量 有效
CPU-OVERLOAD-003 CPU使用率持续超过80% 检查高负载进程,优化资源分配 有效

此时再使用相同Prompt询问大模型,得到的答案明显靠谱多了。

image

随着告警信息的越来越丰富,以及我们可以不断调整Prompt做优化,大模型最后给出的告警处置建议会越来越准确。

总结

以上介绍了基于Ollama和AnythingLLM构建RAG:

  • 模型部署通过Ollama实现DeepSeek-R1的一键式本地部署,其开箱即用的特性支持多种主流大模型;
  • RAG实现借助AnythingLLM框架,仅需配置大模型和向量数据库即可快速搭建RAG系统;
  • 生态价值降低AI应用开发门槛;支持私有化部署;提供可视化操作界面。

随着AI技术的普及,掌握AI工具的使用正在成为开发者的必备技能,其重要性不亚于传统中间件技术。本方案为小团队快速构建领域AI应用提供了可行路径,展现了AI技术落地的实际价值。

image

【Java】线程池梳理【OpenFeign】OpenFeign 简介和使用【计算机基础】原码、反码、补码详解以上,便是今天的分享,希望大家喜欢,觉得内容不错的,欢迎「分享」「赞」或者点击「在看」支持,谢谢各位。

原文转载自:https://mp.weixin.qq.com/s/cDs4OEwqWlSd-RXxEKFuwA

#你可能也喜欢这些API文章!