Spaces:
Sleeping
Sleeping
File size: 1,458 Bytes
4cded81 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | """
One-time script to build ChromaDB vector store from knowledge base.
Run once before starting the app: python ingest.py
Embeds all 37 knowledge base documents using multilingual MiniLM.
"""
from knowledge_base import KNOWLEDGE_BASE
from sentence_transformers import SentenceTransformer
import chromadb
print("Loading embedding model...")
embedder = SentenceTransformer(
'sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2'
)
print("Setting up ChromaDB...")
chroma_client = chromadb.PersistentClient(path="./chroma_db")
# Delete existing collection to rebuild fresh
try:
chroma_client.delete_collection("banking_hindi")
print("Deleted existing collection.")
except:
pass
collection = chroma_client.get_or_create_collection("banking_hindi")
documents = []
metadatas = []
ids = []
for doc in KNOWLEDGE_BASE:
full_text = f"{doc['title']}\n{doc['content']}"
documents.append(full_text)
metadatas.append({
"id": doc["id"],
"title": doc["title"],
"category": doc["category"]
})
ids.append(doc["id"])
print(f"Embedding {len(documents)} documents...")
embeddings = embedder.encode(
documents,
show_progress_bar=True,
batch_size=8
).tolist()
collection.add(
documents=documents,
embeddings=embeddings,
metadatas=metadatas,
ids=ids
)
print(f"✅ Successfully ingested {len(documents)} documents into ChromaDB")
print(f"Collection count: {collection.count()}")
|