josondev commited on
Commit
72c7dbb
·
verified ·
1 Parent(s): 3be2c9c

Update veryfinal.py

Browse files
Files changed (1) hide show
  1. veryfinal.py +32 -25
veryfinal.py CHANGED
@@ -1,5 +1,4 @@
1
  """Enhanced LangGraph + Agno Hybrid Agent System"""
2
-
3
  import os
4
  import time
5
  import random
@@ -160,7 +159,7 @@ def modulus(a: int, b: int) -> int:
160
 
161
  @tool
162
  def optimized_web_search(query: str) -> str:
163
- """Optimized Tavily web search for speed."""
164
  try:
165
  time.sleep(random.uniform(1, 2))
166
  docs = TavilySearchResults(max_results=2).invoke(query=query)
@@ -173,7 +172,7 @@ def optimized_web_search(query: str) -> str:
173
 
174
  @tool
175
  def optimized_wiki_search(query: str) -> str:
176
- """Optimized Wikipedia search for speed."""
177
  try:
178
  time.sleep(random.uniform(0.5, 1))
179
  docs = WikipediaLoader(query=query, load_max_docs=1).load()
@@ -283,35 +282,43 @@ class HybridLangGraphAgnoSystem:
283
  g.add_node("agno_general",agno_general)
284
  g.set_entry_point("router")
285
  g.add_conditional_edges("router",pick,{
286
- "lg_math":"lg_math","agno_research":"agno_research",
287
- "lg_retrieval":"lg_retrieval","agno_general":"agno_general"
288
  })
289
  for n in ["lg_math","agno_research","lg_retrieval","agno_general"]:
290
  g.add_edge(n,"END")
291
  return g.compile(checkpointer=MemorySaver())
292
- def process_query(self, q: str) -> Dict[str,Any]:
293
- state={
294
- "messages":[HumanMessage(content=q)],
295
- "query":q,"agent_type":"","final_answer":"",
296
- "perf":{},"agno_resp":""
297
- }
298
- cfg={"configurable":{"thread_id":f"hyb_{hash(q)}"}}
299
- try:
300
- out=self.graph.invoke(state,cfg)
301
- return {
302
- "answer":out["final_answer"],
303
- "performance_metrics":out["perf"],
304
- "provider_used":out["perf"].get("prov")
305
- }
306
- except Exception as e:
307
- return {"answer":f"Error: {e}","performance_metrics":{},"provider_used":"Error"}
308
 
309
- def build_graph(provider: str="hybrid"):
310
- if provider=="hybrid":
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
311
  return HybridLangGraphAgnoSystem().graph
312
- raise ValueError("Only 'hybrid' supported")
 
313
 
314
- if __name__ == "__main__":
 
315
  graph=build_graph()
316
  msgs=[HumanMessage(content="What are the names of the US presidents who were assassinated?")]
317
  res=graph.invoke({"messages":msgs},{"configurable":{"thread_id":"test"}})
 
1
  """Enhanced LangGraph + Agno Hybrid Agent System"""
 
2
  import os
3
  import time
4
  import random
 
159
 
160
  @tool
161
  def optimized_web_search(query: str) -> str:
162
+ """Optimized Tavily web search."""
163
  try:
164
  time.sleep(random.uniform(1, 2))
165
  docs = TavilySearchResults(max_results=2).invoke(query=query)
 
172
 
173
  @tool
174
  def optimized_wiki_search(query: str) -> str:
175
+ """Optimized Wikipedia search."""
176
  try:
177
  time.sleep(random.uniform(0.5, 1))
178
  docs = WikipediaLoader(query=query, load_max_docs=1).load()
 
282
  g.add_node("agno_general",agno_general)
283
  g.set_entry_point("router")
284
  g.add_conditional_edges("router",pick,{
285
+ "lg_math":"lg_math","agno_research":"agno_research",
286
+ "lg_retrieval":"lg_retrieval","agno_general":"agno_general"
287
  })
288
  for n in ["lg_math","agno_research","lg_retrieval","agno_general"]:
289
  g.add_edge(n,"END")
290
  return g.compile(checkpointer=MemorySaver())
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
291
 
292
+ def process_query(self, q: str) -> Dict[str,Any]:
293
+ state={
294
+ "messages":[HumanMessage(content=q)],
295
+ "query":q,"agent_type":"","final_answer":"",
296
+ "perf":{},"agno_resp":""
297
+ }
298
+ cfg={"configurable":{"thread_id":f"hyb_{hash(q)}"}}
299
+ try:
300
+ out=self.graph.invoke(state,cfg)
301
+ return {
302
+ "answer":out["final_answer"],
303
+ "performance_metrics":out["perf"],
304
+ "provider_used":out["perf"].get("prov")
305
+ }
306
+ except Exception as e:
307
+ return {"answer":f"Error: {e}","performance_metrics":{},"provider_used":"Error"}
308
+
309
+ def build_graph(provider: str = "hybrid"):
310
+ """
311
+ Build and return the StateGraph for the requested provider.
312
+ - "hybrid", "groq", "google", and "nvidia" are all valid and
313
+ will return the full HybridLangGraphAgnoSystem graph.
314
+ """
315
+ if provider in ("hybrid", "groq", "google", "nvidia"):
316
  return HybridLangGraphAgnoSystem().graph
317
+ else:
318
+ raise ValueError(f"Unsupported provider: '{provider}'. Please use 'hybrid', 'groq', 'google', or 'nvidia'.")
319
 
320
+ # Test
321
+ if __name__=="__main__":
322
  graph=build_graph()
323
  msgs=[HumanMessage(content="What are the names of the US presidents who were assassinated?")]
324
  res=graph.invoke({"messages":msgs},{"configurable":{"thread_id":"test"}})