Spaces:
Sleeping
Sleeping
| 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)}" |