Verba - Weaviate RAG 私人助理

news2024/11/18 14:37:03

文章目录

    • 一、关于 Verba
      • 什么是Verba?
      • 功能列表
    • 二、Verba入门
      • 安装部署
    • 三、API密钥
      • 1、Weaviate
      • 2、Ollama
      • 3、UNSTRUCTURED
      • 4、AssemblyAI
      • 5、OpenAI
      • 6、HuggingFace
    • 四、如何使用pip进行部署
    • 五、如何从源代码构建
    • 六、如何使用Docker安装Verba
      • Verba Walkthrough
        • 选择您的部署
        • 导入您的数据
        • 查询您的数据
    • 其它
      • 已知问题
      • 常见问题解答


一、关于 Verba

  • github : https://github.com/weaviate/Verba
  • 官网 : https://verba.weaviate.io/
  • 前段文档:https://github.com/weaviate/Verba/blob/main/FRONTEND.md
  • 介绍视频 Chat With Your Data With Verba : https://www.youtube.com/watch?v=2VCy-YjRRhA

欢迎来到Verba: The Golden RAGtriever,这是一个开源应用程序,旨在为开箱即用的检索增强生成(RAG)提供端到端、流线型和用户友好的界面。只需几个简单的步骤,您就可以在本地使用Ollama和Huggingface或通过LLM提供商(如 Anthrophic、Cohere和OpenAI)轻松探索您的数据集并提取见解。


什么是Verba?

Verba是一个完全可定制的个人助理,利用 RAG 来查询和与您的数据交互,无论是本地还是通过云部署
解决有关文档的问题,交叉引用多个数据点或从现有知识库中获得见解。Verba将最先进的RAG技术与Weaviate的上下文感知数据库相结合。根据您的个人用例在不同的RAG框架、数据类型、分块和检索技术以及LLM提供程序之间进行选择。

VIDEO LINK


功能列表

🤖模型支持已实现描述
Ollama(例如Llama3)由Ollama提供支持的本地嵌入和生成模型
HuggingFace(例如MiniLMEmbedder)由HuggingFace提供支持的本地嵌入模型
Cohere(例如Command R+)Cohere的嵌入和生成模型
人性化(例如Claude Sonnet)人性化的嵌入和生成模型
OpenAI(例如GPT4)OpenAI的嵌入和生成模型

🤖嵌入支持已实现描述
Weaviate嵌入模型由Weaviate
Ollama本地嵌入模型由Ollama
SentenceTransformers嵌入模型由HuggingFace
Cohere嵌入模型由Cohere
VoyageAI嵌入模型由VoyageAI
OpenAI嵌入模型由OpenAI

📁数据支持已实现描述
Unstructure dIO通过UNSTRUCTURED
Firecrawl通过Firecrawl刮取和爬取URL
PDF Ingest将PDF导入Verba
GitHub和GitLab从Github和GitLab导入文件
CSV/XLSX Ingest将表数据导入Verba
. DOCX导入.docx文件
多模式(使用AssemblyAI)通过AssemblyAI导入和转录音频

✨RAG功能已实现描述
混合搜索语义搜索与关键字搜索相结合
自动完成建议Verba建议自动完成
过滤在执行RAG之前应用过滤器(例如文档、文档类型等)
可定制的元数据对元数据的自由控制
异步摄取异步摄取数据以加快流程
高级查询计划⏱️基于LLM评估的任务委派
重新排序计划⏱️根据上下文对结果进行重新排序以改进结果
RAG评估计划⏱️评估RAG管道的接口

🗡️组块技术实现描述
令牌块由令牌驱动spaCy
句子块由句子驱动spaCy
语义块和组由语义句子相似度
递归基于规则的递归块数据
HTML块 HTML 文件
Markdown块Markdown文件
代码块代码文件
JSON块JSON文件

🆒实现描述
Docker支持Verba可通过Docker
自定义前端Verba的前端可通过前端
矢量查看器在3D中可视化您的数据

🤝RAG库已实现描述
LangChain实施LangChain RAG管道
Haystack计划⏱️实施Haystack RAG管道
LlamaIndex计划⏱️实施LlamaIndex RAG管道

缺少什么?请随意创建一个新问题或讨论您的想法!

Showcase of Verba



二、Verba入门

安装部署

Verba有三个部署选项:

  • 通过pip安装
pip install goldenverba

  • 从源代码构建
git clone https://github.com/weaviate/Verba

pip install -e .

  • 使用Docker进行部署

先决条件:如果您没有使用Docker,请确保您的系统上安装了Python >=3.10.0

git clone https://github.com/weaviate/Verba

docker compose --env-file <your-env-file> up -d --build

如果您不熟悉Python和虚拟环境,请阅读Python教程指南。

三、API密钥

您可以在Verba前端设置所有API密钥,但是为了让您的生活更轻松,我们还可以准备一个.env文件,Verba将在其中自动查找密钥。在您要启动Verba的同一目录中创建一个.env。您可以在goldenverba目录中找到一个.env.example文件。

确保只设置您打算使用的环境变量,缺少或不正确值的环境变量可能会导致错误。

以下是您可能需要的API键和变量的完整列表:

环境变量描述
WEAVIATE_URL_VERBA到您托管的Weaviate群集的URL连接到您托管的WCS群集
WEAVIATE_API_KEY_VERBAAPI凭据到您托管的Weaviate群集连接到您的WCS群集
ANTHROPIC_API_KEY您的人工API密钥访问人工模型
OPENAI_API_KEY您的OpenAI密钥访问OpenAI模型
OPENAI_BASE_URLOpenAI实例模型
COHERE_API_KEY您的API密钥访问Cohere模型
OLLAMA_URLOllama实例的URL(例如http://localhost:11434)访问Ollama模型
UNSTRUCTURED_API_KEY您的API密钥访问UNSTRUCTURED数据摄取
UNSTRUCTURED_API_URLUNSTRUCTURED 的URL访问UNSTRUCTURED数据摄取
ASSEMBLYAI_API_KEY您的API密钥访问到AssemblyAI
GITHUB_TOKEN您的GitHub令牌通过GitHub访问数据摄取
GITLAB_TOKEN您的GitLab令牌通过GitLab访问数据摄取
FIRECRAWL_API_KEY您的Firecrawl API密钥通过Firecrawl访问数据摄取
VOYAGE_API_KEY您的VoyageAI API密钥通过VoyageAI访问嵌入式模型
EMBEDDING_SERVICE_URL您的嵌入式服务实例的URL通过Weaviate Embedding Service访问嵌入式模型
EMBEDDING_SERVICE_KEY您的嵌入式服务密钥通过Weaviate Embedding Service访问嵌入式模型

API Keys in Verba


1、Weaviate

Verba根据您的需要提供连接到Weaviate实例的灵活性。您有三个选择:

  1. 本地部署:使用在您的设备上本地运行的Weaviate Embedded(Windows除外,请选择Docker/Cloud部署)
  2. Docker部署:在运行Verba的Dockerfile时选择此选项。
  3. 云部署:使用托管在WCD上的现有Weaviate实例运行Verba

🌩️Weaviate云部署(WCD)

如果您更喜欢基于云的解决方案,Weaviate Cloud(WCD)提供了一个可扩展的托管环境。按照Weaviate集群设置指南了解如何设置云集群并获取API密钥。

🐳Docker部署 另一个本地替代方案是使用Docker部署Weaviate。有关详细信息,请参阅如何使用Docker安装Verba部分。

在这里插入图片描述


2、Ollama

Verba支持Ollama模型。在您的设备上下载并安装Ollama(https://ollama.com/download)。确保使用ollama run <model>安装您喜欢的LLM。

llama3llama3:70bmistral测试。较大的模型通常表现更好,但需要更多的计算能力。

确保Ollama Server在后台运行,并且您不会摄取具有不同ollama模型的文档,因为它们的向量维度可能会有所不同,这会导致错误

您可以通过运行以下命令来验证这一点

ollama run llama3

3、UNSTRUCTURED

Verba支持通过UNSTRUCTUREDIO(例如纯文本、. pdf、.csv等)导入文档。要使用它们,您需要UNSTRUCTURED_API_KEYUNSTRUCTURED_API_URL的环境变量。您可以从UNSTRUCTURED

UNSTRUCTURED_API_URL默认设置为https://api.unstructured.io/general/v0/general


4、AssemblyAI

Verba支持通过AssemblyAI导入文档(音频文件或视频文件中的音频)。要使用它们,您需要ASSEMBLYAI_API_KEY环境变量。您可以从AssemblyAI获取


5、OpenAI

Verba支持OpenAI模型,如Ada、GPT3和GPT4。要使用它们,您需要指定OPENAI_API_KEY的环境变量。你可以从OpenAI

您还可以添加一个OPENAI_BASE_URL来使用代理,例如LiteLLM(https://github.com/BerriAI/litellm)

OPENAI_BASE_URL=YOUR-OPENAI_BASE_URL

6、HuggingFace

如果您想使用HuggingFace功能,请确保安装正确的Verba包。它将安装使用本地嵌入模型所需的包。请注意,在启动时,Verba将在使用时自动下载并安装嵌入模型。

pip install goldenverba[huggingface]

pip install `.[huggingface]`

如果您使用的是Docker,请相应地修改Dockerfile


四、如何使用pip进行部署

要求:Python >=3.10.0


1、(非常重要)初始化一个新的Python环境

python3 -m virtualenv venv

2、Install Verba

pip install goldenverba

3、Launch Verba

verba start

您可以通过 flags 指定 --port--host


4、访问韦尔巴

Visit localhost:8000

5、(可选)创建. env文件并添加环境变量


五、如何从源代码构建

1、克隆Verba仓库

git clone https://github.com/weaviate/Verba.git

2、初始化一个新的Python环境

python3 -m virtualenv venv

3、安装 Verba

pip install -e .

4、Launch Verba

verba start

您可以通过 flags 指定–port和–host


5、访问韦尔巴

Visit localhost:8000

6、(可选)创建. env文件并添加环境变量


六、如何使用Docker安装Verba

Docker是一组platform-as-a-service产品,它们使用操作系统级虚拟化在称为容器的软件包中交付软件。要开始使用Docker部署Verba,请按照以下步骤操作。如果您需要有关Docker使用的更详细说明,请查看Docker课程。

0、克隆Verba存储库确保您的系统上安装了Git。然后,打开终端或命令提示符并运行以下命令来克隆Verba存储库:

git clone https://github.com/weaviate/Verba.git

1、设置必要的环境变量 确保在.env文件中设置所需的环境变量。您可以在API密钥部分

2、调整docker-compose文件 您可以使用docker-compose.ymlverba服务下添加所需的环境变量,也可以调整Weaviate Docker设置以启用身份验证或更改数据库实例的其他设置。您可以在我们的docker-compose留档中阅读有关Weaviate配置的更多信息

请确保只添加您真正需要的环境变量。

3、使用Docker进行部署安装了Docker并克隆了Verba存储库,在终端或命令提示符中导航到包含Docker Compose文件的目录。运行以下命令以分离模式启动Verba应用程序,这允许它在后台运行:

docker compose up -d

docker compose --env-file goldenverba/.env up -d --build

此命令将下载必要的Docker映像,创建容器,并启动Verba。请记住,Docker必须安装在您的系统上才能使用此方法。有关Docker的安装说明和更多详细信息,请访问官方的Docker留档。

4、访问韦尔巴

  • 您可以访问本地Weaviate实例localhost:8080
  • 您可以访问Verba前端localhost:8000

如果希望Docker实例安装特定版本的Verba,可以编辑Dockerfile并更改安装行。

RUN pip install -e '.'

Verba Walkthrough


选择您的部署

您将看到的第一个屏幕是部署屏幕。您可以在这里选择LocalDockerWeaviate CloudCustom部署。Local部署使用后台的Weaviate Embedded,它在幕后初始化Weaviate实例。Docker部署使用在同一Docker网络中运行的单独Weaviate实例。Weaviate Cloud部署使用托管在Weaviate云服务(WCS)上的Weaviate实例。Custom部署允许您指定自己的Weaviate实例URL、PORT和API密钥。


导入您的数据

Import Data Add Files Add Directory Add URL Overview ConfigureDemo of Verba


查询您的数据

导入数据后,您可以使用Chat页面提出任何相关问题。您将收到与您的问题语义相关的相关块以及由您选择的模型生成的答案。您可以在Config选项卡下配置RAG管道。

在这里插入图片描述


其它


已知问题

  • Weaviate Embeed
    • 将在未来版本中修复,在此之前请使用Docker或WCS部署

常见问题解答

  • Verba是多语言的吗?
    • 这取决于您选择的嵌入和生成模型是否支持多语言数据。
  • 我可以将我的Ollama服务器与Verba Docker一起使用吗?
    • 是的,你可以!确保URL设置为:OLLAMA_URL=http://host.docker.internal:11434
    • 如果您在Linux上运行,您可能需要获取Ollama服务器的IP网关:OLLAMA_URL="http://YOUR-IP-OF-OLLAMA:11434"
  • 如何清除Weaviate嵌入式存储?
    • 您可以在此处找到存储的数据:~/.local/share/weaviate
  • 如何指定端口?
    • 您可以使用端口和主机标志verba start --port 9000 --host 0.0.0.0

2024-09-24(二)

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

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

相关文章

进来看看吧,产品经理做APP从头到尾的所有工作流程详解!

一、项目启动前 从事产品的工作一年多&#xff0c;但自己一直苦于这样或者那样的困惑&#xff0c;很多人想要从事产品&#xff0c;或者老板自己创业要亲自承担产品一职&#xff0c;但他们对产品这个岗位的认识却不明晰&#xff0c;有的以为是纯粹的画原型&#xff0c;有的是以…

BACnet MS/TP协议解析(3)

1、MS/TP帧格式 例如数据&#xff08;hex&#xff09;&#xff1a;55 FF 01 03 02 00 00 D7 0x550xff0x010x030x020x000x000xD7BACnet数据BACnet数据CRC帧头帧类型目的地址源地址BACnet数据长度&#xff0c;大端CRC 2、帧类型 帧类型目前定义为 0-7&#xff0c;8-127 为 AS…

vue3 vite模式配置测试,开发、生产环境以及代理配置

1、首先在根目录下创建三个文本文件&#xff1a;.env.development&#xff0c;.env.production&#xff0c;.env.test .env.development中的内容为&#xff1a; // 开发环境 .env.development NODE_ENV development VITE_APP_MODE development VITE_OUTPUTDIR dist_dev /…

基于Java的宠物之家小程序 宠物服务小程序【源码+调试】

精彩专栏推荐订阅&#xff1a;在下方主页&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f496;&#x1f525;作者主页&#xff1a;计算机毕设木哥&#x1f525; &#x1f496; 文章目录 一、宠物之家小程…

FPGA第 11 篇,Verilog 系统函数( Verilog 中的系统函数)

前言 Verilog 作为一种强大的硬件描述语言&#xff0c;不仅提供了用于设计和仿真数字电路的基础语法&#xff0c;还包含了丰富的系统函数&#xff0c;帮助我们高效地完成复杂的硬件操作。系统函数是 Verilog 语言中预定义的特殊函数&#xff0c;通常以 $ 开头&#xff0c;它们…

【深度学习】(7)--神经网络之保存最优模型

文章目录 保存最优模型一、两种保存方法1. 保存模型参数2. 保存完整模型 二、迭代模型 总结 保存最优模型 我们在迭代模型训练时&#xff0c;随着次数初始的增多&#xff0c;模型的准确率会逐渐的上升&#xff0c;但是同时也随着迭代次数越来越多&#xff0c;由于模型会开始学…

今日不错的讲企业架构的好图

今日不错的讲企业架构的好图&#xff0c;来源B站不错的UP主&#xff1a;企业架构知识体系-业务技术管理的知识框架_哔哩哔哩_bilibili

grafana频繁DataSourceError问题

背景 随着 Grafana 数据量的不断增加&#xff0c;逐渐暴露出以下问题&#xff1a; Grafana 页面加载缓慢&#xff1b;Grafana 告警频繁出现 DatasourceError 错误。 对于第一个问题&#xff0c;大家可以参考这篇文章&#xff1a;Grafana 加载缓慢的解决方案。 不过&#xf…

【Unity踩坑】Textmesh Pro是否需要加入Version Control?

问题&#xff1a;如果Unity 项目中用到了Textmesh pro&#xff0c;相关的文件是否也需要签入呢&#xff1f; 回答&#xff1a; 在使用 Unity 的 Version Control&#xff08;例如 Plastic SCM 或 Git&#xff09;时&#xff0c;如果你的项目中使用了 TextMesh Pro&#xff0c…

条件字段有索引,为什么查询也这么慢?

如果我们想在某一本书中找到特定的主题&#xff0c;一般最快的方法是先看索引&#xff0c;找到对应的主题在哪个页码。 而对于 MySQL 而言&#xff0c;如果需要查找某一行的值&#xff0c;可以先通过索引找到对应的值&#xff0c;然后根据索引匹配的记录找到需要查询的数据行。…

家政服务预约系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;客户管理&#xff0c;员工管理&#xff0c;家政服务管理&#xff0c;服务预约管理&#xff0c;员工风采管理&#xff0c;客户需求管理&#xff0c;接单信息管理 微信端账号功能包括&#xff1a;系统首…

Java | Leetcode Java题解之第430题扁平化多级双向链表

题目&#xff1a; 题解&#xff1a; class Solution {public Node flatten(Node head) {dfs(head);return head;}public Node dfs(Node node) {Node cur node;// 记录链表的最后一个节点Node last null;while (cur ! null) {Node next cur.next;// 如果有子节点&#xff0…

后端(实例)08

设计一个前端在数据库调取数据的表格&#xff0c;并完成基础点击增删改查的功能&#xff1a; 1.首先写一个前端样式&#xff08;空壳&#xff09; <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>Insert title here&l…

VUE条件树查询

看如下图所示的功能&#xff0c;是不是可高级了&#xff1f;什么&#xff0c;你没看懂&#xff1f;拜托双击放大看&#xff01; 是的&#xff0c;我最近消失了一段时间就是在研究这个玩意的实现&#xff0c;通过不懈努力与钻研并参考其他人员实现并加以改造&#xff0c;很好&am…

人工智能时代的网络空间战略稳定及其挑战

文章目录 前言一、人工智能时代的网络空间战略稳定及其挑战(一)国内政治与官僚主义二、大国竞争与溯源政治三、国际法规与治理限制总结前言 人工智能的武器化应用在短期内将同时强化网络空间中进攻方和防御方的能力,但从长期看将有利于防御方。这种态势将令传统威慑逻辑重新…

[数据库实验三]安全性

目录 一、实验目的与要求&#xff1a; 二、实验内容&#xff1a; 三、实验小结 一、实验目的与要求&#xff1a; 1、设计用户子模式 2、根据实际需要创建用户角色及用户&#xff0c;并授权 3、针对不同级别的用户定义不同的视图&#xff0c;以保证系统的安全性 二、实验内…

Springboot jPA+thymeleaf实现增删改查

项目结构 pom文件 配置相关依赖&#xff1a; 2.thymeleaf有点类似于jstlel th:href"{url}表示这是一个链接 th:each"user : ${users}"相当于foreach&#xff0c;对user进行循环遍历 th:if进行if条件判断 {变量} 与 ${变量}的区别: 4.配置好application.ym…

【SemeDrive】【X9H】如何修改 SAFETY_FAULT 输出 PWM 频率

前言&#xff1a; SAFETY_FAULT 也是 SEM_FAULT&#xff0c;在原理图上会有不同的标注&#xff0c;但意义一样。 默认的 SAFETY_FAULT 正常时输出 PWM 频率为 100 MHz&#xff0c;过高的频率有时会导致无法通过 EMI 测试&#xff0c;需要降低频率。以下描述如何将正常时的 S…

ssh 命令详解

一、命令简介 ​ssh ​命令用于安全登录远程主机&#xff0c;以便在远程机上执行命令或传输数据。 ‍ 例如登录远程主机 169.10.222.23 ​上的 soulio ​用户&#xff1a; ssh soulio169.10.222.23更多示例参考第三章。 ‍ 了解背景知识&#xff1a;ssh 加密 1. 加密类型…

C++之Person类中调用Date类

main.cpp #include <iostream> #include "Person.h" using namespace std;int main() {Person myPerson;// Person myPerson("S.M.Wang", 070145, "莲花路200号");cout << "请输入姓名:" ;string name;cin >> name…