naman1102 commited on
Commit
7dfd849
·
1 Parent(s): 3b2a7e8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -2
app.py CHANGED
@@ -103,7 +103,17 @@ class BasicAgent:
103
  print(f"[{i}] {s[:120]}…")
104
  state["history"].append({"step": "search", "results": results})
105
  state["logs"]["search"] = {"query": state["search_query"], "results": results}
106
- state["current_step"] = "answer"
 
 
 
 
 
 
 
 
 
 
107
  return state
108
 
109
  def _extract_boxed_answer(self, text: str) -> str:
@@ -135,17 +145,19 @@ class BasicAgent:
135
  sg = StateGraph(state_schema=AgentState)
136
  sg.add_node("analyze", self._analyze_question)
137
  sg.add_node("search", self._perform_search)
 
138
  sg.add_node("answer", self._generate_answer)
139
 
140
  # transitions
141
  sg.add_edge("analyze", "search")
142
  sg.add_edge("analyze", "answer")
143
- sg.add_edge("search", "answer")
144
 
145
  def router(state: AgentState):
146
  return state["current_step"]
147
 
148
  sg.add_conditional_edges("analyze", router, {"search": "search", "answer": "answer"})
 
149
  sg.set_entry_point("analyze")
150
  sg.set_finish_point("answer")
151
  return sg.compile()
 
103
  print(f"[{i}] {s[:120]}…")
104
  state["history"].append({"step": "search", "results": results})
105
  state["logs"]["search"] = {"query": state["search_query"], "results": results}
106
+ state["needs_search"] = not results # Set to True if no results found
107
+ state["current_step"] = "recheck"
108
+ return state
109
+
110
+ def _re_evaluate(self, state: AgentState) -> AgentState:
111
+ """If search returned nothing, reformulate a shorter query."""
112
+ if state["needs_search"]:
113
+ state["search_query"] = tighten(state["question"])
114
+ state["current_step"] = "search"
115
+ else:
116
+ state["current_step"] = "answer"
117
  return state
118
 
119
  def _extract_boxed_answer(self, text: str) -> str:
 
145
  sg = StateGraph(state_schema=AgentState)
146
  sg.add_node("analyze", self._analyze_question)
147
  sg.add_node("search", self._perform_search)
148
+ sg.add_node("recheck", self._re_evaluate)
149
  sg.add_node("answer", self._generate_answer)
150
 
151
  # transitions
152
  sg.add_edge("analyze", "search")
153
  sg.add_edge("analyze", "answer")
154
+ sg.add_edge("search", "recheck")
155
 
156
  def router(state: AgentState):
157
  return state["current_step"]
158
 
159
  sg.add_conditional_edges("analyze", router, {"search": "search", "answer": "answer"})
160
+ sg.add_conditional_edges("recheck", router, {"search": "search", "answer": "answer"})
161
  sg.set_entry_point("analyze")
162
  sg.set_finish_point("answer")
163
  return sg.compile()