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()}")