scholarbot / rag /vectorstore.py
Zan18A's picture
feat: scaffold + dataset downloaded
fd7f323
Raw
History Blame Contribute Delete
887 Bytes
import chromadb
from sentence_transformers import SentenceTransformer
import pandas as pd
EMBED_MODEL = 'all-MiniLM-L6-v2'
class VectorStore:
def __init__(self, persist_dir='./chroma_db'):
self.client = chromadb.PersistentClient(path=persist_dir)
self.col = self.client.get_or_create_collection('papers')
self.embedder = SentenceTransformer(EMBED_MODEL)
def index_papers(self, parquet_path, batch_size=256):
df = pd.read_parquet(parquet_path)
texts = df['abstract'].tolist()
ids = [str(i) for i in range(len(texts))]
for i in range(0, len(texts), batch_size):
batch = texts[i:i+batch_size]
embeds = self.embedder.encode(batch).tolist()
self.col.add(documents=batch, embeddings=embeds,
ids=ids[i:i+batch_size])
print(f'Indexed {len(texts)} documents')