abdoh-alkhateeb commited on
Commit
a70af92
1 Parent(s): e57e05b

Update serper agent and add more features to it

Browse files
agents/google_serper_search_agent.py CHANGED
@@ -3,18 +3,26 @@ from langchain_community.utilities import GoogleSerperAPIWrapper
3
 
4
 
5
  class GoogleSerperSearchAgent:
6
- def __init__(self) -> None:
 
7
  self._api = GoogleSerperAPIWrapper()
8
 
9
- def run(self, query: str, source: str | None = None, limit: int = 3) -> pd.DataFrame:
10
- if source is not None:
11
- query += f" site:{source}"
 
 
 
 
 
 
 
 
 
12
 
13
  self._api.k = limit
14
 
15
  results = self._api.results(query)["organic"]
16
- articles = [{"title": article["title"], "url": article["link"], "date": article.get("date", "")} for article in results]
17
-
18
- df = pd.DataFrame(articles)
19
 
20
- return df
 
3
 
4
 
5
  class GoogleSerperSearchAgent:
6
+ def __init__(self, sources: list[str]) -> None:
7
+ self._sources = sources
8
  self._api = GoogleSerperAPIWrapper()
9
 
10
+ def run(self, query: str, limit_per_source: int = 3) -> pd.DataFrame:
11
+ results = []
12
+ for site in self._sources:
13
+ results.extend(self._search(query, site, limit_per_source))
14
+
15
+ df = pd.DataFrame(results)
16
+
17
+ return df
18
+
19
+ def _search(self, query: str, site: str | None = None, limit: int = 3) -> list[dict[str, str]]:
20
+ if site is not None:
21
+ query += f" site:{site}"
22
 
23
  self._api.k = limit
24
 
25
  results = self._api.results(query)["organic"]
26
+ results = [{"title": result["title"], "url": result["link"], "date": result.get("date", "")} for result in results]
 
 
27
 
28
+ return results