nagur-shareef-shaik's picture
Add Application Code
cd6f412
from typing import Optional, Dict, Any, List
from langchain.docstore.document import Document
from insucompass.services import llm_provider
from insucompass.services.vector_store import vector_store_service
from insucompass.core.agents.query_trasformer import QueryTransformationAgent
from insucompass.core.agents.document_summarizer import DocumentSummarizerAgent
llm = llm_provider.get_gemini_llm()
retriever = vector_store_service.get_retriever()
trasformer = QueryTransformationAgent(llm, retriever)
summarizer = DocumentSummarizerAgent(llm_provider.get_llama_llm())
def build_data_doc_dict(docs, summarizer) -> Dict[str, Dict[str, object]]:
data_doc_dict: Dict[str, Dict[str, object]] = {}
for idx, doc in enumerate(docs):
doc_id = doc.metadata.get("source_id")
doc_path = doc.metadata.get("source_local_path")
summary_text: str = summarizer.get_summary(doc_id, doc_path)
# Store both the raw Document and its summary
data_doc_dict[doc_id] = {
"doc": doc,
"summary": summary_text,
}
return data_doc_dict
query = "What is insurance plan? explain the beifits and approaches for enrollment." # decompose
# query = "What is a plan" # step-back
# query = "What is insurance plans are eligible for a person in GA?" # ambiguious
retrieved_docs = trasformer.transform_and_retrieve(query)
summarizer = DocumentSummarizerAgent(llm_provider.get_gemini_fast_llm())
data_doc_dict = build_data_doc_dict(retrieved_docs, summarizer)