Spaces:
Starting
Starting
import pandas as pd | |
import requests | |
import os | |
class FileParserTool: | |
def __init__(self): | |
self.name = "file_parser" | |
self.description = "Downloads and parses CSV or text files for GAIA tasks." | |
self.inputs = { | |
"task_id": {"type": "string", "description": "GAIA task ID"}, | |
"file_type": {"type": "string", "description": "File type (csv, txt, default: csv)"} | |
} | |
self.output_type = str | |
async def aparse(self, task_id: str, file_type: str = "csv") -> str: | |
try: | |
url = f"https://api.gaia-benchmark.com/files/{task_id}" | |
response = await requests.get(url) | |
if response.status_code == 200: | |
file_path = f"temp_{task_id}.{file_type}" | |
with open(file_path, "wb") as f: | |
f.write(response.content) | |
if file_type == "csv": | |
df = pd.read_csv(file_path) | |
return df.to_string() | |
elif file_type == "txt": | |
with open(file_path, "r") as f: | |
return f.read() | |
else: | |
return f"Unsupported file type: {file_type}" | |
return f"Error downloading file for task ID {task_id}" | |
except Exception as e: | |
return f"Error: {str(e)}" | |
finally: | |
if os.path.exists(file_path): | |
os.remove(file_path) | |
file_parser_tool = FileParserTool() | |