随着大语言模型(LLM)的快速发展,将企业内部知识库与 AI 工具结合成为热门解决方案。作为一名技术探索者,我对构建私有知识库充满兴趣,也希望测试 LLM 的能力,尤其是像 Ollama 和千问这类模型。此外,AnythingLLM 是一个开源项目,具有较高的社区关注度,因此我决定对其进行深入调研。
基于 RAG(检索增强生成)技术,AnythingLLM 提供了从数据处理到用户界面的全栈解决方案,支持构建企业内部的智能知识库。其模块化架构和灵活部署方式,使其成为企业和个人开发者进行知识管理和 AI 项目实践的重要工具。
一、原理概述:
1、RAG简介
RAG(Retrieval-Augmented Generation) 是一种结合了信息检索和语言模型的技术。它通过从大规模的知识库中检索相关信息,并利用这些信息来指导语言模型生成更准确和深入的答案。这种方法由 Meta AI 研究人员在 2020 年提出,旨在解决大型语言模型在信息滞后、模型幻觉、私有数据匮乏和内容不可追溯等问题。
RAG 就是可以开卷回复的 LLM。其发展历程:Naive RAG 包含索引、检索、生成三步,存在 召回率低、Prompt 拼接问题。Advanced RAG 优化索引与检索,引入 预检索、后检索策略与数据清洗 提升效率。Modular RAG 实现 模块化流水线与端到端训练,具备更高的 灵活性与适应性。
2、背景挑战
尽管 LLM 在处理复杂任务方面表现出色,但在以下三个方面存在局限:
- 知识局限性:大模型的训练数据来自公开数据源,无法访问非公开和实时数据。
- 幻觉问题:模型有时会生成错误答案,特别是在缺少特定领域知识时。
- 数据安全性:涉及内部私有数据时,企业面临数据泄露风险。
RAG 技术通过向量检索与生成模型结合,显著提高了数据处理的深度和准确性。
3、工作原理
RAG 的工作流程包括两个主要阶段:
- 数据准备阶段:将内部私有数据向量化存入数据库,构建检索索引。
- 用户应用阶段:根据用户的 Prompt 检索相关内容,将结果与原 Prompt 组合,生成模型回答。
通过这种方式,RAG 可以搭建团队内部的本地知识库,弥补大模型的知识局限性,解决幻觉和数据隐私问题。然而,RAG 也存在一些主要限制:
- 数据依赖性强:RAG 系统的效果严重依赖于内置知识库的数据质量和覆盖范围。
- 检索准确性受限:检索算法可能因索引构建不完善或查询表达模糊导致相关性降低。
- 模型推理成本高:大型语言模型的推理消耗大量资源,尤其在频繁查询和大规模应用场景中。
- 技术复杂度高:构建和维护 RAG 系统需要强大的数据管理与模型集成能力,涉及嵌入、索引构建和检索优化等多个复杂组件。
- 响应延迟与性能瓶颈:在高负载下,检索与推理过程可能导致响应速度变慢,尤其在硬件性能受限的环境中。
最终我们选择了 AnythingLLM+ Docker+Ollama+LM Studio 搭建本地知识库。
二、适用场景:
- 个人学习助手:对于学生或知识工作者来说,AnythingLLM是强大的学习助手,可以帮助他们快速获取书籍、论文等学习资料中的信息。
- 企业文档管理:企业内部的文档种类繁多,通过AnythingLLM的工作区机制,企业可以分类管理文档,提升整体工作效率。
- 开发者定制应用:开发者可以利用AnythingLLM的API集成到现有系统中,打造符合自己需求的AI应用。
- 网站智能客服:对于需要客服支持的网站来说,可以将AnythingLLM嵌入网站中,为用户提供快速解答。
三、工具介绍:
1、AnythingLLM
由Mintplex Labs Inc.开发的一款开源企业级文档聊天机器人解决方案。它能够与任何内容进行智能对话,支持多个大语言模型的集成,也可以通过向量数据库实现个性化的私有聊天机器人构建。以下是关于AnythingLLM的一些关键特点:
- 全栈应用程序:AnythingLLM是一款全栈的AI应用程序,整合了从数据处理到用户界面的诸多技术优势3。
- 支持多种LLM大语言模型:它可以使用现成的商业大语言模型或流行的开源大语言模型,通过平台直接集成多个API,如OpenAI、Azure AOAI、Gemini、Huggingface、Ollama等。
- 灵活的部署方式:用户可以根据自己的需求灵活部署AnythingLLM,以适应不同的使用场景。
- 多用户管理:系统支持多用户管理,便于企业或团队内部的协同使用。
- 开源及可定制性:由于它是开源的,用户可以对其进行自定义,以满足特定的业务需求和文档管理要求。
- 多种向量数据库支持:如 LanceDB(默认)、Pinecone、Weaviate 等。
- 支持丰富的文档和内容管理:它可以将多种文件格式和资源转化为大语言模型可使用的查询文本,便于用户进行智能的内容处理和交互。
- 成本节约措施:大文档只需嵌入一次,显著降低成本。
- 开发者 API 支持:便于自定义和扩展。
通过这些功能,AnythingLLM为用户提供了一种高效、灵活且成本优化的解决方案,能够帮助企业构建定制化的智能交互系统。

2、Docker(团队版必备)
Docker 是一个开源的应用容器引擎,允许开发者将他们的应用和所需的依赖打包到一个可移植的容器中。这个容器可以在任何支持 Docker 的机器上运行,使得开发与生产环境之间的一致性更容易实现。Docker 的特点和功能:
- 轻量化和高效:Docker 容器像是一个轻型的虚拟机,它并不需要为每个实例运行一个操作系统的完整副本,而是与主机共享内核资源。因此,Docker 容器启动更快速,资源占用更少。
- 一致的运行环境:通过将应用程序与其运行所需的环境打包在一起,Docker 可以确保在开发、测试和生产不同环境下程序的行为一致。这种特性大大简化了应用程序的部署和调试过程。
- 便捷的部署和缩放:使用 Docker,可以很容易地创建、部署和运行多个应用实例,这对于需要快速扩展的微服务架构十分有利。此外,通过镜像的快速转化和部署,应用的更新和回滚过程也变得更加快捷。
- 容器化的应用交付:Docker 提供了一种标准化的方式来打包和分发应用程序与服务,开发人员可以通过 Docker 镜像仓库发布和获取镜像,使得应用交付更加方便和灵活。
总之,Docker 带来的最大优势在于其高效的资源使用、便捷的开发到生产的交付流以及应用的易于扩展,越来越多的软件开发和运维工作已经或者正在转向使用 Docker 技术。

3、Ollama
Ollama 是一个开源框架,专门设计用于在本地机器上便捷部署和运行大型语言模型(LLM)。该框架简化了在 Docker 容器中部署大型语言模型的过程,使得即使是非专业用户也能轻松使用大型语言模型Ollama 的主要特点包括:
- 简化部署:Ollama 提供了一种简单的方法来管理和运行大型语言模型,将复杂的参数和模型打包到一起,类似于 Docker 的模型应用标准。
- 开源和免费:Ollama 是一个开源项目,并且可以免费下载和使用。用户可以在本地运行各种开源大型语言模型,无需依赖外部的在线服务。
- API 支持:Ollama 提供了简单易用的 API 接口,使其能够作为一个稳定的服务端工具,支持开发者进行进一步的集成和开发。
- 优化配置:框架在优化大模型的设置和配置细节方面表现出色,包括GPU的使用。这些优化帮助开发者节省时间和资源。
Ollama 是一个有力的工具,适合大模型的开发者、研究人员和爱好者在本地环境下进行大语言模型的实验和应用。

4、LM Studio
LM Studio 是一款功能强大的桌面应用程序,旨在让用户在自己的计算机上本地运行和管理大型语言模型(LLM)。其主要特点如下:
- 多平台支持:LM Studio 支持在 Windows、Linux 和 Mac 等不同操作系统上运行,使其成为一款跨平台的工具。
- 易于使用:该软件用户界面友好,允许用户轻松加载模型、启用 GPU,以及切换不同类型的大型语言模型,不需要额外安装 Python 环境或复杂的组件。
- 功能全面:用户可以发现、下载和运行本地 LLMs,支持通过内置的聊天界面进行交互,同时兼容与类似 OpenAI 的本地服务器。
- 开源支持:LM Studio 是免费的,支持安装和使用开源的 LLMs,使得使用这些模型更加便捷。
- 模型比较和实验:用户可以在本地机器上实验和评估不同的大型语言模型,实现模型之间的轻松比较。
通过这些功能,LM Studio 努力让大型语言模型的使用更加亲民和高效,是研究人员和开发者的有力工具。

四、开源模型推荐
1、DeepSeek
幻方量化旗下深度求索开源大模型,总体评分和Cladue3.5不相上下,而且Token非常便宜,大型语言模型V3完整版本有近700吉字节(gigabytes),大到只能在专业硬件上运行,参数量多达6850亿个,比以往任何供免费下载的模型都要大。相较之下,脸书母公司Meta的Llama 3.1模型只有4050亿个参数。人工智能编码平台Aider的测试结果显示,DeepSeek表现仅次于OpenAI的o1模型。
2、Llama 3
Llama 3 是由 Meta 公司开发的最新一代开源大型语言模型(LLM),旨在支持各种自然语言处理任务。作为 Llama 系列的最新版,Llama 3 于 2024 年 4 月 18 日发布,并且已经在 Hugging Face 平台上提供开放获取。Llama 3 的主要特点包括:
- 模型架构:Llama 3 采用相对标准的纯解码器 Transformer 架构,并在这一架构上进行了多项关键改进,以提高其性能和能力。
- 参数规模:Llama 3 系列模型包括一个拥有 80 亿参数的模型和一个拥有 700 亿参数的模型,这些模型在预训练和指令微调阶段表现优异。
- 训练数据:Llama 3 使用超过 15 万亿 token 的公开数据进行预训练,提供多个版本和规模供选择。
- 应用能力:相比其前身 Llama 2,Llama 3 的实用性和安全性得到了改进,使其在多种测试基准中表现出色,被认为是"最强开源"模型之一。
- 商业应用:在特定规章下,Llama 3 可以用于商业用途,这使得其应用范围进一步扩大。
总体而言,Llama 3 在模型架构、训练规模以及实用性方面实现了显著的提升,进一步推动了开放AI领域的发展。
3、Qwen 2
Qwen 2 是由阿里云通义千问团队开源的新一代大语言模型。它们根据不同的参数规模提供了五种不同的模型,即 Qwen2-0.5B、Qwen2-1.5B、Qwen2-7B、Qwen2-57B-A14B 以及 Qwen2-72B,覆盖从0.5B到72B的参数规模12。Qwen 2 特点及功能:
- 多语言支持:Qwen2 的训练数据不仅包含中文和英文,还增加了其他 27 种语言的高质量数据。这增强了 Qwen2 在多语言处理方面的自然语言理解能力34。
- 广泛的应用功能:该模型支持诸如 RAG(Retrieve-And-Generate)、工具调用、角色扮演、智能Agent等多种功能,使其在不同的应用场景中广泛适用4。
- 技术进步:Qwen2 是在 Qwen1.5 的基础上发展而来的,提升了模型的性能和多语言处理能力5。
- 全球竞争力:Qwen2 的多语言数据集品质媲美加拿大 Cohere Aya 的 26 种语言的数据集,并超过了 Mistral,在全球 AI 产业竞争中展现了中国 AI 模型的重要参与者角色7。
Qwen2 的设计和功能体现了阿里云在大语言模型领域的技术实力及其在多语言数据处理中持续创新的努力。
五、安装教程(保姆喂饭级)
第一步:安装 AnythingLLM
AnythingLLM 提供两种使用 AnythingLLM 的主要方式。每种方式的功能存在明显差异。两种方式都是开源的。个人使用请选择AnythingLLM Desktop,团队使用请选择AnythingLLM Docker
一)、本地私有 AnythingLLM Desktop :
AnythingLLM Desktop 是一款“单人”应用程序,您可以安装在任何 Mac、Windows 或 Linux 操作系统上,并以几乎零配置和完全隐私的方式获得本地 LLM、RAG 和代理。
下载并安装AnythingLLM(已上传至国内网盘),下载地址:https://anythingllm.com/
这是运行 AnythingLLM 的最小值。这足以让您存储一些文档、发送聊天记录并使用 AnythingLLM 功能。
1、Windows 安装步骤:
| Windows 推荐配置: | 最低要求 |
| CPU 处理器 | 多核 Intel®、AMD 或 WinARM 处理器 |
| 操作系统 | Win 10、Win 11 |
| RAM 硬盘硬盘空间 | 2 GB 的可用硬盘空间 |
| 显存 | 5GB |
AnythingLLM Windows 应用程序当前未签名,Windows Defender 或其他防病毒软件有时会将该应用程序标记为恶意软件。
由于该应用程序未签名。本机 Windows Defender 将希望确保您确实要执行此应用程序。单击“更多详细信息”,将出现“仍然运行”按钮。. Angel Youngs bikini
1、这是 Anything LLM Windows 最新版本的下载链接。
2、您的互联网浏览器可能需要您验证您是否要下载并运行 AnythingLLM 桌面应用程序,因为根据您的浏览器安全设置,它可能被标记为“不受信任”。
3、下载时点击“保留”以允许文件下载。

4、下载 AnythingLLM 的 Windows 安装程序后.exe,您可以双击该安装程序,它将显示安装过程。️

5、此后,现在可以运行常规安装程序来安装 AnythingLLM Desktop

6、点击桌面上的应用程序名称“ AnythingLLM ”即可启动AnythingLLM!
2、MacOS 安装步骤:
| macOS 推荐配置: | 最低要求 |
| CPU 处理器 | Intel® 多核处理器或 Apple 芯片处理器 |
| 操作系统 | macOS v12*、v13、v14、v15 |
| RAM 硬盘硬盘空间 | 2 GB 的可用硬盘空间 |
| 显存 | 5GB |
1、请下载对应CPU芯片的对应客户端版本
- Apple Silicon devices (M1/M2/M3) >> AnythingLLMDesktop-AppleSilicon.dmg
- Apple (Intel) >> AnythingLLMDesktop.dmg
2、您的互联网浏览器可能需要您验证您是否要下载并运行 AnythingLLM 桌面应用程序,因为根据您的浏览器安全设置,它可能被标记为“不受信任”。
3、下载时点击“保留”以允许文件下载。

4、打开 .dmg 后,你可以将 AnythingLLM LOGO拖入 Applications

5、安装后,您将在应用程序文件夹中找到 AnythingLLM,打开即可开始使用。
二)、团队使用 AnythingLLM Docker:
AnythingLLM Docker 既是单用户应用程序,也是多用户应用程序,您可以使用 docker 安装在任何 Web 服务器上,并利用本地 LLM、RAG 和代理,几乎不需要配置,并且完全保密。.
通过 Docker 自行托管 AnythingLLM 非常流行,可以在本地或云服务器(aws、google cloud、railway 等)上完成。
1、Windows 安装步骤:
①、安装并运行 Docker
- 在官方网站下载Docker(已上传国内网盘),官方地址:https://www.docker.com/
- 双击Docker Desktop Installer.exe运行安装程序。默认情况下,Docker Desktop 安装在
C:Program FilesDockerDocker。 - 出现提示时,请确保根据您选择的后端,在配置页面上选择使用 WSL 2 而不是 Hyper-V选项。如果您的系统仅支持两个选项中的一个,您将无法选择使用哪个后端。
- 按照安装向导上的说明授权安装程序并继续安装。
- 安装成功后,选择关闭,完成安装过程。
- 启动 Docker Desktop。
②、在 Docker 中下载并运行 AnythingLLM
- 右键Windows图标,左键终端,复制下面代码,粘贴到终端,按下回车,即可从Docker下载AnythingLLM的镜像。
docker pull mintplexlabs/anythingllm
- 复制下面代码,粘贴到终端,按下回车,即可在本地挂载存储并在 Docker 中运行 AnythingLLM
$env:STORAGE_LOCATION="$HOMEDocumentsanythingllm"; `
If(!(Test-Path $env:STORAGE_LOCATION)) {New-Item $env:STORAGE_LOCATION -ItemType Directory}; `
If(!(Test-Path "$env:STORAGE_LOCATION.env")) {New-Item "$env:STORAGE_LOCATION.env" -ItemType File}; `
docker run -d -p 3001:3001 `
--cap-add SYS_ADMIN `
-v "$env:STORAGE_LOCATION`:/app/server/storage" `
-v "$env:STORAGE_LOCATION.env:/app/server/.env" `
-e STORAGE_DIR="/app/server/storage" `
mintplexlabs/anythingllm;
- 打开Docker,点击左侧Containers,即可看到镜像已经打开了。

- 点击 Port 端口或者访问 http://localhost:3001/,AnythingLLM会自动在浏览器中打开!您的所有数据和进度将在容器重建或从 Docker Hub 提取之间保留。
仅首次使用的时候需要使用脚本,第二次使用仅需打开Docker运行AnythingLLM镜像,打开端口链接即可正常使用。

2、MacOS 安装步骤:
①、安装并运行 Docker
- 下载并安装Docker,官方地址:https://www.docker.com/
- 双击
Docker.dmg打开安装程序,然后将 Docker 图标拖到应用程序文件夹中。默认情况下,Docker Desktop 安装在/Applications/Docker.app。 - 双击应用程序
Docker.app文件夹以启动 Docker。
②、在 Docker 中下载并运行 AnythingLLM
- 打开应用程序终端,复制下面代码,粘贴到终端,按下回车,即可从Docker下载AnythingLLM的镜像。
docker pull mintplexlabs/anythingllm- 复制下面代码,粘贴到终端,按下回车,即可在本地挂载存储并在 Docker 中运行 AnythingLLM
export STORAGE_LOCATION=$HOME/anythingllm &&
mkdir -p $STORAGE_LOCATION &&
touch "$STORAGE_LOCATION/.env" &&
docker run -d -p 3001:3001
--cap-add SYS_ADMIN
-v ${STORAGE_LOCATION}:/app/server/storage
-v ${STORAGE_LOCATION}/.env:/app/server/.env
-e STORAGE_DIR="/app/server/storage"
mintplexlabs/anythingllm- 打开Docker,点击左侧Containers,即可看到镜像已经打开了。
- 点击 Port 端口或者访问 http://localhost:3001/,AnythingLLM会自动在浏览器中打开!您的所有数据和进度将在容器重建或从 Docker Hub 提取之间保留。
仅首次使用的时候需要使用脚本,第二次使用仅需打开Docker运行AnythingLLM镜像,打开端口链接即可正常使用。

第二步:打开 AnythingLLM
1、打开 http://localhost:3001/ 后,首先会进入初始化设置。

2、我们根据提示按步骤填写和选择

这里选择合适的模型
- 付费模型:全球公认最强的是OpenAI、Anthropic、Genmini等等,但都需要到对应官网申请API接口,选择Generic OpenAI也可以使用中转API接口,我们推荐使用我们山鲸AI的中转API平台:https://api.2sj.ai,可联系官方客服获得最低优惠。
- 开源模型:当然如果想低成本,也可以下载一些开源的大模型,本文DeepSeek为例,我们可以使用Ollama和LM Studio来下载该模型。
3、选择使用人数,如果个人选择Just me,如果是团队请选择My Team。

4、如果选择个人,可选择是否设置密码

5、如果选择团队,请设置管理员用户名及密码,请注意账号密码弄丢不好找回,设置时请记住账号密码。

6、接下来可以看到我们选择的LLM大模型、嵌入式模型、向量数据库,默认的嵌入式模型和向量数据库不太好,我们后期修改。

7、然后输入邮箱,选择使用AnythingLLM主要做什么,可以随意选择。

8、然后输入工作区名字。

9、点击下一步,即可正式开始使用了。

10、进入我们的工作区,可以测试下模型的连通性。

第三步:下载开源模型
AnythingLLM不仅可以使用付费AI模型,还可以使用开源模型,本文主要以DeepSeek为例讲解如何使用。
①、使用 Ollama 下载模型
1、打开 Ollama 官网,根据电脑系统,下载对应的Ollama客户端,https://ollama.com/download

2、按照提示步骤安装并打开Ollama

3、打开Ollama官网模型页面寻找合适的模型,https://ollama.com/search

4、我们以DeepSeek R1为例,根据自己电脑配置,下载合适的版本

5、打开电脑终端,输入下面代码,按下回车,系统会自动下载对应模型,我们以14b的DeepSeek R1为例,等待下载结束即可。ollama run deepseek-r1:14b
6、等待模型下载结束后,打开之前我们部署好的AnythingLLM,点击右下角扳手图标可以进入设置界面

7、点击人工智能提供商,LLM首选项可以选择Ollama,此时模型会加载Ollama下载的所有模型,记得点击保存更改按钮。

8、同时也可以把嵌入式模型修改为DeepSeek-R1模型。

9、点击工作区旁边的齿轮按钮,可以进入工作区的设置界面。

10、我们把聊天设置里面的LLM提供商改为DeepSeek R1,记得要点击下方的 Update Workpace

11、同时代理配置里面的 LLM提供商改为DeepSeek R1,记得要点击下方的 Configure Agent Skills

②、使用 LM Studio下载模型
1、打开 LM Studio 官网,根据电脑系统,下载对应的 LM Studio 客户端,https://lmstudio.ai/

2、打开 DeepSeek 的抱脸社区(需要科学上网)下载适合自己电脑配置的模型,网站地址:https://huggingface.co/deepseek-ai

3、按照提示步骤安装并打开 LM Studio,并打开 我的模型,这样可以找到快速模型目录。

4、我们将下载好的模型放到该模型目录,默认目录为:C:Users用户名.lmstudiomodels,在该目录下新建两层文件夹,第一层为模型作者,第二层为模型名字,再将模型放到模型名字的文件夹。

5、回到 LM Studio 我的模型可以看到刚才保存的模型了

6、根据下图所示,打开左侧开发者,点击顶部加载刚才添加的模型,然后点击Status Running运行。

7、回到AnythinLLM,进入设置界面,即可看到这里可以选择LM Studio的AI模型了,同理代理设置都可以设置使用模型了。

第四步:上传知识库
我们首先可以测试未添加数据库时,AI模型会如何回复我们。

再测试上传知识库以后,AI会怎么回复呢?

如何上传知识库?
1、点击工作区的上传按钮,如下图所示:

2、进入上传知识库的界面,下图我们已经上传了一部分资料,这里可以看出我们可以上传任意格式的文档,甚至使用一个网页链接。

3、还可以上传Github、GitLab等仓库的资料、Youtube的视频字幕、网站及子链接的资料

4、上传资料后,点击 Move to Workspace 。

5、然后点击Save And Embed,即可上传并嵌入到工作区。

第五步,团队使用
前面使用AnythingLLM Docker版本,可以使用团队模式,接下来介绍如何开启团队使用。
1、在电脑终端中输入ipconfig找到自己电脑的IP,如下图所示:

2、IPv4 Address就是我们本机IP,IP+端口就可以访问我们本地部署的项目,即:http://192.168.0.13:3001,同Wi-Fi路由下的所有设备均可访问。

3、进入网站后台设置界面【管理员】-【用户】,可以为其他用户添加账号,也可以发送注册邀请链接给他人。

4、同局域网其他用户登录访问即可使用管理员同一个知识库,教程到这里就基本结束了,欢迎大家挖掘发现DeepSeek的更多能力,国产之光还是要支持的。



