agents_course / utils.py
elokquence37's picture
Update utils.py
271c01d verified
import os
import requests
DEFAULT_API_URL = "https://agents-course-unit4-scoring.hf.space"
def download_file(task_id: str, filename: str) -> str:
"""
Downloads a file associated with the given task_id and saves it to the specified filename.
Args:
task_id (str): The task identifier used to fetch the file.
filename (str): The desired filename to save the file as.
Returns:
str: The absolute path to the saved file.
"""
api_url = DEFAULT_API_URL
file_url = f"{api_url}/files/{task_id}"
folder = 'data'
print(f"📡 Fetching file from: {file_url}")
try:
response = requests.get(file_url, timeout=15)
response.raise_for_status()
# Save binary content to the given filename
fpath = os.path.join(folder, filename)
with open(fpath, "wb") as f:
f.write(response.content)
abs_path = os.path.abspath(fpath)
print(f"✅ File saved as: {abs_path}")
return abs_path
except requests.exceptions.RequestException as e:
error_msg = f"❌ Failed to download file for task {task_id}: {e}"
print(error_msg)
raise RuntimeError(error_msg)