manasagangotri commited on
Commit
9aeba3f
·
verified ·
1 Parent(s): a64c251

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -2
app.py CHANGED
@@ -14,6 +14,13 @@ import google.generativeai as genai
14
  genai.configure(api_key="AIzaSyBO3-HG-WcITn58PdpK7mMyvFQitoH00qA") # Replace with your actual Gemini API key
15
 
16
  # Load Gemini model
 
 
 
 
 
 
 
17
 
18
 
19
  import re
@@ -137,14 +144,22 @@ class WebFallbackQA(dspy.Program):
137
  return {"answer": answer, "retrieved_context": "Tavily"}
138
 
139
 
 
140
  class MathRouter(dspy.Program):
141
  def forward(self, question):
142
  print("Routing question:", question)
143
  if not is_valid_math_question(question):
144
- return dspy.Output(answer="❌ Only math questions are accepted. Please rephrase.", retrieved_context="")
 
145
  result = MathRetrievalQA().forward(question)
146
- #return result if result.answer else WebFallbackQA().forward(question)
 
 
 
 
 
147
  return result if result["answer"] else WebFallbackQA().forward(question)
 
148
  router = MathRouter()
149
 
150
  # === Feedback Storage ===
 
14
  genai.configure(api_key="AIzaSyBO3-HG-WcITn58PdpK7mMyvFQitoH00qA") # Replace with your actual Gemini API key
15
 
16
  # Load Gemini model
17
+ def output_guard(answer):
18
+ # Check if answer is empty or too short
19
+ if not answer or len(answer.strip()) < 20:
20
+ print("Output guard triggered: answer too short or empty.")
21
+ return False
22
+ # You can add more checks here if needed
23
+ return True
24
 
25
 
26
  import re
 
144
  return {"answer": answer, "retrieved_context": "Tavily"}
145
 
146
 
147
+
148
  class MathRouter(dspy.Program):
149
  def forward(self, question):
150
  print("Routing question:", question)
151
  if not is_valid_math_question(question):
152
+ return {"answer": "❌ Only math questions are accepted. Please rephrase.", "retrieved_context": ""}
153
+
154
  result = MathRetrievalQA().forward(question)
155
+
156
+ # Apply output guard here
157
+ if not output_guard(result["answer"]):
158
+ print("Output guard failed, falling back to web search.")
159
+ return WebFallbackQA().forward(question)
160
+
161
  return result if result["answer"] else WebFallbackQA().forward(question)
162
+
163
  router = MathRouter()
164
 
165
  # === Feedback Storage ===