RAG 知识库搭建:Ollama+AnythingLLM 搭建本地知识库(附教程)

RAG 知识库搭建:Ollama+AnythingLLM 搭建本地知识库(附教程)

什么是 RAG

RAG,即检索增强生成(Retrieval-Augmented Generation),是一种先进的自然语言处理技术架构,它旨在克服传统大型语言模型(LLMs)在处理开放域问题时的信息容量限制和时效性不足。RAG的核心机制融合了信息检索系统的精确性和语言模型的强大生成能力,为基于自然语言的任务提供了更为灵活和精准的解决方案。

www.zeeklog.com  - RAG 知识库搭建:Ollama+AnythingLLM 搭建本地知识库(附教程)

RAG与LLM的关系

RAG不是对LLM的替代,而是对其能力的扩展与升级。传统LLM受限于训练数据的边界,对于未见信息或快速变化的知识难以有效处理。RAG通过动态接入外部资源,使LLM得以即时访问和利用广泛且不断更新的知识库,进而提升模型在问答、对话、文本生成等任务中的表现。此外,RAG框架强调了模型的灵活性和适应性,允许开发者针对不同应用场景定制知识库,从而满足特定领域的需求。

下图是 RAG 的一个大致流程:

www.zeeklog.com  - RAG 知识库搭建:Ollama+AnythingLLM 搭建本地知识库(附教程)

RAG就像是为大型语言模型(LLM)配备了一个即时查询的“超级知识库”。这个“外挂”不仅扩大了模型的知识覆盖范围,还提高了其回答特定领域问题的准确性和时效性。

想象一下,传统的LLM像是一个博学多才但记忆力有限的学者,它依赖于训练时吸收的信息来回答问题。而RAG,则是这位学者随时可以连线的庞大图书馆和实时资讯网络。当面临复杂或最新的查询时,RAG能让模型即时搜索并引用这些外部资源,就像学者翻阅最新的研究资料或在线数据库一样,从而提供更加精准、全面和最新的答案。这种设计尤其适用于需要高度专业化或快速更新信息的场景,比如医学咨询、法律意见、新闻摘要等。

基于此,RAG 技术特别适合用来做个人或企业的本地知识库应用,利用现有知识库资料结合 LLM 的能力,针对特定领域知识的问题能够提供自然语言对话交互,且答案比单纯用 LLM 准确性要高得多。

实践

现成方案

现成的方案有很多

本文将采用 Ollama + Qwen2.5 +AnythingLLM 来实现本地知识库

Ollama 大法

Ollama 与 LLM 的关系可以这样理解:Ollama 本身不是 LLM,而是一个服务于 LLM 的工具。它提供了一个平台和环境,使得开发者和研究人员能够在本地机器上轻松地运行、测试和部署各种大型语言模型

github:

下载安装 Ollama 和大模型

下载地址: ,支持 Windows、Mac、Linux。

当然你也可能用 Docker 安装镜像,官方镜像 更多细节请参考 github 的 Readme:

当你运行 ollama --version 命令成功查询到版本时,表示 Ollama 的安装已经顺利完成。

www.zeeklog.com  - RAG 知识库搭建:Ollama+AnythingLLM 搭建本地知识库(附教程)

接下来便可以用 pull 命令从下载模型,比如:

bash
复制代码
ollama pull llama2

还有更简单的方法直接使用 run 命令,它会在 运行之前自动检查模型是否下载,如果没有会自动下载

bash
复制代码
ollama run llama3

但是我想搭建的是本地知识库,当然是以中文为主,所以需要对中文支持最好的模型,但是:

Ollama官方提供的模型,对中文支持好的不多,比较好的有:

  • Llama2-Chinese:基于Llama2微调。搜“Chinese”关键词就能找到。
  • Qwen 1.5:阿里的通义千问。一共有6个尺寸,默认是4b。所有尺寸的模型都支持32K的上下文长度。多语言支持。

本想用 智谱的 GLM(  ),奈何不兼容 Ollama,也没有 GGUF 格式文件,于是作罢。巧的是阿里的 通义Qwen2模型刚刚开源,正好可以试一下。

阿里开源了通义Qwen2模型,可以说是现阶段这个规模最强的开源模型。发布后直接在 Huggingface LLM 开源模型榜单获得第一名,超过了刚发布的 Llama3 和一众开源模型。Qwen2在代表推理能力的代码和数学以及长文本表现尤其突出。推理相关测试及大海捞针测试都取得了很好的成绩。
模型概览:Qwen 2 模型组成包括 Qwen2-0.5B、Qwen2-1.5B、Qwen2-7B、Qwen2-57B-A14B和Qwen2-72B。其中Qwen2-57B-A14B为 MoE 模型。
模型在中文、英文语料基础上,训练数据中增加了27种语言相关的高质量数据;增大了上下文长度支持,最高达到128K tokens(Qwen2-72B-Instruct)。多个评测基准上的领先表现;代码和数学能力显著提升。
www.zeeklog.com  - RAG 知识库搭建:Ollama+AnythingLLM 搭建本地知识库(附教程)

顺序介绍一下中文大模型,可能通过这个仓库了解:

安装并运行 Qwen2 模型,注意这里由于我笔记本配置问题,所以选用的是 7B 参数的模型

bash
复制代码
ollama run qwen2:7b

模型下载的默认路径是:/Users/${home}/.ollama/models

以下是我机器的配置,mac intel芯片

www.zeeklog.com  - RAG 知识库搭建:Ollama+AnythingLLM 搭建本地知识库(附教程)

安装完成后就可以对话了:

www.zeeklog.com  - RAG 知识库搭建:Ollama+AnythingLLM 搭建本地知识库(附教程)
open web UI

通过命令行交互的方式不算太友好,所以我们需要一个好看好用的 UI 界面来与模型进行交互。

Open Web UI 就是这样一个软件  ,它通过Docker 可以非常容易的进行部署

www.zeeklog.com  - RAG 知识库搭建:Ollama+AnythingLLM 搭建本地知识库(附教程)

部署完成后,这样使用是不是就友好多了?

但由于我们是要搭建一个个人本地知识库,需要对知识库有更多的掌控,Open Web UI 有些不满足需要,所以我们要用另一个软件。

AnythingLLM

我们先下载安装 AnythingLLM :

完成安装后大概长这个样子:

www.zeeklog.com  - RAG 知识库搭建:Ollama+AnythingLLM 搭建本地知识库(附教程)

然后我们就要开始选择模型了

www.zeeklog.com  - RAG 知识库搭建:Ollama+AnythingLLM 搭建本地知识库(附教程)

这里注意,我们要用服务器模式启动 Ollama,Ollama其实有两种模式:

  1. 聊天模式
  2. 服务器模式

所谓服务器模式,你可以简单理解为,Ollama在后端运行大模型,然后开放一个端口给到别的软件,让那些软件可以调用大模型的能力。要开启服务器模式非常简单。在终端里输入:ollama serve

用服务器模式启动 Ollama 后:

  • 在AnythingLLM界面中选择 Ollama
  • 然后在 Base URL中填:
  • 模型选择之前下载的 Qwen2.5 7b
  • Token context window 可以先用默认的 4096

完成以上设置后来到下一步

www.zeeklog.com  - RAG 知识库搭建:Ollama+AnythingLLM 搭建本地知识库(附教程)

搭建一个知识库,会涉及到另外两个关键:

  1. Embedding Model,嵌入模型。它负责把高维度的数据转化为低维度的嵌入空间。这个数据处理过程在RAG中非常重要。
  2. Vector Store,向量数据库,专门用来高效处理大规模向量数据。

上图中就是默认的嵌入模型以及向量数据库,我们先使用默认的。

  • 然后往下走,下一步是填写个人信息,这步我就省略了。
  • 再下一步是给你的 workspace 起名,我也省略

接着你就可以在建好的 workspace 中上传你的个人知识库的内容了

www.zeeklog.com  - RAG 知识库搭建:Ollama+AnythingLLM 搭建本地知识库(附教程)

你可以上传文件(支持多种格式 pdf word…),甚至是一个外部的网站链接,不太好的是它不能上传一个文件夹,如果你的文件夹是包含多级目录的,那么它无法识别,你需要把所有文件平铺放在同一级目录中再全选上传。

www.zeeklog.com  - RAG 知识库搭建:Ollama+AnythingLLM 搭建本地知识库(附教程)

数据源也可以是其他知识网站:

www.zeeklog.com  - RAG 知识库搭建:Ollama+AnythingLLM 搭建本地知识库(附教程)

你可以根据项目来创建Workspace,一个项目建一个。然后,把关于这个项目的所有文档、所有网页都导入Workspace。 聊天模式还有两种可以设置:

  1. 对话模式:大模型会根据你给的文档,以及它本来就有的知识储备,综合起来回答。
  2. 查询模式:大模型只是简单地针对文档进行回答。
www.zeeklog.com  - RAG 知识库搭建:Ollama+AnythingLLM 搭建本地知识库(附教程)

比如我随便上传了一个 《劳动合同法》 的 pdf 文件,用查询模式进行对话:

www.zeeklog.com  - RAG 知识库搭建:Ollama+AnythingLLM 搭建本地知识库(附教程)

虽然不太对,但内容是从我上传的文件里找到的,还可以点击查看源文件。

我将笔记本中的很多计算机相关的 markdown 文件作为“知识” 上传后,进行问答:

www.zeeklog.com  - RAG 知识库搭建:Ollama+AnythingLLM 搭建本地知识库(附教程)

至此,我的本地个人知识库就搭建完成了!

如何系统的去学习大模型LLM ?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

事实上,抢你饭碗的不是AI,而是会利用AI的人。

科大讯飞、阿里、华为等巨头公司发布AI产品后,很多中小企业也陆续进场!超高年薪,挖掘AI大模型人才! 如今大厂老板们,也更倾向于会AI的人,普通程序员,还有应对的机会吗?

与其焦虑……

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高。

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉👈

www.zeeklog.com  - RAG 知识库搭建:Ollama+AnythingLLM 搭建本地知识库(附教程)

一、LLM大模型经典书籍

AI大模型已经成为了当今科技领域的一大热点,那以下这些大模型书籍就是非常不错的学习资源。

www.zeeklog.com  - RAG 知识库搭建:Ollama+AnythingLLM 搭建本地知识库(附教程)

二、640套LLM大模型报告合集

这套包含640份报告的合集,涵盖了大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(几乎涵盖所有行业)

www.zeeklog.com  - RAG 知识库搭建:Ollama+AnythingLLM 搭建本地知识库(附教程)

三、LLM大模型系列视频教程

www.zeeklog.com  - RAG 知识库搭建:Ollama+AnythingLLM 搭建本地知识库(附教程)

四、LLM大模型开源教程(LLaLA/Meta/chatglm/chatgpt)

www.zeeklog.com  - RAG 知识库搭建:Ollama+AnythingLLM 搭建本地知识库(附教程)

LLM大模型学习路线

阶段1:AI大模型时代的基础理解

目标:了解AI大模型的基本概念、发展历程和核心原理。

内容

  • L1.1 人工智能简述与大模型起源
  • L1.2 大模型与通用人工智能
  • L1.3 GPT模型的发展历程
  • L1.4 模型工程
  • L1.4.1 知识大模型
  • L1.4.2 生产大模型
  • L1.4.3 模型工程方法论
  • L1.4.4 模型工程实践
  • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

目标:掌握AI大模型API的使用和开发,以及相关的编程技能。

内容

  • L2.1 API接口
  • L2.1.1 OpenAI API接口
  • L2.1.2 Python接口接入
  • L2.1.3 BOT工具类框架
  • L2.1.4 代码示例
  • L2.2 Prompt框架
  • L2.3 流水线工程
  • L2.4 总结与展望

阶段3:AI大模型应用架构实践

目标:深入理解AI大模型的应用架构,并能够进行私有化部署。

内容

  • L3.1 Agent模型框架
  • L3.2 MetaGPT
  • L3.3 ChatGLM
  • L3.4 LLAMA
  • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。

内容

  • L4.1 模型私有化部署概述
  • L4.2 模型私有化部署的关键技术
  • L4.3 模型私有化部署的实施步骤
  • L4.4 模型私有化部署的应用场景

这份 LLM大模型资料 包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉👈

www.zeeklog.com  - RAG 知识库搭建:Ollama+AnythingLLM 搭建本地知识库(附教程)

Read more

基于FPGA的北斗导航自适应抗干扰算法的设计与实现(任务书+开题报告+文献综述+代码+仿真+实物+毕业论文)

基于FPGA的北斗导航自适应抗干扰算法的设计与实现(任务书+开题报告+文献综述+代码+仿真+实物+毕业论文)

摘   要 如今,随着卫星导航技术的飞速发展,位置信息服务已经融入到我们的日常生活中,导航目前被称为继移动互联网后第三大产业。卫星导航在维护国家的安全中也发挥着不可替代的作用。为了使导航系统不受干扰的影响,本文以北斗导航系统为平台,研究基于阵列天线的自适应抗干扰算法。 首先,文章就自适应抗干扰算法的原理和方法进行了系统介绍,并在MATLAB中建立阵列模型,对基于功率倒置算法的空域抗干扰算法和空时联合抗干扰算法进行性能仿真。然后根据系统的指标,确定了在FPGA中实现抗干扰算法的方案,包括数字下变频、权值计算、数据加权、数字上变频等模块。根据权值计算模块实现方式的不同,本文提供了两种抗干扰算法在FPGA中实现的方案:一种是基于FPGA嵌入式软核NIOS II的抗干扰实现,将权值计算的过程放在NIOS II软核中,用C语言进行实现;另一种是基于逻辑语言的抗干扰算法的实现,即用硬件描述语言Verilog HDL进行权值的计算。权值计算涉及到浮点数运算和Hermite矩阵求逆,本文给出了各模块的设计方法和仿真结果,并与MATLAB仿真结果进行对比。最后给出了两种实现方案的实测结果,表明两种实

FPGA 工程师到底有哪些方向?每个岗位都在干什么?一篇给你讲清楚

FPGA 工程师到底有哪些方向?每个岗位都在干什么?一篇给你讲清楚

很多人说“学 FPGA 就是写 Verilog”,但真正进了行业才发现—— FPGA 工程师并不是一个岗位,而是一整个岗位族群。 不同公司、不同项目,对 FPGA 工程师的要求差异非常大。 如果方向选错,可能学了半年发现岗位根本不对口。 这篇文章就系统地给你拆一拆: 👉 FPGA 工程师到底有哪些岗位? 👉 每个岗位具体干什么? 👉 需要掌握哪些能力? 👉 适合什么样的人? 一、FPGA 工程师整体岗位划分(先给结论) 从企业招聘角度来看,FPGA 岗位大致可以分为 6 类: 岗位方向关键词偏向FPGA 逻辑设计工程师Verilog / 时序 / 接口核心开发FPGA 算法 / 加速工程师图像 / AI / DSP算法落地FPGA 底层驱动工程师DDR / PCIe / SerDes硬件接口FPGA 系统应用工程师Linux + FPGA系统集成FPGA 验证 / 测试仿真 / 验证质量保障FPGA 技术支持 / FA客户 / 项目支持应用型

OpenClaw-多飞书机器人与多Agent团队实战复盘

OpenClaw-多飞书机器人与多Agent团队实战复盘

OpenClaw 多飞书机器人与多 Agent 团队实战复盘 这篇文章完整记录一次从单机安装到多机器人协作落地的真实过程: 包括 Windows 安装报错、Gateway 连通、模型切换、Feishu 配对、多 Agent 路由、身份错位修复,以及最终形成“产品-开发-测试-评审-文档-运维”团队。 一、目标与结果 这次实践的目标很明确: 1. 在 Windows 上稳定跑通 OpenClaw 2. 接入飞书机器人 3. 做到一个机器人对应一个 Agent 角色 4. 支持多模型并行(OpenAI + Ollama) 5. 最终形成可执行的多 Agent 团队 最终落地状态(已验证): * 渠道:Feishu 多账号在线 * 路由:按 accountId

宇树 G1 机器人开发入门:有线 & 无线连接完整指南

宇树 G1 机器人开发入门:有线 & 无线连接完整指南

适用读者:机器人二次开发者、科研人员 开发环境:Ubuntu 20.04(推荐) 机器人型号:Unitree G1 EDU+ 前言 宇树 G1 是一款面向科研与商业应用的高性能人形机器人,支持丰富的二次开发接口。在正式进行算法调试与功能开发之前,首要任务是建立稳定的开发连接。本文将详细介绍两种主流连接方式:有线(网线直连) 与 无线(WiFi + SSH),并附上完整的配置流程,帮助开发者快速上手。 一、有线连接(推荐新手优先使用) 有线连接通过网线直接将开发电脑与 G1 机器人相连,具有延迟低、稳定性高、不依赖外部网络的优势,是新手入门和底层调试的首选方式。 1.1 前置条件 所需物品说明开发电脑推荐安装 Ubuntu 20.04,或在 Windows 上使用虚拟机宇树 G1 机器人确保已开机且处于正常状态网线(