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]"