tugaa's picture
Create modules/web_tools.py
5a10976 verified
# modules/web_tools.py
import os
import aiohttp
from bs4 import BeautifulSoup
SERPER_API_KEY = os.getenv("SERPER_API_KEY")
async def search_web(query, language="en"):
url = "https://google.serper.dev/search"
headers = {"X-API-KEY": SERPER_API_KEY, "Content-Type": "application/json"}
payload = {
"q": query,
"gl": language,
"hl": language,
"num": 3
}
async with aiohttp.ClientSession() as session:
async with session.post(url, headers=headers, json=payload) as resp:
data = await resp.json()
return [r["link"] for r in data.get("organic", []) if "link" in r]
async def summarize_url(url):
try:
async with aiohttp.ClientSession() as session:
async with session.get(url, timeout=10) as resp:
html = await resp.text()
soup = BeautifulSoup(html, "html.parser")
paragraphs = soup.find_all("p")
text = " ".join(p.get_text() for p in paragraphs[:5])
return {"url": url, "summary": text[:1000]}
except Exception as e:
return {"url": url, "summary": f"Failed to summarize due to: {e}"}