singhankur01 commited on
Commit
b8e2416
·
verified ·
1 Parent(s): 1f81428

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +6 -9
app.py CHANGED
@@ -68,7 +68,7 @@ async def lifespan(app: FastAPI):
68
  print("🚀 Initializing models and prompt template...")
69
 
70
  try:
71
- GOOGLE_API_KEY = os.getenv("gemini_api_key3")
72
  print("🔑 gemini_api_key:", "FOUND" if GOOGLE_API_KEY else "NOT FOUND")
73
 
74
  if not GOOGLE_API_KEY:
@@ -100,10 +100,10 @@ async def lifespan(app: FastAPI):
100
  model="gemini-2.0-flash",
101
  api_key=GOOGLE_API_KEY,
102
  temperature=0.1,
103
- max_output_tokens=300
104
  )
105
  ml_models["prompt_template"] = ChatPromptTemplate.from_template("""
106
- **Role**: You are an expert assistant in insurance, legal compliance, human resources, and contract management.
107
  **Instructions**:
108
  - If the query contains multiple questions, split them into perfect sub-questions.
109
  - Use ONLY the provided context to answer.
@@ -113,10 +113,7 @@ async def lifespan(app: FastAPI):
113
  - Avoid phrases like “the provided document states” or “according to the context.”
114
  - Summarize relevant parts of the context without losing meaning.
115
  - If the answer is not in the context for some subqueries, respond exactly with: " I do not know the answer of "subquery",Please ask query related to the Document only." for that subquery.
116
- - Keep answers professional, clear, and direct, avoiding unnecessary jargon.
117
- **Tone & Style**:
118
- - Professional yet approachable.
119
- - Clear and direct.
120
  ---
121
  **Context**:
122
  {context}
@@ -228,7 +225,7 @@ async def run_hackrx(req: RunRequest):
228
  # end_time2 = time.time() - start_time2
229
  # print(f"vector done: {end_time2}")
230
  # dense_retriever = vectorstore.as_retriever(search_type="mmr",search_kwargs={"k": 8})
231
- dense_retriever = vectorstore.as_retriever(search_type="mmr",search_kwargs={"k": 16 ,"lambda_mult": 0.8} )
232
  # dense_retriever = vectorstore.as_retriever(search_type="similarity" ,search_kwargs={"k": 11} )
233
 
234
 
@@ -236,7 +233,7 @@ async def run_hackrx(req: RunRequest):
236
  keyword_retriever = BM25Retriever.from_documents(chunks)
237
  keyword_retriever.k = 9
238
  # dense_retriever = Chroma.from_documents(documents=chunks, embedding=ml_models["embedder"]).as_retriever()
239
- ensemble_retriever = EnsembleRetriever(retrievers=[keyword_retriever, dense_retriever], weights=[0.3, 0.7],search_kwargs={"k": 15})
240
  ### to make it faster we are now using our built reranker thats why commenting the code below
241
  # compression_retriever = ContextualCompressionRetriever(
242
  # base_retriever=ensemble_retriever, base_compressor=ml_models["reranker_compressor"]
 
68
  print("🚀 Initializing models and prompt template...")
69
 
70
  try:
71
+ GOOGLE_API_KEY = os.getenv("gemini_api_key")
72
  print("🔑 gemini_api_key:", "FOUND" if GOOGLE_API_KEY else "NOT FOUND")
73
 
74
  if not GOOGLE_API_KEY:
 
100
  model="gemini-2.0-flash",
101
  api_key=GOOGLE_API_KEY,
102
  temperature=0.1,
103
+ max_output_tokens=350
104
  )
105
  ml_models["prompt_template"] = ChatPromptTemplate.from_template("""
106
+ **Role**: You are an expert assistant in insurance, legal compliance, human resources, contract management and Question Answering.
107
  **Instructions**:
108
  - If the query contains multiple questions, split them into perfect sub-questions.
109
  - Use ONLY the provided context to answer.
 
113
  - Avoid phrases like “the provided document states” or “according to the context.”
114
  - Summarize relevant parts of the context without losing meaning.
115
  - If the answer is not in the context for some subqueries, respond exactly with: " I do not know the answer of "subquery",Please ask query related to the Document only." for that subquery.
116
+ - Keep answers professional, clear, and direct.
 
 
 
117
  ---
118
  **Context**:
119
  {context}
 
225
  # end_time2 = time.time() - start_time2
226
  # print(f"vector done: {end_time2}")
227
  # dense_retriever = vectorstore.as_retriever(search_type="mmr",search_kwargs={"k": 8})
228
+ dense_retriever = vectorstore.as_retriever(search_type="mmr",search_kwargs={"k": 12 ,"lambda_mult": 0.7} )
229
  # dense_retriever = vectorstore.as_retriever(search_type="similarity" ,search_kwargs={"k": 11} )
230
 
231
 
 
233
  keyword_retriever = BM25Retriever.from_documents(chunks)
234
  keyword_retriever.k = 9
235
  # dense_retriever = Chroma.from_documents(documents=chunks, embedding=ml_models["embedder"]).as_retriever()
236
+ ensemble_retriever = EnsembleRetriever(retrievers=[keyword_retriever, dense_retriever], weights=[0.35, 0.65],search_kwargs={"k": 10})
237
  ### to make it faster we are now using our built reranker thats why commenting the code below
238
  # compression_retriever = ContextualCompressionRetriever(
239
  # base_retriever=ensemble_retriever, base_compressor=ml_models["reranker_compressor"]