SergeyO7 commited on
Commit
007432f
·
verified ·
1 Parent(s): 7cc7f81

Update agent.py

Browse files
Files changed (1) hide show
  1. agent.py +36 -4
agent.py CHANGED
@@ -1,4 +1,6 @@
1
- from smolagents import CodeAgent, DuckDuckGoSearchTool, WikipediaSearchTool, LiteLLMModel, tool, load_tool # HfApiModel, OpenAIServerModel
 
 
2
  import asyncio
3
  import os
4
  import yaml
@@ -32,7 +34,35 @@ from io import BytesIO
32
  # return "\n".join([f"{item['title']}: {item['link']}" for item in results]) or "No results found."
33
  # except Exception as e:
34
  # return f"Error performing Google search: {str(e)}"
35
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
  @tool
37
  def ImageAnalysisTool(image_path: str) -> str:
38
  """Tool for analyzing images using computer vision
@@ -102,9 +132,11 @@ class MagAgent:
102
  self.agent = CodeAgent(
103
  model= model,
104
  tools=[
 
 
105
  # GoogleSearchTool,
106
- DuckDuckGoSearchTool(),
107
- WikipediaSearchTool(),
108
  ImageAnalysisTool,
109
  # LocalFileAudioTool()
110
  ]
 
1
+ from smolagents import CodeAgent, LiteLLMModel, tool, load_tool # DuckDuckGoSearchTool, WikipediaSearchTool, HfApiModel, OpenAIServerModel
2
+ from langchain_community.tools.tavily_search import TavilySearchResults
3
+ from langchain_community.document_loaders import WikipediaLoader
4
  import asyncio
5
  import os
6
  import yaml
 
34
  # return "\n".join([f"{item['title']}: {item['link']}" for item in results]) or "No results found."
35
  # except Exception as e:
36
  # return f"Error performing Google search: {str(e)}"
37
+
38
+ @tool
39
+ def wiki_search(query: str) -> str:
40
+ """Search Wikipedia for a query and return maximum 2 results.
41
+
42
+ Args:
43
+ query: The search query."""
44
+ search_docs = WikipediaLoader(query=query, load_max_docs=2).load()
45
+ formatted_search_docs = "\n\n---\n\n".join(
46
+ [
47
+ f'<Document source="{doc.metadata["source"]}" page="{doc.metadata.get("page", "")}"/>\n{doc.page_content}\n</Document>'
48
+ for doc in search_docs
49
+ ])
50
+ return {"wiki_results": formatted_search_docs}
51
+
52
+ @tool
53
+ def web_search(query: str) -> str:
54
+ """Search Tavily for a query and return maximum 3 results.
55
+
56
+ Args:
57
+ query: The search query."""
58
+ search_docs = TavilySearchResults(max_results=3).invoke(query=query)
59
+ formatted_search_docs = "\n\n---\n\n".join(
60
+ [
61
+ f'<Document source="{doc.metadata["source"]}" page="{doc.metadata.get("page", "")}"/>\n{doc.page_content}\n</Document>'
62
+ for doc in search_docs
63
+ ])
64
+ return {"web_results": formatted_search_docs}
65
+
66
  @tool
67
  def ImageAnalysisTool(image_path: str) -> str:
68
  """Tool for analyzing images using computer vision
 
132
  self.agent = CodeAgent(
133
  model= model,
134
  tools=[
135
+ wiki_search,
136
+ web_search,
137
  # GoogleSearchTool,
138
+ # DuckDuckGoSearchTool(),
139
+ # WikipediaSearchTool(),
140
  ImageAnalysisTool,
141
  # LocalFileAudioTool()
142
  ]