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}```""" |