Ollama + AnythingLLM搭建AI知识库,无需编程,人人皆可上手

在本地电脑上跑大语言模型(LLM),已经不是什么高科技操作了。随着技术的迭代,现在利用Ollam和AnythingLLM就可以轻松构建自己的本地知识库,人人皆可上手,有手就行。过往要达成这一目标,可是需要有编程经验的。

前排提示,文末有大模型AGI-优快云独家资料包哦!

首先得了解一下背后的原理。大概就是三步走:一是LLM,大语言模型,懂得怎么处理自然语言。二是嵌入模型,它的工作就是把复杂的数据简化,转化成易于处理的格式。最后是向量数据库,专门存储和管理那些转化后的数据。

说实话,虽然文章有点长,但里面多是附加的资源和细节,实际上手操作真的挺简单的。感兴趣的朋友,动手试试吧,说不定用AI构建自己知识库这种事挺酷的。

现在,咱们来看看如何实操:

第一步:安装ollam

    1. ollam,这玩意儿现在可以说是跑大模型的神器。不管你用的是PC、Mac还是树莓派,只要内存够,跑起来都不是问题。记得,7B模型至少要8G内存,13B的要16G,想玩70B的大家伙,那得有64G。首先,去ollama.com下载适合你操作系统的版本,我用的是Windows,下载安装完之后,在命令行敲一下ollama -V,能看到版本号就说明安装好了。
    1. 下载适合本地电脑的大模型,ollama网站上有个“Models”链接,点进去找到“gemma”模型。在“Tags”里面找到你想运行的模型版本,比如“7b”,旁边有个复制按钮,点击后把命令复制下来。然后就是在命令行里跑这个命令,第一次运行会自动下载模型。下载完毕,就能开始和它聊天或者让它帮你写代码了。

终端输入:

ollama run llama2:7b


下载完成后,就进入交互模式,这就可以开始聊天了。

至此,Gemma 模型的_本地部署运行已经完成了_,非常简单。

  1. 使用像 ChatGPT 那样的现代的聊天窗口

虽然部署完成了,但是上面那种_古老的终端_可能影响我们的交互体验,下面提供两个现代聊天窗口工具(如果你不想使用这些GUI,这一步可以跳过,不影响本地知识库搭建,直接去看下面的第二步:AnythingLLM安装):chatbox 和 openai web ui。

第一个:chatbox

打开设置,模型提供方选 ollama,API 地址是本地的 11434 端口,模型选 gemma:7b。

地址:https://chatboxai.app/zh


第二个:openai web ui

如何安装🚀
请注意,对于某些 Docker 环境,可能需要额外的配置。如果您遇到任何连接问题,我们有关Open WebUI 文档的详细指南随时可以为您提供帮助。

快速开始使用 Docker 🐳
使用 Docker 安装 Open WebUI 时,请确保 -v open-webui:/app/backend/data 在 Docker 命令中包含 。此步骤至关重要,因为它确保您的数据库正确安装并防止任何数据丢失。

  • • 如果 Ollama 在您的计算机上,请使用以下命令:
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main


  • • 如果 Ollama 位于不同的服务器上,请使用以下命令:
# 要连接到另一台服务器上的 Ollama,请将 更改 OLLAMA_BASE_URL 为服务器的 URL:   docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=https://example.com -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main


安装完成后,您可以通过 http://localhost:3000 访问 Open WebUI。享受!😄

打开 WebUI:服务器连接错误
如果您遇到连接问题,通常是由于 WebUI docker 容器无法访问容器内位于 127.0.0.1:11434 (host.docker.internal:11434) 的 Ollama 服务器。使用 --network=hostdocker 命令中的标志来解决此问题。请注意,端口从 3000 更改为 8080,导致链接:http://localhost:8080。

Docker 命令示例:

docker run -d --network=host -v open-webui:/app/backend/data -e OLLAMA_BASE_URL=http://127.0.0.1:11434 --name open-webui --restart always ghcr.io/open-webui/open-webui:main


其他安装方法
我们提供各种安装替代方案,包括非 Docker 方法、Docker Compose、Kustomize 和 Helm。请访问我们的 Open WebUI 文档或加入我们的 Discord 社区以获得全面的指导。

安装文档地址:🏡 Home | Open WebUI

https://docs.openwebui.com/


上面只是让模型不足到本地下面来构建本地知识库,如果仅仅是构建本地知识库的话上面那些 GUI 可以不安装,下面开始_正题_:下载本地知识库软件:

第二步:AnythingLLM安装

下载地址:https://useanything.com/download

产品概述

AnythingLLM 是一个全栈应用程序,您可以使用商业现成的 LLM 或流行的开源 LLM 和 vectorDB 解决方案来构建私有 ChatGPT,无需任何妥协,您可以在本地运行,也可以远程托管并能够智能聊天以及您提供的任何文件。

AnythingLLM 将您的文档划分为名为 workspaces 的功能很像线程,但增加了文档的容器化。工作区可以共享文档,但它们不会相互通信,因此您可以保持每个工作区的上下文干净。

AnythingLLM 的一些很酷的功能

以下是 AnythingLLM 的一些酷炫功能:

    1. 支持多用户实例和权限
    1. 新的自定义可嵌入式聊天小部件,可以嵌入到你的网站
    1. 支持多种文件类型(PDF,TXT,DOCX等)
    1. 通过简单的用户界面管理你的向量数据库中管理文件
    1. 提供两种聊天模式:对话和查询。对话保留先前的问题和修订。查询是针对文档的简单QA
    1. 聊天过程中的引用
    1. 100%适合云部署。
    1. “自带LLM”模型
    1. 处理大文件时极有效的节约成本措施。你永远不必为将大型文件或记录输送到聊天机器人中支付费用,比其他的文件聊天机器人解决方案节省90%的费用。
    1. 提供全面的开发者API用于自定义集成!

同类开源项目大多基于Python语言开发。AnythingLLM采用了Javascript,前端用React,后端用Node,对于全栈工程师非常友好。

  • 前端: React和ViteJS,实现创建和管理大模型用到的知识库

  • 后端: Node.js Express框架,实现向量数据库的管理和所有与大模型的交互

  • 采集器: Node.js Express框架,实现对文档的处理解析

多用户模式

这一点对于企业级应用特别关键,AnythingLLM支持多用户模式,3种角色的权限管理。

系统会默认创建一个管理员(Admin)账号,拥有全部的管理权限。

第二种角色是Manager账号,可管理所有工作区和文档,但是不能管理大模型、嵌入模型和向量数据库。

普通用户账号,则只能基于已授权的工作区与大模型对话,不能对工作区和系统配置做任何更改。

打开ollama端口:

Ollama其实有两种模式:

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

这里使用服务器模式,Ollama在后端运行大模型,开发IP和端口给外部软件使用。

ollama serve


通过终端或者命令行,访问 http://localhost:11434 进行验证:

curl http://localhost:11434


如果看到以下输出,表示Ollama正在运行:

Ollama is running


下载AnythingLLM之后开始进入启动的配置阶段,开始之前请确保 ollama serve 运行,或者终端执行 ollama run xxx(任何一个模型)。

否则,AnythingLLM和其他依赖于Ollama端口的软件(前面的几个GUI)会运行不了或者找不到模型,错误如下:

启动并配置AnythingLLM
搭建一个本地知识库,会涉及到三个关键:``1. LLM Model,大语言模型。它负责处理和理解自然语言。``2. Embedding Model,嵌入模型。它负责把高维度的数据转化为低维度的嵌入空间。这个数据处理过程在RAG中非常重要。``3. Vector Store,向量数据库,专门用来高效处理大规模向量数据。


本地大模型选择

选择 Ollama,填入 Ollama 的 http://host.docker.internal:11434 端口,然后选择你下载的模型。当然你也可以使用 OpenAI,使用更强大的云端模型,提供基础模型支持。但这样的话,就不是完全本地化的私有部署了。

Embedding 配置

可以选择:https://ollama.com/library/nomic-embed-text 或者 AnythingLLM 自带的 AnythingLLMEmbedder。

向量数据库配置

AnythingLLM 默认使用内置的向量数据库 LanceDB。这是一款无服务器向量数据库,可嵌入到应用程序中,支持向量搜索、全文搜索和 SQL。我们也可以选择 Chroma、Milvus、Pinecone 等向量数据库。

我选择了 LanceDB。你想修改前面的推理模型或者嵌入模型,以及下列数据库,注册完成之后,可以在后台设置修改。

完成上述登录配置操作之后,让我们进入界面介绍(如下图)。

导入外部 Documents

AnythingLLM 可以支持 PDF、TXT、DOCX 等文档,可以提取文档中的文本信息,经过嵌入模型(Embedding Models),保存在向量数据库中,并通过一个简单的 UI 界面管理这些文档。

为管理这些文档,AnythingLLM 引入工作区(workspace)的概念,作为文档的容器,可以在一个工作区内共享文档,但是工作区之间隔离。AnythingLLM 既可以上传文档,也可以抓取网页信息。

将文档保存嵌入工作区向量数据库

根据知识库中上传的文档,进行知识问答。

RAG 智能问答

Ok,经过我们前面所有的艰难准备,现在正式部署成功,让我们来体验一下:

相比文档中的原文,大模型给出的回答还不够准确(与选择的基础模型有关,我自己的笔记本电只能跑 gemma: 6b 的),未来,这套系统还可在文本召回和重排等方面,进一步调优和完善。

点击空间的设置按钮并切换为Query状态后,模型将仅在找到文档上下文时提供答案(回答会更加绑定于知识库)。

后面是一些API操作:

生成系统 API 私钥

设置 API 访问授权密码

系统提供的 API 列表


总结

常见错误:
    1. 本地运行大模型耗资源,需要选择较小的模型作为基础模型。在终端中运行时可能会出现 CUDA 错误,表示显存不足,导致提供的端口失效。
    1. 中文支持不够完善。
  1. 3. 文中提到的技术软件工具有:Ollama、Chatbox、Open WebUI、向量数据库、嵌入模型、本地模型 Gemma、AnythingLLM

附加信息:

在本地快速运行大模型,可以使用 Ollama 和 Hugging Face。Hugging Face 提供了两种方式来访问大模型:

    1. Inference API (Serverless):通过 API 进行推理。
    import requests      API_URL = "https://api-inference.huggingface.co/models/meta-llama/Llama-2-7b-hf"   headers = {"Authorization": "Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}      def query(payload):       response = requests.post(API_URL, headers=headers, json=payload)       return response.json()      output = query({       "inputs": "Can you please let us know more details about your ",   })
    
    
    
    1. 本地执行:使用 Hugging Face 的 pipeline 来进行高级操作。
    from transformers import pipeline      pipe = pipeline("text-generation", model="meta-llama/Llama-2-7b-hf")
    
    
    

使用 Hugging Face 对于不懂编程的人来说可能比较困难,因为需要申请 API Key 并且需要本地有 Python 或其他编程语言的环境。而使用 Ollama 来运行本地大模型则更加简单。


最先掌握AI的人,将会比较晚掌握AI的人有竞争优势

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

倘若大家对大模型抱有兴趣,那么这套大模型学习资料肯定会对你大有助益。

针对0基础小白:

如果你是零基础小白,快速入门大模型是可行的。
大模型学习流程较短,学习内容全面,需要理论与实践结合
学习计划和方向能根据资料进行归纳总结

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

请添加图片描述

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉大模型实战案例👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉大模型视频和PDF合集👈

这里我们能提供零基础学习书籍和视频。作为最快捷也是最有效的方式之一,跟着老师的思路,由浅入深,从理论到实操,其实大模型并不难

在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

### 使用 DeepSeek、OllamaAnythingLLM 构建本地知识库 #### 准备工作 为了成功构建包含 DeepSeek、OllamaAnythingLLM 的本地知识库,需先确认环境配置满足最低硬件需求,并完成必要的软件安装。 - **操作系统支持**:Linux, macOS 或 Windows (建议使用 WSL2)[^1]。 - **依赖项准备**:Python 3.x 版本及其开发工具链;Docker 及 Docker Compose 安装完毕并能正常运行[^2]。 #### 配置与部署 ##### 获取所需资源 通过命令行拉取最新版本的 Ollama 模型文件至本地存储: ```bash ollama pull bge-m3 ``` 此操作会下载指定的大规模预训练语言模型及相关组件,确保后续处理流程顺利进行。 ##### 初始化项目结构 创建一个新的目录用于存放整个项目的源码以及相关配置文件。在此基础上初始化 Git 仓库以便于版本控制管理。 ```bash mkdir my_local_knowledge_base && cd $_ git init . ``` ##### 设置 DeepSeek 环境变量 编辑 `.env` 文件加入如下内容以适应特定场景下的参数调整(如 API 密钥、端口映射等)。这一步骤对于保障系统的稳定性和安全性至关重要。 ```plaintext DEEPSEEK_API_KEY=your_api_key_here PORT=8080 DEBUG=True ``` ##### 整合 AnythingLLM 平台 利用 AnythingLLM 提供的功能接口快速对接各类外部数据源,包括但不限于静态 HTML 页面、PDF 文档集或是关系型数据库表单记录。具体实现方式可参照官方文档说明中的 Python SDK 应用实例。 ```python from anythingllm import DocumentLoader, KnowledgeBaseBuilder loader = DocumentLoader(source="path/to/your/documents") builder = KnowledgeBaseBuilder(loader) knowledge_base = builder.build() ``` #### 启动服务 一切就绪之后,在终端执行启动脚本来激活全部微服务单元,使之协同运作形成完整的解决方案栈。 ```bash docker-compose up -d --build ``` 此时访问 `http://localhost:8080` 即可见证由 DeepSeek 加持的人工智能驱动的知识检索界面雏形初现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值