deepsearch / tools /fetch.py
suchith83's picture
research app
68b80a4
from .tool import Tool
from markdownify import markdownify
import requests
class FetchTool(Tool):
def __init__(self):
super().__init__(
name="fetch",
description="Fetch the content of a URL and return the markdownified version of the content",
inputSchema={
"type": "object",
"properties": {
"url": {"type": "string", "description": "The URL to fetch"}
}
}
)
def __call__(self, url: str):
try:
if not url:
return "Error: URL parameter is required"
resp = requests.get(url)
resp.raise_for_status() # Raise an exception for bad status codes
return markdownify(resp.text)
except requests.exceptions.RequestException as e:
return f"Error fetching URL: {str(e)}"
except Exception as e:
return f"Unexpected error while processing URL: {str(e)}"