Das verwenden? VectorDB -Klasse und zugänglich auf seine Funktionalität über eine schöne Benutzeroberfläche, folgen Sie folgenden Schritten:
Klonen Sie zunächst das Repository in Ihre lokale Maschine:
git clone https://github.com/rishiraj/spanking.git
cd spanking Um Ihre Vektordatenbank über eine intuitive Weboberfläche zu verwalten, können Sie das bereitgestellte app.py -Skript ausführen:
python app.py Dadurch startet ein lokaler Webserver. Sie können dann auf die Benutzeroberfläche zugreifen, indem Sie in Ihrem Webbrowser zu http://127.0.0.1:5000 navigieren.
VectorDB -Klasse programmgesteuert Wenn Sie es vorziehen, mit Code zu arbeiten, können Sie direkt mit der VectorDB -Klasse interagieren. So wie: wie:
Erstellen Sie eine Instanz:
from spanking import VectorDB
vector_db = VectorDB ( model_name = 'BAAI/bge-base-en-v1.5' )Sie können optional ein anderes vorgebildetes Satztransformatormodell angeben, indem Sie seinen Namen an den Konstruktor weitergeben.
Texte hinzufügen:
texts = [ "i eat pizza" , "i play chess" , "i drive bus" ]
vector_db . add_texts ( texts )Dadurch werden die Texte in Einbettungen codiert und in der Datenbank gespeichert.
Suche nach ähnlichen Texten oder Bildern:
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 } " ) Dadurch werden die obersten 2 ähnlichen Texte oder Bilder in der Abfrage basierend auf Cosinus-Ähnlichkeit abgerufen. Die search gibt eine Liste von Tupeln zurück, wobei jedes Tupel den Text und seine Ähnlichkeitsbewertung enthält. Sie können den Suchentyp mit dem Parameter type angeben ( 'text' für die Textsuche und 'image' für die Bildsuche).
Einen Text löschen:
index = 1
vector_db . delete_text ( index )Dadurch wird der Text und seine entsprechende Einbettung in den angegebenen Index entfernt.
Aktualisieren Sie einen Text:
index = 0
new_text = "i enjoy eating pizza"
vector_db . update_text ( index , new_text )Dadurch wird der Text und seine entsprechende Einbettung in den angegebenen Index mit dem neuen Text aktualisiert.
Speichern Sie die Datenbank:
vector_db . save ( 'vector_db.pkl' ) Dadurch wird der aktuelle Status der VectorDB -Instanz in einer Datei namens "vector_db.pkl" gespeichert.
Laden Sie die Datenbank:
vector_db = VectorDB . load ( 'vector_db.pkl' ) Dadurch wird die VectorDB -Instanz aus der Datei namens 'vector_db.pkl' geladen und zurückgegeben.
Konvertieren Sie in DataFrame:
df = vector_db . to_df () Dadurch werden der aktuelle Zustand der VectorDB -Instanz in einen Pandas -Datenframe umwandelt.
Iterieren Sie über gespeicherte Texte:
for text in vector_db :
print ( text )Greifen Sie nach Index auf einzelne Texte zu: Index:
index = 2
text = vector_db [ index ]
print ( text )Holen Sie sich die Anzahl der Texte:
num_texts = len ( vector_db )
print ( num_texts ) Hier ist ein Beispiel, um zu demonstrieren, wie Sie das verwenden können? VectorDB -Klasse:
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 ()) Dieses Beispiel zeigt, wie man ein erstellt? VectorDB -Instanz, fügen Sie Texte hinzu, suchen Sie nach ähnlichen Texten, aktualisieren und löschen Sie Texte und iterieren Sie die gespeicherten Texte.