Spaces:
Sleeping
Sleeping
| import requests | |
| from smolagents import tool | |
| def get_attachment_type(attachment_url: str) -> str: | |
| """ | |
| Inspect the contents of the attachment url, to determine what the filetype is. | |
| Args: | |
| attachment_url (str): The url of an attachment | |
| Returns: | |
| str: the mimetype of the file | |
| """ | |
| # some security: | |
| if "https://agents-course-unit4-scoring.hf.space" not in attachment_url: | |
| return "the requested URL is not whitelisted, refusing to fetch data" | |
| resp = requests.head(attachment_url) | |
| if resp.status_code != 200: | |
| return f"failed to fetch the requested attachment: (status={resp.status_code})\n{resp.text}" | |
| return resp.headers["content-type"] | |
| def get_text_attachment(attachment_url: str) -> str: | |
| """ | |
| get the contents of the attachment. works best for plain-text files (e.g. txt, md, etc.) | |
| Args: | |
| attachment_url (str): The URL of the attachment file | |
| Returns: | |
| str: the contents of the file | |
| """ | |
| # some security: | |
| if "https://agents-course-unit4-scoring.hf.space" not in attachment_url: | |
| return "the requested URL is not whitelisted, refusing to fetch data" | |
| resp = requests.get(attachment_url) | |
| if resp.status_code != 200: | |
| return f"failed to fetch the requested image: (status={resp.status_code})\n{resp.text}" | |
| mime = resp.headers.get("content-type") | |
| if not mime.startswith("text/"): | |
| return f"the requested file is not plain/text - the `{mime}` format is not supported by this tool." | |
| # TODO add truncation for large files | |
| return f"""File contents: \n```\n{resp.text}```""" |