Agents-Course-Assignment / my_tool_excel_load.py
krzsam's picture
Add Excel and Python file loading tools with tests and dependencies
8b3139e
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
<code>
contents = _my_tool_excel_load(task_id="dummy")
</code>
"""
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