五分钟搭建属于你的AI助手:Ollama+DeepSeek+AnythingLLM深度整合教程
作者简介
- 微信公众号:密码应用技术实战
- 博客园首页:https://www.cnblogs.com/informatics/
- GitHub地址:https://github.com/warm3snow
引言
随着人工智能的发展,大模型的应用越来越广泛,它们不仅能够理解自然语言,还能在特定领域内提供专业化的知识服务。为了满足个人或小型团队对于数据隐私保护的需求,本地部署大模型并搭建私有知识库成为了一种趋势。本文将介绍如何使用Ollama、DeepSeek和AnythingLLM来构建这样一个系统,使您能够在自己的计算机上运行强大的AI模型,并利用其进行高效的知识管理和智能问答。
本地部署大模型并搭建私有知识库的好处:
- 数据隐私和安全性:本地部署可以确保敏感数据不被上传到云端,降低数据泄露的风险,特别适合对数据保密有严格要求的企业和个人。
- 控制权:用户对自己的数据和模型有更大的控制权,可以根据需要进行定制和优化,而不依赖于第三方服务。
- 低延迟:本地运行模型可以减少网络延迟,提高响应速度,尤其在需要实时处理的应用场景中尤为重要。
- 离线访问:本地部署允许在没有互联网连接的情况下使用模型和数据,适合在网络不稳定或无法访问的环境中工作。
- 成本效益:长期来看,尤其是对于大规模使用,避免了云服务的持续费用,可能会降低总体拥有成本。
- 定制化:用户可以根据特定需求调整和优化模型,进行更深入的定制,满足特定行业或应用的需求。
- 合规性:某些行业(如医疗、金融等)对数据存储和处理有严格的法律法规要求,本地部署可以帮助企业更好地遵守这些规定。
通过本地部署,用户能够享受更高的灵活性和安全性,同时也能更好地满足特定的业务需求。
简介
本文将手把手教你用 Ollama、DeepSeek 与 AnythingLLM 搭建超强大本地知识库
DeepSeek:AI 领域的实力新星
DeepSeek专注于人工智能技术的研发,尤其在大语言模型方面成果显著。开源发布的DeepSeek R1模型,具备优秀的逻辑推理能力,能够处理复杂多样的自然语言任务。
Ollama:本地运行 AI 模型的利器
Ollama 是一款致力于让用户在本地轻松运行 AI 模型的工具。它提供了简洁易用的命令行界面,极大降低了本地部署模型的门槛。通过 Ollama,用户可以快速拉取并运行各种主流的大语言模型,无需复杂的配置和高昂的云计算成本。其高效的模型管理系统,能帮助用户方便地切换和使用不同模型,满足多样化的需求。
AnythingLLM:知识整合的智能助手
AnythingLLM专注于知识管理和问答系统,提供了桌面客户端,方便用户使用;能够从多种不同来源获取数据,包括但不限于文档、网页、数据库等,将这些分散的非结构化或半结构化数据进行有效整合,统一处理为可供分析和查询的格式,为知识的全面性和完整性提供了保障。,AnythingLLM 能够理解用户的问题,并在知识图谱中精准检索答案,为用户提供准确、全面的回答。
部署架构
Ollama+DeepSeek+AnythingLLM搭建本地知识库的整体架构如下:
%% 用户接口层
subgraph 用户接口层
UI1[AnythingLLM桌面应用]
end
%% 应用服务层
subgraph 应用服务层
AS1[AnythingLLM前端服务]
AS2[Ollama </br> 模型管理服务]
end
%% 数据处理层
subgraph 数据处理层
DP1[向量数据库<br>LanceDB, Pinecone等测试与优化]
DP2[嵌入模型<br>用于文本转换为向量]
end
%% 核心模型层
subgraph 核心模型层
CM1[DeepSeek R1<br>语言模型]
end
%% 外部资源层(可选)
subgraph 外部资源层/可选
ER1[外部APIs或其他服务]
end
%% 连接关系
UI1 -->|请求查询或上传文档| AS1
AS1 -->|调用模型推理| AS2
AS2 -->|加载模型| CM1
AS1 -->|查询| DP1
DP1 -->|检索相关文档片段| AS1
DP2 -->|生成文本向量| DP1
AS2 -.->|可能需要的外部数据| ER1
%% 注释
style UI1 fill:#f96,stroke:#333,stroke-width:4px
style AS1 fill:#bbf,stroke:#f66,stroke-width:2px,stroke-dasharray: 5, 5
style AS2 fill:#ddf,stroke:#f66,stroke-width:2px,stroke-dasharray: 5, 5
style DP1 fill:#fff,stroke:#000,stroke-width:4px
style DP2 fill:#eef,stroke:#000,stroke-width:2px
style CM1 fill:#ddf,stroke:#000,stroke-width:4px
style ER1 fill:#ccc,stroke:#000,stroke-width:2px
Ollama、DeepSeek、AnythingLLM三者整合,搭建本地知识库步骤:
- 准备工作:确保你的设备满足运行要求,安装好 Ollama、DeepSeek 模型(可通过 Ollama 拉取)以及 AnythingLLM。
- 数据导入:将你想要纳入知识库的文本数据整理好,导入到 AnythingLLM 中,构建知识图谱。
- 模型连接:通过 Ollama 运行 DeepSeek 模型,并将其与 AnythingLLM 进行连接,使得 DeepSeek 强大的语言处理能力与 AnythingLLM 的知识管理能力相结合。
- 测试与优化:输入各种问题进行测试,根据结果对知识库和模型参数进行优化,提升回答的准确性和效率。
准备工作
环境要求:
Ollama安装
首先,我们需要访问Ollama的官方网站并根据您的操作系统选择相应的版本进行下载和安装。(当前支持MacOS、Linux和Windows多个系统版本)
Ollama官网:https://ollama.com/download
安装完成后,打开命令行工具,使用ollama下载deepseek模型,如下:
➜ ~ ollama run deepseek-r1:8b
pulling manifest
pulling aabd4debf0c8... 18% ▕███████████████████████████ ▏ 206 MB/1.1 GB 954 KB/s 15m54s
注:这个过程可能会比较耗时,具体取决于您的网络速度。ollama官网托管了多个版本的deepseek模型,我们这里为了方便,我们选择模型deepseek-r1:8b来进行演示。
AnythingLLM安装
下载并安装AnythingLLM,根据您的操作系统选择相应的版本。(当前支持MacOS、Linux和Windows多个系统版本)
AnythingLLM官网:https://anythingllm.com/desktop
安装完成后,打开AnythingLLM,会有一段欢迎提示如下:
数据导入
文档准备
在开始之前,您需要准备一些文档数据,这些文档将作为知识库的基础。文档可以是各种格式,如txt、pdf、doc等,只要AnythingLLM支持即可。您可以选择上传一些与您感兴趣的主题相关的文档,以便模型能够从中学习到更多的知识。比如我们一些技术文档、论文、报告等,我们以技术报告“DeepSeek-V3 Technical Report”为例。
打开AnythingLLM,按照提示创建一个新的工作区。接下来,点击工作区旁边的上传按钮,上传您希望包含在知识库中的文件。
上传完成后,点击“Save and Embed”,以便模型能够处理这些文档内容。
模型连接
打开AnythingLLM,点击工作区旁边的配置按钮,选择Ollama作为推理后端,并确保选择了deepseek模型和其他必要的参数。这样,您的本地知识库就准备好了。配置如下:
- 点击配置按钮,并切换到
Chat Settings
菜单项 - 在工作区
Workspace LLM Provider
配置中选择Ollama - 在工作区
Workspace Chat model
配置中选择deepseek-r1:8b (注:只有使用ollama下载deepseek模型后,这里才会显示) - 其他配置项可以根据需要进行调整,如果不确定,可以使用默认值
点击保存 Update workspace
,然后您就可以开始使用您的本地知识库了。
测试与优化
一旦完成安装和配置,您就可以通过AnythingLLM的工作区与模型进行交互了。尝试提出一些关于已上传文档的问题,看看模型是如何利用新学到的知识来回答的。
从上面截图上可以看到:
- AnythingLLM通过调用deepseek模型完成了知识问答
- 图片底部显示
Hide Citations
表明,本次问答引用了我们之前上传的技术报告DeepSeek_V3.pdf
,虽然技术报告使用英文,但是deepseek由于支持多语言,在知识问答时能够自动进行翻译。
注:如果您上传了多篇关于某个特定领域的论文或报告,那么询问模型有关该领域的细节时,能得到更加准确的回答。
总结
通过使用Ollama、DeepSeek和AnythingLLM搭建本地知识库,我们不仅能够享受大模型带来的便利,还能够确保数据的安全性和隐私性。这种方法特别适合那些对数据保密有严格要求的企业和个人用户,同时也解决了在线DeepSeek不稳定的问题。
展望未来,随着技术的进步,本地部署的AI解决方案将会变得越来越普及,为用户提供更多的灵活性和控制权。
参考资料
- [1] Ollama官网:https://ollama.com
- [2] AnythingLLM官网:https://anythingllm.com
- [3] DeepSeek官网:https://www.deepseek.com/
- [4] DeepSeek模型的Ollama地址:https://ollama.com/library/deepseek-r1
五分钟搭建属于你的AI助手:Ollama+DeepSeek+AnythingLLM深度整合教程的更多相关文章
- 五分钟搭建一个基于BERT的NER模型
BERT 简介 BERT是2018年google 提出来的预训练的语言模型,并且它打破很多NLP领域的任务记录,其提出在nlp的领域具有重要意义.预训练的(pre-train)的语言模型通过无监督的学 ...
- Docker五分钟搭建Wordpress
当你看到这篇文章的时候,表明你已经有docker的基础知识了,或者可以看上一篇文章 Docker 入门教程. 传统的使用wordpress搭建网站,意味着你需要搭建以下四个环境: php: apach ...
- [原]五分钟搭建gitserver
本来在忙一些事情,结果刚才突然收到一个临时的事情,号称很着急. 问了一下,原来是需要在本地搭建一个git库,但其实之前我是有做过gitserver的,不过是在阿里云(部分分布在青云)上,而且目前在使用 ...
- 五分钟搭建博客系统 OK?
前言: 请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i 概要: 通过 Docker Compose 在使用Docker容器构建的隔离环境中轻松运行 WordPress.在开始之前,请确保已安 ...
- 五分钟搭建起一个包含CRUD功能的JqGrid表格
之前的项目也曾用过JgGrid对它的基本功能也是略有了解,网上有个国外的开源的项目,但是不适合个人的风格,所以花了3天空余的时间封装了下JqGrid,也算是参加开发工作10个月以来写的第一个比较完整的 ...
- Debian 上面五分钟搭建 WordPress - 博客/网站平台
没有废话,步骤如下: 下载安装软件,MySQL Apache PHP sudo aptitude install mysql-server mysql-client ##安装 MySQLsudo ap ...
- 负载均衡LVS之DR(附:NFS共享存储) 五分钟搭建手册
一:DR-模式 调度器Ip:192.168.1.254 服务器ip:192.168.1.1/192.168.1.2 VIP:192.168.1.10 ——配置负载均衡调度器: 关闭重定向响应配置: V ...
- 五分钟搭建 Flash 视频直播站
想在家里对全世界直播网络视频节目吗?如今视频网站是多如牛毛,但能让你玩直播的估计没几个吧?看完这篇教程就能帮你实现网络主持人的梦想.不花钱,不懂编程,不用写代码也行哦~ 首先是最低机器要求:Windo ...
- 五分钟学习React(三):纯HTML代码搭建React应用
上一期我们使用了React官方的脚手架运行React应用.大家可能会觉得这种方法很繁琐,需要配置各种第三方插件.JQuery时代的前端真是让人怀念.这一期,我就带领大家创建一个"怀旧版&qu ...
- 最佳案例 | 游戏知几 AI 助手的云原生容器化之路
作者 张路,运营开发专家工程师,现负责游戏知几 AI 助手后台架构设计和优化工作. 游戏知几 随着业务不断的拓展,游戏知几AI智能问答机器人业务已经覆盖了自研游戏.二方.海外的多款游戏.游戏知几研发团 ...
随机推荐
- Linux管道命令
Linux中常用文件字符串分析的命令 在linux中文件管理与系统管理的方面,经常会用到要从一个文件中或者一长串字符串中提取你所需要的数据,或者某些字段来进行查看或者分析,作为一个初级linux小菜鸟 ...
- Python 潮流周刊#79:Python 的元数据困境(摘要)
本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...
- 一个使用 WPF 开发的管理系统
前言 最近发现有不少小伙伴在学习 WPF,今天大姚给大家分享一个使用 WPF 开发的管理系统,该项目包含了用户登录.人员管理.角色授权.插件管理.职位管理.主页功能(邮件.皮肤.设置)等功能,对于一个 ...
- 通用的定时任务工具 schedule-server
背景: 我曾经在一个自动化测试平台中集成定时任务,基于 APScheduler 库花了好长时间解决重复执行的问题.定时任务集成在服务中也让服务变得复杂.最后,我们选择了公司其他团队go语言开发的一个定 ...
- Qt 指定 so库 运行时路径
在Qt的pro文件最后添加运行时so库路径: QMAKE_RPATHDIR += /home/pi/qt5 注意,必须是绝对路径,相对路径无效(因为在pro文件中,相对路径是相对于项目路径)
- Dockerfile轻松打包jar包生成docker
1. 创建java目录 mkdir /home/java/ cd /home/java/ 2. 创建Dockerfile #FROM openjdk:8-jdk-alpine #ADD *.jar a ...
- 在 PdfSharp 中使用私有字体
在 PdfSharp 中使用私有字体 在 PdfSharp 1.5 中提供了在 Web 服务器上使用私有字体的示例,见:http://www.pdfsharp.net/wiki/(X(1)S(mg0w ...
- DDD你真的理解清楚了吗?怎么准确理解“值对象”
这些年,随着软件业的不断发展,软件系统开始变得越来越复杂而难于维护.这时,越来越多的开发团队开始选择实践DDD领域驱动设计.领域驱动设计是一种非常优秀的软件设计思想,它可以非常好地帮助我们梳理复杂业务 ...
- SpringBoot 集成Swagger后提通过http://localhost:8001/swagger-ui.html#/访问得不到页面
SpringBoot 集成Swagger后提通过http://localhost:8001/swagger-ui.html#/访问得不到页面: spring boot 集成 swagger2步骤: ...
- IM开发者的零基础通信技术入门(十一):为什么WiFi信号差?一文即懂!
一.本文内容概述 WiFi对于现在的家庭来说,属于司空见惯的上网方式,但很多情况下,家里房间多.空间大.杂物乱的情况下,WiFi的信号就受影响.为什么WiFi信号会受影响?什么情况下该使用何种方式组网 ...