Summarize-Agent / utils /vector_store.py
nelsondiasandre's picture
Upload 13 files
9b45841 verified
Raw
History Blame Contribute Delete
1.17 kB
import chromadb
import uuid
client = chromadb.PersistentClient(
path="./chroma_db"
)
collection = client.get_or_create_collection(
name="documents"
)
def add_chunks(chunks, embeddings, filename):
ids = [str(uuid.uuid4()) for _ in chunks]
metadatas = [
{
"source": filename,
"chunk_id": i
}
for i in range(len(chunks))
]
collection.add(
ids=ids,
documents=chunks,
embeddings=embeddings.tolist(),
metadatas=metadatas
)
def search(query_embedding, top_k=5):
results = collection.query(
query_embeddings=[query_embedding.tolist()],
n_results=top_k,
include=["documents", "metadatas", "distances"]
)
return {
"documents": results["documents"][0],
"metadatas": results["metadatas"][0],
"distances": results["distances"][0]
}
def reset_collection():
global collection
try:
client.delete_collection("documents")
except:
pass
collection = client.get_or_create_collection(
name="documents"
)