| | from smolagents import Tool |
| | from PIL import Image |
| | import requests |
| | from io import BytesIO |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| |
|
| | class ImageLoadTool(Tool): |
| | name = "_my_tool_image_load" |
| | description = """ |
| | Load image for the provided task id |
| | To invoke the tool use code as below |
| | <code> |
| | loaded_image = _my_tool_image_load(task_id="dummy") |
| | </code> |
| | """ |
| |
|
| | inputs = { |
| | "task_id": { |
| | "type": "string", |
| | "description": "task id to load image", |
| | } |
| | } |
| |
|
| | output_type = "image" |
| | api_url = "https://agents-course-unit4-scoring.hf.space" |
| |
|
| | def forward(self, task_id: str) -> Image: |
| | 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) |
| | image = Image.open(BytesIO(response.content)).convert("RGB") |
| | print(f"***KS*** Loaded image for \n\ttask id: {task_id} \n\timage: {image}") |
| | return image |
| |
|