Dify中的weaviate向量数据库操作

一.安装weaviate客户端

1.Dify 0.6.9中weaviate信息

在Dify 0.6.9版本中weaviate容器信息如下:

# The Weaviate vector store.
weaviate:image: semitechnologies/weaviate:1.19.0restart: alwaysvolumes:# Mount the Weaviate data directory to the container.- ./volumes/weaviate:/var/lib/weaviateenvironment:# The Weaviate configurations# You can refer to the [Weaviate](https://weaviate.io/developers/weaviate/config-refs/env-vars) documentation for more information.QUERY_DEFAULTS_LIMIT: 25AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'false'PERSISTENCE_DATA_PATH: '/var/lib/weaviate'DEFAULT_VECTORIZER_MODULE: 'none'CLUSTER_HOSTNAME: 'node1'AUTHENTICATION_APIKEY_ENABLED: 'true'AUTHENTICATION_APIKEY_ALLOWED_KEYS: 'WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih'AUTHENTICATION_APIKEY_USERS: 'hello@dify.ai'AUTHORIZATION_ADMINLIST_ENABLED: 'true'AUTHORIZATION_ADMINLIST_USERS: 'hello@dify.ai'ports:- "8080:8080"- "50051:50051"

2.weaviate客户端版本

使用weaviate客户端版本为weaviate-client~=3.21.0如下:

  • ~= 是一种版本兼容性运算符,表示兼容特定版本的微版本更新。

  • 3.21.0 表示该依赖项的最低版本要求。

  • 具体来说,~=3.21.0 表示兼容任何大于等于 3.21.0 但小于 3.22.0 的版本。也就是说,它会匹配 3.21.x 系列中的所有版本,但不会匹配 3.22.0 或更高版本。

安装命令为pip install weaviate-client~=3.21.0

二.Dify测试知识库

1.创建知识库和上传文档

在Dify中创建测试知识库:

然后上传测试文档:

使用自定义分段规则,得到2个段落:

2.datasets数据表

datasets数据表:即知识库。

(1)index_struct

{"type": "weaviate", "vector_store": {"class_prefix": "Vector_index_1be106ff_73cc_403e_8981_31800fd0fa1c_Node"}
}

其中,1be106ff_73cc_403e_8981_31800fd0fa1c是datasets表中id,即知识库id。

(2)retrieval_model

{"top_k": 2,"search_method": "semantic_search","reranking_model": {"reranking_model_name": "","reranking_provider_name": ""},"score_threshold": null,"reranking_enable": false,"score_threshold_enabled": false
}

3.documents数据表

documents数据表:即知识库中的每个文档。

(1)dataset_process_rule_id

619efb69-aa7f-4546-ae3a-c59e5eb4a106

对应dataset_process_rules数据表内容为

{"pre_processing_rules": [{"id": "remove_extra_spaces","enabled": true}, {"id": "remove_urls_emails","enabled": true}],"segmentation": {"separator": "\n","max_tokens": 500,"chunk_overlap": 50}
}

(2)doc_form

text_model

4.document_segments数据表

document_segments数据表,即知识库中每个文档的每个分段。

(1)index_node_id

索引节点id如下:

45886682-2adf-4af5-b0cc-4a247682e7fe
aced7553-2cfc-4faf-a9a1-c8cbf3f6f7b3

(2)index_node_hash

索引节点哈希值如下:

5.embeddings数据表

embeddings数据表:即知识库中每个文档的每个分段的嵌入编码。

(1)embedding是什么

0x80059509480000000000005D942847......575481EC68652E

def set_embedding(self, embedding_data: list[float]):self.embedding = pickle.dumps(embedding_data, protocol=pickle.HIGHEST_PROTOCOL)

这行代码使用 Python 的 pickle 模块将 embedding_data 对象序列化为一个字节流,以便于存储或传输。

  • pickle.dumps(embedding_data): pickle.dumps 函数将 embedding_data 对象转换为一个字节流。这个字节流可以被存储或者传输,然后在需要的时候通过 pickle.loads 函数重新转换(反序列化)为原始对象。

  • protocol=pickle.HIGHEST_PROTOCOL: protocol 参数是一个可选参数,用于指定序列化和反序列化时使用的协议版本。pickle.HIGHEST_PROTOCOL 表示使用 pickle 模块当前支持的最高协议版本。不同的协议版本在功能和效率上有所不同,使用最高版本的协议通常可以获得最好的性能。

三.weaviate基本操作

1.weaviate连接和操作

首先连接weaviate客户端,然后查询指定class_name的schema和data_object。

import weaviateWEAVIATE_URL = "http://127.0.0.1:8080"
WEAVIATE_API_KEY = "WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih"
client = weaviate.Client(url = WEAVIATE_URL,  # 指向weaviate的urlauth_client_secret = weaviate.AuthApiKey(WEAVIATE_API_KEY)  # 使

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

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

相关文章

【操作系统】进程管理——信号量机制(个人笔记)

学习日期:2024.7.9 内容摘要:信号量机制,用信号量实现进程的同步与互斥 信号量机制 信号量的概念 在上节内容中,我们学习了进程互斥的软件和硬件解决方案,但这些方案都有各自的问题,双标志法都因为检查和…

【自用】【高昆轮概率论与数理统计笔记】2.1 分布函数的概念与性质

不定期更新,前面的章节会在学完后补回来,重新学学概率,当年考研考的数学二,没有概率基础,想自己补补,视频课是高昆轮老师讲的浙大四版概率论教材的视频课,地址: 第一章:h…

数据库MySQL---基础篇

存储和管理数据的仓库 MySQL概述 数据库相关概念 数据库(DataBase)---数据存储的仓库,数据是有组织的进行存储 数据库管理系统(DBMS)-----操纵和管理数据库的大型软件 SQL----操作关系型数据库的编程语言&#xff…

Python:安装/Mac

之前一直陆陆续续有学python!今天开始!正式开肝!!! 进入网站:可能会有点慢,多开几个网页 https://www.python.org 点击下载,然后进入新的页面,往下滑 来到File&#xff0…

实时温湿度监测系统:Micropython编码ESP32与DHT22模块的无线数据传输与PC端接收项目

实时温湿度监测系统 前言项目目的项目材料项目步骤模拟ESP32接线连接测试搭建PC端ESP32拷录环境对ESP32进行拷录PC端搭建桌面组件本地数据接收桌面小组件部分 实验总结 前言 人生苦短,我用Python。 由于我在日常工作中经常使用Python,因此在进行该项目…

基于java+springboot+vue实现的校园二手书交易平台(文末源码+Lw)287

摘 要 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自…

Vue中v-for和v-if优先级(2、3)

Vue中v-for和v-if优先级(2、3) Vue2 在Vue2当中,v-for优先级要优于v-if,也就是说,当它俩同时沿用时,v-for先遍历,v-if再判断。 Vue2源码位置 \vue-dev\src\compiler\codegen\index.js export function genElement…

如何构建数据驱动的企业?爬虫管理平台是关键桥梁吗?

一、数据驱动时代:为何选择爬虫管理平台? 在信息爆炸的今天,数据驱动已成为企业发展的核心战略之一。爬虫管理平台,作为数据采集的第一站,它的重要性不言而喻。这类平台通过自动化手段,从互联网的各个角落…

windows的远程桌面连接docker

1. Docker容器中运行远程桌面服务 (RDP):您的Docker容器需要安装和运行远程桌面服务。通常,远程桌面服务在Windows操作系统上可用。如果您使用的是Linux容器,则需要安装一个支持RDP协议的桌面环境和RDP服务器。 2. 开放RDP端口:通…

什么是RPC?有哪些RPC框架?

定义 RPC(Remote Procedure Call,远程过程调用)是一种允许运行在一台计算机上的程序调用另一台计算机上子程序的技术。这种技术屏蔽了底层的网络通信细节,使得程序间的远程通信如同本地调用一样简单。RPC机制使得开发者能够构建分…

【常见开源库的二次开发】一文学懂CJSON

简介: JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它基于JavaScript的一个子集,但是JSON是独立于语言的,这意味着尽管JSON是由JavaScript语法衍生出来的,它可以被任何编程语言读取和生成…

Django 实现子模版继承父模板

背景 Django的占位符,如果不继承父模板的内容,会被子模版所覆盖,有些业务场景子模版也需要使用到父模板中的内容 可以使用Django自带的标签{% block super %}来实现此效果 base.html 最基础html,相当于第一层html,bl…

代码随想录算法训练营day76 | Floyd 算法精讲、A * 算法精讲

本次题目来自于卡码网 ​​97. 小明逛公园 (Floyd 算法精讲) 1、确定dp数组以及下标的含义 grid[i][j][k] m,表示 节点i 到 节点j 以[1...k] 集合为中间节点的最短距离为m 2、确定递推公式 分两种情况: 节点i 到 节点j 的最…

01 | 基础架构:一条SQL查询语句是如何执行的?

此系列文章为极客时间课程《MySQL 实战 45 讲》的学习笔记! 引言 在了解 SQL 查询语句如何执行之前,先了解下MySQL 的基本架构示意图。 MySQL 分为 Server 层和引擎层。 Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 M…

微球无菌筛分技术的巅峰之作:纳维加特PV系列

在医药行业中,对微球的制备和筛分要求极高,纳维加特(Navector)凭借其自主创新的PV系列微球无菌旋振筛,成功突破这一领域的技术壁垒。该产品不仅拥有高效率、高精度的筛分能力,同时还兼顾了高卫生级别的要求…

uniapp自动升级

一、创建云服务空间(https://unicloud.dcloud.net.cn) 云空间用于关联需要版本控制升级的项目,如果已拥有云空间则省略此步骤。 二、搭建 uni升级中心 - 后台管理系统(升级中心 uni-upgrade-center - Admin) uni-adm…

Linux调试器-gdb使用以及Linux项目自动化构建工具-make/Makefile

目录 1.gdb背景2.开始使用gdb3.make/makefile 背景4.实例代码5.依赖关系6.依赖方法7.原理8.项目清理 1.gdb背景 程序的发布方式有两种,debug模式和release模式 Linux gcc/g出来的二进制程序,默认是release模式 要使用gdb调试,必须在源代码生…

c++的makeFile怎么做

makeFile30分钟 1 介绍(makeFile是什么,30分钟入门搞懂)2 为什么要用makeFile3 如何制作makeFile文件?4 参考 makeFile真的很简单,不要想的一下子全都学懂了,先入门了,然后在实践中去使用&#…

Apache部署与配置

概述 介绍 Apache HTTP Server(简称Apache)是Apache的一个开源的网页服务器,它源自NCSAhttpd服务器,并经过多次修改和发展,如今已经成为全球范围内广泛使用的Web服务器软件之一 特点 跨平台:可以运行在几乎所有广泛使用的计算机平…

36 特殊类设计

类,不能被拷贝 拷贝只会放生在两个场景中:拷贝构造函数以及赋值运算符重载,因此想要让一个类禁止拷贝。 c98 将拷贝构造函数与赋值云悬浮重载只声明不定义,并且将其访问权限设置为私有 class CopyBan{// ...private:CopyBan(co…