手把手教你用Ollama AnythingLLM搭建AI知识库,无需编程,跟着做就行!

news2024/9/20 13:05:33

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

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

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

现在,咱们来看看如何实操:
在这里插入图片描述

第一步:安装ollam

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

终端输入:

ollama run llama2:7b
1

img

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

img

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

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

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

第一个:chatbox

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

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


第二个:openai web ui

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

img

快速开始使用 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
1
  • • 如果 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
1

安装完成后,您可以通过 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
1

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

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

https://docs.openwebui.com/
1

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

第二步:AnythingLLM安装

img

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

产品概述

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

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
1

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

curl http://localhost:11434
1

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

Ollama is running
1

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

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

img

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

本地大模型选择

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

img

Embedding 配置

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

img

向量数据库配置

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

img

img

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

img

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

img

导入外部 Documents

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

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

img

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

img

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

RAG 智能问答

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

img

img

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

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

img

后面是一些API操作:

生成系统 API 私钥

img

设置 API 访问授权密码

img

系统提供的 API 列表

img


总结

常见错误:
    1. 本地运行大模型耗资源,需要选择较小的模型作为基础模型。在终端中运行时可能会出现 CUDA 错误,表示显存不足,导致提供的端口失效。
  1. img
    1. 中文支持不够完善。
  2. \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
    
    1. 本地执行:使用 Hugging Face 的 pipeline 来进行高级操作。
    from transformers import pipeline      pipe = pipeline("text-generation", model="meta-llama/Llama-2-7b-hf")
    1
    

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

大模型岗位需求

大模型时代,企业对人才的需求变了,AIGC相关岗位人才难求,薪资持续走高,AI运营薪资平均值约**18457元,**AI工程师薪资平均值约**37336元,*大模型算法薪资平均值约*39607元。
在这里插入图片描述

掌握大模型技术你还能拥有更多可能性

• 成为一名全栈大模型工程师,包括Prompt,LangChain,LoRA等技术开发、运营、产品等方向全栈工程;

• 能够拥有模型二次训练和微调能力,带领大家完成智能对话、文生图等热门应用;

• 薪资上浮10%-20%,覆盖更多高薪岗位,这是一个高需求、高待遇的热门方向和领域;

• 更优质的项目可以为未来创新创业提供基石。

可能大家都想学习AI大模型技术,也想通过这项技能真正达到升职加薪,就业或是副业的目的,但是不知道该如何开始学习,因为网上的资料太多太杂乱了,如果不能系统的学习就相当于是白学。为了让大家少走弯路,少碰壁,这里我直接把全套AI技术和大模型入门资料、操作变现玩法都打包整理好,希望能够真正帮助到大家。

-END-


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

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

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

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

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

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

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

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

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

👉大模型实战案例👈

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

在这里插入图片描述

👉大模型视频和PDF合集👈

观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈

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

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

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

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

👉获取方式:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2148967.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

令人拍案叫绝的Python条件控制技巧

目录 1. 条件控制的重要性 2. 理解条件语句的基础 3. 使用 elif 增加更多选择 4. 利用 in 和 not in 进行集合匹配 5. 利用 and 与 or 连接条件 6. 高级技巧:列表推导式中的条件表达式 7. 实战案例:自动评分系统 8. 总结 文末福利 1. 条件控制的…

计算机网络34——Windows内存管理

1、计算机体系结构 2、内存管理 分为连续分配管理和非连续分配管理 在块内存在的未使用空间叫内部碎片,在块外存在的未使用空间叫外部碎片 固定分区分配可能出现内部碎片,动态分区分配可能出现外部碎片 3、逻辑地址和实际地址的互相转换 4、缺页中断 …

渗透测试常用工具(非常详细)从零基础入门到精通,看完这一篇就够了。

对于白帽子来说,在进行渗透测试、代码审计、逆向工程等一系列工作中,都离不开安全工具的支撑,这些工具像一把把利剑,可以大大提高渗透效率。 在本篇中,我总结了超多网络安全工具,涉及暴力破解、渗透字典、…

Linux入门学习:make/Makefile(Linux项目自动化构建工具)

文章目录 1. makefile文件语法2. make clean工程清理3. 细节语法4. make原理 ⭕背景: 会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中&#xff0c…

Electron 安装包 asar 解压定位问题实战

背景 在开发 Electron 过程中,我们想知道 Electron 打包的最终形态是什么样的,以便我们能更好的理解 Electron 打包的过程,以及逆向来快速追踪一些问题,例如下面这个报错,以前这类报错都是靠猜,现在则可以…

算法设计与分析(最长公共子序列

目录 最长公共子序列问题描述代码实现输出结果注意事项 小结: 最长公共子序列 最长公共子序列(Longest Common Subsequence, LCS)问题是计算给定两个序列的最长子序列的长度,这个子序列不要求连续,但需要保持相同的相…

如何在SpringCloud中使用Consul进行服务发现与配置管理

Spring Cloud是一个用于构建分布式系统的开发工具包。它提供了一系列解决方案,用于在分布式系统中管理和协调服务发现、配置管理、负载均衡、容错机制等功能。Consul是一种用于服务发现、配置管理和分布式一致性的工具,与Spring Cloud可以很好地集成在一…

程序员常用开发软件集合

文本编辑器 Sublime Text 编程工具 Visual Studio Code IntelliJ IDEA 数据连接客户端 Navicat DBeaver 远程连接客户端 WinSCP xshell WindTerm 流程图工具 draw.io 远程连接电脑工具 ToDesk 向日葵 teamviewer

在数据开发、消费中,如何科学治理重复数据难题?

解决这个问题,还得从技术系统架构和数据开发、消费的流程管理上来找原因: 一、数据集成或同步过程中有一些技术挑战,如多源异构数据集成时缺失去重策略、数据同步机制的不完善或配置错误,导致重复数据被多次引入系统;…

stable diffusion 神经网络插件 controlnet 的安装,很详细

stable diffusion 神经网络插件 controlnet 的安装,很详细 一、前言二、下载1、方式一2、方式二 一、前言 学到 stable diffusion 的 controlnet 插件,安装也略微曲折,这里做个记录。 下载前保证 github 能正常访问。 二、下载 1、方式一…

Mybatis续

步骤 爆红 点了右上角还是爆红不要着急,右下角正在下载 new 如果new的是package,用com.zhang,能事项分级 如果new的是文件夹,用com/zhang,就能实现分级。如果用com.zhang,则创建的文件夹名是com.zhang …

开源笔记Joplin本地Docker部署结合内网穿透实现多设备端同步笔记

文章目录 前言1. 安装Docker2. 自建Joplin服务器3. 搭建Joplin Sever4. 安装cpolar内网穿透5. 创建远程连接的固定公网地址 前言 本文主要介绍如何在自己的服务器上利用docker搭建 Joplin Server,并对同步进行配置,再结合cpolar内网穿透工具实现公网远程…

神经网络拟合离散标签值

神经网络拟合离散标签值 1. 数据预处理1.1 添加参数解析1.2 数据预处理逻辑1.3 标签处理逻辑1.4 构建特征和标签1.5 数据归一化、转torch1.6 实现Dataset类 2. 定义model3. 定义train脚本3.1 loss和optimizer3.2 train3.3 predict 1. 数据预处理 1.1 添加参数解析 为了方便管…

第二证券:金价涨了!创一历史之最!

当地时间周四,金融商场进一步消化美联储大幅降息50个基点的利率抉择,认为这是为了完结美国经济“软着陆”的一次防备式降息,而非紧急应对阑珊风险的降息,加之当天公布的上星期初度申请赋闲救助人数低于预期,投资者对美…

B站前端错误监控实践

前言 从23年开始,我们团队开始前端错误监控方向的开发。经历了一些列的迭代和发展,从监控SDK、上报、数据治理、看板集成、APM自研可视化初步完成了一条完整且适合B站前端监控。 截止目前(2024.08.01),前端监控在B站85%以上的业务线&#xf…

Linux运维培训班靠谱吗?如何判断一个培训班的教学质量?

当我们下定决心打算系统培训Linux运维时,哪家机构比较好成为了我们面临的最大难题。之前分享过很多培训机构的个人感受,但授人以鱼不如授人以渔,说到底那些都是我个人的看法,因此今天打算帮助大家学会如何判断一个培训班的好坏。 …

使用 SSCB 保护现代高压直流系统的优势

在各种应用中,系统效率和功率密度不断提高,这导致了更高的直流系统电压。然而,传统的电路保护解决方案不足以在保持高可靠性和安全性的同时有效保护这些高压配电系统。 固态断路器 (SSCB) 和电熔断器具有众多优点&…

GitLab 迁移并推送代码仓库

迁移并推送代码仓库到 GitLab 可以有多种方法,以下是一些常见的步骤: 一、创建空仓库 在 Gitlab 上创建一个空仓库 方式一:点击左上角“+”号,选择新建项目/仓库 方式二:进入“项目”界面,点击右上角“新建项目”按钮 选择“创建空白项目” 填写项目信息并点击“新…

从黎巴嫩电子通信设备爆炸看如何防范网络电子袭击

引言: 在当今数字化时代,电子通信设备已成为我们日常生活中不可或缺的一部分。然而,近期黎巴嫩发生的电子设备爆炸事件提醒我们,这些设备也可能成为危险的武器。本文将深入探讨电子袭击的原理、防范措施,以及网络智能…

SpinalHDL之结构(四)

本文作为SpinalHDL学习笔记第六十四篇,介绍SpinalHDL的时钟域(Clock domains)。 目录: 1.简介(Introduction) 2.例化(Instantiation) ⼀、简介(Introduction) 在SpinalHDL中, 时钟和复位信号能结合起来构成时钟域(clock domain)。时钟域可以应⽤于设计的某些区域中, 例化在…