| import requests |
| import mimetypes |
| import tempfile |
| import fitz |
| 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]" |
|
|