Pour utiliser le? Classe VectorDB et accéder à ses fonctionnalités via une belle interface utilisateur, suivez ces étapes:
Tout d'abord, clonez le référentiel de votre machine locale:
git clone https://github.com/rishiraj/spanking.git
cd spanking Pour gérer votre base de données vectorielle via une interface Web intuitive, vous pouvez exécuter le script app.py fourni:
python app.py Cela démarrera un serveur Web local. Vous pouvez ensuite accéder à l'interface utilisateur en naviguant vers http://127.0.0.1:5000 dans votre navigateur Web.
VectorDB programmatiquement Si vous préférez travailler avec le code, vous pouvez interagir directement avec la classe VectorDB . Voici comment:
Créer une instance:
from spanking import VectorDB
vector_db = VectorDB ( model_name = 'BAAI/bge-base-en-v1.5' )Vous pouvez éventuellement spécifier un modèle de transformateur de phrase pré-formé différent en passant son nom au constructeur.
Ajouter des textes:
texts = [ "i eat pizza" , "i play chess" , "i drive bus" ]
vector_db . add_texts ( texts )Cela codera les textes dans les intégres et les stockera dans la base de données.
Recherchez des textes ou des images similaires:
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 } " ) Cela récupérera les 2 premiers textes ou images les plus similaires à la requête en fonction de la similitude des cosinus. La méthode search renvoie une liste de tuples, où chaque tuple contient le texte et son score de similitude. Vous pouvez spécifier le type de recherche à l'aide du paramètre type ( 'text' pour la recherche de texte et 'image' pour la recherche d'images).
Supprimer un texte:
index = 1
vector_db . delete_text ( index )Cela supprimera le texte et son intégration correspondante à l'index spécifié.
Mettre à jour un texte:
index = 0
new_text = "i enjoy eating pizza"
vector_db . update_text ( index , new_text )Cela mettra à jour le texte et son intégration correspondante à l'index spécifié avec le nouveau texte.
Enregistrez la base de données:
vector_db . save ( 'vector_db.pkl' ) Cela enregistrera l'état actuel de l'instance VectorDB dans un fichier nommé 'vector_db.pkl'.
Chargez la base de données:
vector_db = VectorDB . load ( 'vector_db.pkl' ) Cela chargera l'instance VectorDB du fichier nommé 'vector_db.pkl' et le renvoie.
Convertir en dataframe:
df = vector_db . to_df () Cela convertira l'état actuel de l'instance VectorDB en un Pandas DataFrame.
Itérer sur les textes stockés:
for text in vector_db :
print ( text )Accéder aux textes individuels par index:
index = 2
text = vector_db [ index ]
print ( text )Obtenez le nombre de textes:
num_texts = len ( vector_db )
print ( num_texts ) Voici un exemple pour montrer comment vous pouvez utiliser le? Classe 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 ()) Cet exemple montre comment créer un? Instance VectorDB , ajouter des textes, rechercher des textes similaires, mettre à jour et supprimer des textes et itérer sur les textes stockés.