final_exam_ai_agents_hf_course / tools /web_search_tool.py
VinogradovAI's picture
Update tools/web_search_tool.py
247039e verified
from langchain.tools import BaseTool
import requests
from bs4 import BeautifulSoup
class WebSearchTool(BaseTool):
"""
Инструмент для простого веб-поиска (Google) — возвращает топ-5 результатов.
"""
name: str = "web_search"
description: str = "Perform generic web searches (beyond SearchSummaryTool) with more flexible scraping and parsing. Use when you need custom page analysis or non-trivial web-data extraction."
def _run(self, query: str) -> str:
resp = requests.get(
'https://www.google.com/search',
params={'q': query},
headers={'User-Agent': 'Mozilla/5.0'}
)
soup = BeautifulSoup(resp.text, 'html.parser')
results = []
for g in soup.select('div.yuRUbf')[:5]:
a = g.a
results.append(f"{a.text} - {a['href']}")
return "\n".join(results)
async def _arun(self, query: str) -> str:
raise NotImplementedError("Async not supported.")