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.pswp.cn/diannao/43992.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/43992.shtml
英文地址,請注明出處:http://en.pswp.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…