Spaces:
Running
Running
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,
|
10 |
-
|
11 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
|
13 |
self._api.k = limit
|
14 |
|
15 |
results = self._api.results(query)["organic"]
|
16 |
-
|
17 |
-
|
18 |
-
df = pd.DataFrame(articles)
|
19 |
|
20 |
-
return
|
|
|
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
|