Использовать? Класс VectorDB и доступ к его функциональности через красивый пользовательский интерфейс, выполните следующие действия:
Во -первых, клонировать хранилище в местной машине:
git clone https://github.com/rishiraj/spanking.git
cd spanking Чтобы управлять вашей векторной базой данных через интуитивно понятный веб -интерфейс, вы можете запустить сценарий app.py :
python app.py Это запустит локальный веб -сервер. Затем вы можете получить доступ к пользовательскому интерфейсу, перейдя на http://127.0.0.1:5000 в вашем веб -браузере.
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' ) Это загрузит экземпляр VectorDB из файла с именем «vector_db.pkl» и вернет его.
Преобразовать в DataFrame:
df = vector_db . to_df () Это преобразует текущее состояние экземпляра VectorDB в DataFrame Pandas.
Итерация над хранящимися текстами:
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 , добавьте тексты, поиск аналогичных текстов, обновлять и удалять тексты и итерация над хранимыми текстами.