capitolati-rag / main.py
saashley's picture
Update main.py
4c18db7 verified
from neo4j_config import URI, USER, PASSWORD, AUTH
from retriever import *
from dspy_wrapper import *
from neo4j import GraphDatabase
import os, pickle
# == Fast Load of Precomputed Index ==
HERE = os.path.dirname(__file__)
with open(os.path.join(HERE, "chunk_index_bertino_final.pkl"), "rb") as f:
all_chunks = pickle.load(f) # already contain embeddings and ids
# == Neo4j Setup ==
with GraphDatabase.driver(URI, auth=AUTH) as driver:
driver.verify_connectivity()
# == Retrieval ==
retriever = HybridRetriever(all_chunks)
reranker = GraphReranker(
retriever,
neo4j_uri=URI,
neo4j_user=USER,
neo4j_pass=PASSWORD,
beta=0.2,
max_hops=3
)
# == Pipeline Initialization ==
retriever_module = DSPyHybridRetriever(reranker)
cot_module = dspy.ChainOfThought(AnswerWithEvidence)
rag_pipeline = RAGChain(retriever=retriever_module, answerer=cot_module)