from smolagents import Tool import requests import pandas as pd from io import BytesIO from typing import Any #AUTHORIZED_TYPES = [ # "string", # "boolean", # "integer", # "number", # "image", # "audio", # "array", # "object", # "any", # "null", #] class ExcelLoadTool(Tool): name = "_my_tool_excel_load" description = """ Load Excel spreadsheet for the provided task id To invoke the tool use code as below contents = _my_tool_excel_load(task_id="dummy") """ inputs = { "task_id": { "type": "string", "description": "task id to load excel file", } } output_type = "any" api_url = "https://agents-course-unit4-scoring.hf.space" def forward(self, task_id: str) -> Any: headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" } url = f"{self.api_url}/files/{task_id}" response = requests.get(url, headers=headers) bt = BytesIO(response.content) df = pd.read_excel(bt) #print(f"***KS*** Loaded Excel file contents for \n\ttask id: {task_id} \n\timage: {df}") return df