| import aiohttp | |
| async def download_file_for_task(task_id: str, api_base_url: str) -> bytes: | |
| """ | |
| Asynchronously downloads a specific file associated with a given task ID. | |
| This function performs a GET request to the endpoint /files/{task_id}. | |
| Args: | |
| task_id: The identifier of the task for which to download the file. | |
| api_base_url: The base URL of the API. | |
| Returns: | |
| The content of the file as bytes. | |
| Raises: | |
| aiohttp.ClientResponseError: If the API returns an error status (e.g., 404 Not Found, 500 Internal Server Error). | |
| aiohttp.ClientError: For other client-side errors, such as network connection issues. | |
| """ | |
| url = f"{api_base_url}/files/{task_id}" | |
| async with aiohttp.ClientSession() as session: | |
| async with session.get(url) as response: | |
| response.raise_for_status() # Raise an exception for HTTP error codes (4xx or 5xx) | |
| file_bytes = await response.read() | |
| return file_bytes | |