基于Ollama和AnythingLLM搭建本地化知识库RAG

2024-04-24 14:52

本文主要是介绍基于Ollama和AnythingLLM搭建本地化知识库RAG,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

先看效果,我上传了一个pdf如下:
在这里插入图片描述
上传之后做向量化处理,处理完成之后,就可以开始问答了。结果如下:
在这里插入图片描述
开始动手搭建自己的知识库!!!

第一步:安装ollama

此步骤省略,不会可以看这篇文章有详细的过程:ollama在windows系统上安装总结以及注意事项
ollama提供的有api服务,不仅仅使用命令行来使用,也可以将应用程序连接到 Ollama API 。这样就可以把 AI 的功能整合到自己的软件里。
以下是如何连接和使用 Ollama API 的步骤:

  1. 默认地址和端口:Ollama API 的默认地址是http://localhost:11434。
  2. 可以通过系统环境变量修改端口号。如变量名:OLLAMA_HOST
    变量值(端口)::8999 。注意修改之后一定要重启ollama服务。在这里插入图片描述
  3. 我这里没有做任何更改,直接使用的是默认的:在这里插入图片描述
    具体的api请求格式请看官网:ollama官网api
    我在本地用api测试如下:
    在这里插入图片描述

第二步:AnythingLLM安装

在这里插入图片描述

下载地址:AnythingLLM安装
下载好之后,双击下一步安装即可。
安装完成之后,桌面会有一个在这里插入图片描述
双击打开如下:
请添加图片描述

搭建一个本地知识库,会涉及到三个关键:

  1. LLM Model,大语言模型。它负责处理和理解自然语言。
  2. Embedding Model,嵌入模型。它负责把高维度的数据转化为低维度的嵌入空间。这个数据处理过程在RAG中非常重要。
  3. Vector Store,向量数据库,专门用来高效处理大规模向量数据。
    开始配置,直接点击Get started。

我这里已经配置好了,打开后直接是这样的界面了在这里插入图片描述

  1. 本地大模型选择

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

LLM provider: Ollama    	
URL:http://127.0.0.1:11434 
Chat Model Selection: 选择你们安装的模型,我的是gemma:latest		
Token context window: 4096
  1. Embedding 配置

可以选择:https://ollama.com/library/nomic-embed-text 或者 AnythingLLM 自带的 AnythingLLMEmbedder。
如果选择nomic-embed-text首先在ollama里拉取。
我这里选择的是nomic-embed-text

Embedding :选择 ollama
Ollama Base URL:http://127.0.0.1:11434
Embedding Model Selection: nomic-embed-text:latest
Token context window: 8192

在这里插入图片描述

  1. 向量数据库配置

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

  1. 接下来就算是完成了,应该是这样的界面,如果是第一次配置
    在这里插入图片描述
    直接下一步
  2. 会让你填写信息,可填可不填
    在这里插入图片描述
  3. 创建工作区
    在这里插入图片描述
  4. 进入工作区聊天界面
    在这里插入图片描述
  5. 导入外部 Documents

AnythingLLM 可以支持 PDF、TXT、DOCX 等文档,可以提取文档中的文本信息,经过嵌入模型(Embedding Models),保存在向量数据库中,并通过一个简单的 UI 界面管理这些文档。为管理这些文档,AnythingLLM 引入工作区(workspace)的概念,作为文档的容器,可以在一个工作区内共享文档,但是工作区之间隔离。AnythingLLM 既可以上传文档,也可以抓取网页信息。
将文档保存嵌入工作区向量数据库
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
9. 对话问答测试
在这里插入图片描述
到这里就结束了。就已经搭建好了自己的一个本地的知识库。
更改设置的话:
点击空间的设置按钮并切换为Query状态后,模型将仅在找到文档上下文时提供答案(回答会更加绑定于知识库)。
在这里插入图片描述
修改前面的推理模型或者嵌入模型,以及数据库。
在这里插入图片描述
在这里插入图片描述

这篇关于基于Ollama和AnythingLLM搭建本地化知识库RAG的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/932066

相关文章

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

Windows Server 2025 搭建NPS-Radius服务器的步骤

《WindowsServer2025搭建NPS-Radius服务器的步骤》本文主要介绍了通过微软的NPS角色实现一个Radius服务器,身份验证和证书使用微软ADCS、ADDS,具有一定的参考价... 目录简介示意图什么是 802.1X?核心作用802.1X的组成角色工作流程简述802.1X常见应用802.

Spring Cloud GateWay搭建全过程

《SpringCloudGateWay搭建全过程》:本文主要介绍SpringCloudGateWay搭建全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Spring Cloud GateWay搭建1.搭建注册中心1.1添加依赖1.2 配置文件及启动类1.3 测

SpringBoot快速搭建TCP服务端和客户端全过程

《SpringBoot快速搭建TCP服务端和客户端全过程》:本文主要介绍SpringBoot快速搭建TCP服务端和客户端全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录TCPServerTCPClient总结由于工作需要,研究了SpringBoot搭建TCP通信的过程

Gradle下如何搭建SpringCloud分布式环境

《Gradle下如何搭建SpringCloud分布式环境》:本文主要介绍Gradle下如何搭建SpringCloud分布式环境问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Gradle下搭建SpringCloud分布式环境1.idea配置好gradle2.创建一个空的gr

Linux搭建单机MySQL8.0.26版本的操作方法

《Linux搭建单机MySQL8.0.26版本的操作方法》:本文主要介绍Linux搭建单机MySQL8.0.26版本的操作方法,本文通过图文并茂的形式给大家讲解的非常详细,感兴趣的朋友一起看看吧... 目录概述环境信息数据库服务安装步骤下载前置依赖服务下载方式一:进入官网下载,并上传到宿主机中,适合离线环境

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析