사용하려면? VectorDB 클래스 및 아름다운 UI를 통해 기능에 액세스하고 다음 단계를 따르십시오.
먼저 저장소를 로컬 컴퓨터로 복제하십시오.
git clone https://github.com/rishiraj/spanking.git
cd spanking 직관적 인 웹 인터페이스를 통해 벡터 데이터베이스를 관리하려면 제공된 app.py 스크립트를 실행할 수 있습니다.
python app.py 로컬 웹 서버가 시작됩니다. 그런 다음 웹 브라우저에서 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 ()) 이 예제는 A를 만드는 방법을 보여줍니다. VectorDB 인스턴스, 텍스트 추가, 유사한 텍스트 검색, 텍스트 업데이트 및 삭제 및 저장된 텍스트를 반복합니다.