Para usar o? Classe VectorDB e acesse sua funcionalidade através de uma linda interface do usuário, siga estas etapas:
Primeiro, clone o repositório para sua máquina local:
git clone https://github.com/rishiraj/spanking.git
cd spanking Para gerenciar seu banco de dados vetorial por meio de uma interface da web intuitiva, você pode executar o script app.py fornecido:
python app.py Isso iniciará um servidor da web local. Você pode acessar a interface do usuário navegando para http://127.0.0.1:5000 no seu navegador da web.
VectorDB programaticamente Se você preferir trabalhar com código, poderá interagir diretamente com a classe VectorDB . Aqui está como:
Crie uma instância:
from spanking import VectorDB
vector_db = VectorDB ( model_name = 'BAAI/bge-base-en-v1.5' )Opcionalmente, você pode especificar um modelo de transformador de sentença pré-treinado diferente, passando seu nome para o construtor.
Adicionar textos:
texts = [ "i eat pizza" , "i play chess" , "i drive bus" ]
vector_db . add_texts ( texts )Isso codificará os textos em incorporação e os armazenará no banco de dados.
Procure textos ou imagens semelhantes:
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 } " ) Isso recuperará os 2 melhores textos ou imagens mais semelhantes à consulta com base na similaridade de cosseno. O método search retorna uma lista de tuplas, onde cada tupla contém o texto e sua pontuação de similaridade. Você pode especificar o tipo de pesquisa usando o parâmetro type ( 'text' para pesquisa de texto e 'image' para pesquisa de imagem).
Exclua um texto:
index = 1
vector_db . delete_text ( index )Isso removerá o texto e a incorporação correspondente no índice especificado.
Atualize um texto:
index = 0
new_text = "i enjoy eating pizza"
vector_db . update_text ( index , new_text )Isso atualizará o texto e sua incorporação correspondente no índice especificado com o novo texto.
Salve o banco de dados:
vector_db . save ( 'vector_db.pkl' ) Isso salvará o estado atual da instância VectorDB em um arquivo chamado 'vector_db.pkl'.
Carregue o banco de dados:
vector_db = VectorDB . load ( 'vector_db.pkl' ) Isso carregará a instância VectorDB do arquivo chamado 'Vector_db.pkl' e retornará.
Converter em dataframe:
df = vector_db . to_df () Isso converterá o estado atual da instância VectorDB em um quadro de dados de pandas.
Itera textos armazenados:
for text in vector_db :
print ( text )Acesse textos individuais por índice:
index = 2
text = vector_db [ index ]
print ( text )Obtenha o número de textos:
num_texts = len ( vector_db )
print ( num_texts ) Aqui está um exemplo para demonstrar como você pode usar o? 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 ()) Este exemplo demonstra como criar um? Instância VectorDB , adicione textos, pesquise textos semelhantes, atualize e exclua textos e itera sobre os textos armazenados.