spanking
0.1.5
使用? VectorDB類並通過美麗的UI訪問其功能,請按照以下步驟:
首先,將存儲庫克隆到您的本地計算機:
git clone https://github.com/rishiraj/spanking.git
cd spanking要通過直觀的Web界面管理矢量數據庫,您可以運行提供的app.py腳本:
python app.py這將啟動本地Web服務器。然後,您可以通過在Web瀏覽器中導航到http://127.0.0.1:5000訪問UI。
VectorDB類以編程方式如果您喜歡使用代碼,則可以直接與VectorDB類交互。以下是:
創建一個實例:
from spanking import VectorDB
vector_db = VectorDB ( model_name = 'BAAI/bge-base-en-v1.5' )您可以選擇通過將其名稱傳遞給構造函數來指定不同的預訓練的句子變壓器模型。
添加文字:
texts = [ "i eat pizza" , "i play chess" , "i drive bus" ]
vector_db . add_texts ( texts )這將將文本編碼到嵌入式中,然後將其存儲在數據庫中。
搜索類似的文本或圖像:
text_query = "we play football"
text_results = vector_db . search ( text_query , top_k = 2 , type = 'text' )
print ( "Text search results:" )
for text , similarity in text_results :
print ( f"Text: { text } , Similarity: { similarity } " )
image_url = "https://example.com/image.jpg"
image_results = vector_db . search ( image_url , top_k = 2 , type = 'image' )
print ( " n Image search results:" )
for text , similarity in image_results :
print ( f"Text: { text } , Similarity: { similarity } " )這將根據余弦相似性檢索到2個最相似的文本或圖像中的查詢。 search方法返回一個元組列表,其中每個元組包含文本及其相似性分數。您可以使用type參數(用於文本搜索的'text'和'image'以供圖像搜索指定搜索類型。
刪除文字:
index = 1
vector_db . delete_text ( index )這將在指定的索引處刪除文本及其相應的嵌入。
更新文字:
index = 0
new_text = "i enjoy eating pizza"
vector_db . update_text ( index , new_text )這將在指定的索引上更新文本及其相應的嵌入方式,並使用新文本更新。
保存數據庫:
vector_db . save ( 'vector_db.pkl' )這將將VectorDB實例的當前狀態保存到名為“ vector_db.pkl”的文件。
加載數據庫:
vector_db = VectorDB . load ( 'vector_db.pkl' )這將從名為“ vector_db.pkl”的文件中加載VectorDB實例並返回。
轉換為數據框:
df = vector_db . to_df ()這將將VectorDB實例的當前狀態轉換為PANDAS DataFrame。
迭代存儲的文本:
for text in vector_db :
print ( text )通過索引訪問單個文本:
index = 2
text = vector_db [ index ]
print ( text )獲取文本數:
num_texts = len ( vector_db )
print ( num_texts )這是一個示例,以說明如何使用? VectorDB類:
from spanking import VectorDB
vector_db = VectorDB ()
# Add texts to the database
texts = [ "i eat pizza" , "i play chess" , "i drive bus" ]
vector_db . add_texts ( texts )
# Search for similar texts
query = "we play football"
top_results = vector_db . search ( query , top_k = 2 )
print ( "Top results:" )
for text , similarity in top_results :
print ( f"Text: { text } , Similarity: { similarity } " )
# Update a text
vector_db . update_text ( 1 , "i enjoy playing chess" )
# Delete a text
vector_db . delete_text ( 2 )
# Save the database
vector_db . save ( 'vector_db.pkl' )
# Load the database
loaded_vector_db = VectorDB . load ( 'vector_db.pkl' )
# Iterate over the stored texts in the loaded database
print ( " n Stored texts in the loaded database:" )
for text in loaded_vector_db :
print ( text )
# Convert to dataframe
df = loaded_vector_db . to_df ()
print ( df . head ())此示例演示瞭如何創建? VectorDB實例,添加文本,搜索相似的文本,更新和刪除文本,然後在存儲的文本上迭代。