File size: 1,255 Bytes
698c93a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | import requests
import mimetypes
import tempfile
import fitz # PyMuPDF for PDF
import pandas as pd
import openpyxl
import ast
DEFAULT_API_URL = "https://agents-course-unit4-scoring.hf.space"
def fetch_task_file_context(task_id, file_name):
file_url = f"{DEFAULT_API_URL}/files/{task_id}"
response = requests.get(file_url, timeout=15)
if response.status_code != 200:
return "[File could not be retrieved]"
content_type = response.headers.get("Content-Type", "")
extension = mimetypes.guess_extension(content_type)
with tempfile.NamedTemporaryFile(delete=True, suffix=extension) as tmp:
tmp.write(response.content)
tmp.flush()
if extension == ".pdf":
return "\n".join([page.get_text() for page in fitz.open(tmp.name)])
elif extension == ".csv":
return pd.read_csv(tmp.name).to_string()
elif extension in [".xls", ".xlsx"]:
return pd.read_excel(tmp.name).to_string()
elif extension == ".py":
with open(tmp.name, "r") as f:
return f.read()
elif extension == ".mp3":
return "[Audio file: Speech-to-text not yet implemented]"
else:
return "[Unsupported file format]"
|