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

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

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

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

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语法衍生出来的,它可以被任何编程语言读取和生成…

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

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

uniapp自动升级

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

Apache部署与配置

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

Apache中使用SSI设置

先停服务在修改httpd.conf,备份下 Apache\Apache24\conf 设置httpd.conf LoadModule ssl_module modules/mod_ssl.so 取消该命令前的注释符# AddType text/html .shtml AddOutputFilter INCLUDES .shtml 取消该命令前的注释符# 加入html AddType text/html .…

前端javascript中的排序算法之插入排序

插入排序(Selection Sort)基本思想: 插入排序每次排一个数组项,以此方式构建最后的排序数组。假定第一项已经排序了,接着, 它和第二项进行比较,第二项是应该待在原位还是插到第一项之前呢&#…

软件工具网站推荐

1.菜鸟工具 菜鸟工具 - 不止于工具菜鸟工具,为开发设计人员提供在线工具,网址导航,提供在线PHP、Python、 CSS、JS 调试,中文简繁体转换,进制转换等工具。致力于打造国内专业WEB开发工具,集成开发环境&…

详细谈谈负载均衡的startupProbe探针、livenessProbe探针、readnessProbe探针如何使用以及使用差异化

文章目录 startupProbe探针startupProbe说明示例配置参数解释 使用场景说明实例——要求: 容器在8秒内完成启动,否则杀死对应容器工作流程说明timeoutSeconds: 和 periodSeconds: 参数顺序说明 livenessProbe探针livenessProbe说明示例配置参数解释 使用…

CSS技巧专栏:一日一例 1.纯CSS实现 会讨好的热情按钮 特效

题外话: 从今天开始,我准备开设一个新的专栏,专门写 使用CSS实现各种酷炫按钮的方法,本专栏目前准备写40篇左右,大概会完成如下按钮效果: 今天,我来介绍第一个按钮的实现方法:会讨好的热情按钮。为什么我给它起这样的名字呢?你看它像不像一个不停摇尾巴的小黄?当你鼠…

【QML之·基础语法概述】

系列文章目录 文章目录 前言一、QML基础语法二、属性三、脚本四、核心元素类型4.1 元素可以分为视觉元素和非视觉元素。4.2 Item4.2.1 几何属性(Geometry):4.2.2 布局处理:4.2.3 键处理:4.2.4 变换4.2.5 视觉4.2.6 状态定义 4.3 Rectangle4.3.1 颜色 4.4…

【界面态】霍尔效应表征氮化对SiC/SiO2界面陷阱的影响

引言 引言主要介绍了硅碳化物(SiC)金属-氧化物-半导体场效应晶体管(MOSFETs)作为新一代高压、低损耗功率器件的商业化背景。SiC MOSFETs因其优越的电气特性,在高电压和高温应用领域具有巨大的潜力。然而,尽…