Spaces:
Runtime error
Runtime error
Update tools.py
Browse files
tools.py
CHANGED
|
@@ -26,7 +26,9 @@ class WebSearchTool:
|
|
| 26 |
params = {"q": query}
|
| 27 |
if domain:
|
| 28 |
params["q"] += f" site:{domain}"
|
| 29 |
-
|
|
|
|
|
|
|
| 30 |
response.raise_for_status()
|
| 31 |
|
| 32 |
if response.status_code == 202:
|
|
@@ -38,9 +40,20 @@ class WebSearchTool:
|
|
| 38 |
title = result.find('a', {'class': 'result__a'})
|
| 39 |
snippet = result.find('a', {'class': 'result__snippet'})
|
| 40 |
if title and snippet:
|
| 41 |
-
results.append(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 42 |
|
| 43 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 44 |
|
| 45 |
def search(self, query: str, domain: Optional[str] = None) -> str:
|
| 46 |
for attempt in range(self.max_retries):
|
|
|
|
| 26 |
params = {"q": query}
|
| 27 |
if domain:
|
| 28 |
params["q"] += f" site:{domain}"
|
| 29 |
+
|
| 30 |
+
headers = {"User-Agent": "Mozilla/5.0"}
|
| 31 |
+
response = requests.get(base_url, params=params, headers=headers, timeout=10)
|
| 32 |
response.raise_for_status()
|
| 33 |
|
| 34 |
if response.status_code == 202:
|
|
|
|
| 40 |
title = result.find('a', {'class': 'result__a'})
|
| 41 |
snippet = result.find('a', {'class': 'result__snippet'})
|
| 42 |
if title and snippet:
|
| 43 |
+
results.append({
|
| 44 |
+
'title': title.get_text(),
|
| 45 |
+
'snippet': snippet.get_text(),
|
| 46 |
+
'url': title.get('href')
|
| 47 |
+
})
|
| 48 |
+
|
| 49 |
+
if not results:
|
| 50 |
+
return "No results found."
|
| 51 |
|
| 52 |
+
# Format results with title, URL, and snippet
|
| 53 |
+
formatted = "\n\n".join(
|
| 54 |
+
f"**{r['title']}**\n{r['url']}\n{r['snippet']}" for r in results[:5]
|
| 55 |
+
)
|
| 56 |
+
return formatted
|
| 57 |
|
| 58 |
def search(self, query: str, domain: Optional[str] = None) -> str:
|
| 59 |
for attempt in range(self.max_retries):
|