Spaces:
Build error
Build error
| from typing import Any, List | |
| from smolagents import ( | |
| DuckDuckGoSearchTool, | |
| PythonInterpreterTool, | |
| SpeechToTextTool, | |
| Tool, | |
| VisitWebpageTool, | |
| WikipediaSearchTool, | |
| ) | |
| import pytesseract | |
| from PIL import Image | |
| class ReadFileTool(Tool): | |
| """ | |
| Tool to read a file and return its content. | |
| Args: | |
| file_path (str): Path to the file to read. | |
| Returns: | |
| str: Content of the file or error message. | |
| """ | |
| name = "read_file" | |
| description = "Reads a file and returns its content" | |
| inputs = { | |
| "file_path": {"type": "string", "description": "Path to the file to read"}, | |
| } | |
| output_type = "string" | |
| def forward(self, file_path: str) -> str: | |
| try: | |
| with open(file_path, "r") as file: | |
| return file.read() | |
| except Exception as e: | |
| return f"Error reading file: {str(e)}" | |
| class ExtractTextFromImageTool(Tool): | |
| name = "extract_text_from_image" | |
| description = "Extracts text from an image using pytesseract" | |
| inputs = { | |
| "image_path": {"type": "string", "description": "Path to the image file"}, | |
| } | |
| output_type = "string" | |
| def forward(self, image_path: str) -> str: | |
| try: | |
| image = Image.open(image_path) | |
| text = pytesseract.image_to_string(image) | |
| return text | |
| except Exception as e: | |
| return f"Error extracting text from image: {str(e)}" | |
| def get_tools() -> List[Tool]: | |
| """ | |
| Returns a list of available tools for the agent. | |
| Returns: | |
| List[Tool]: List of initialized tool instances. | |
| """ | |
| tools = [ | |
| DuckDuckGoSearchTool(), | |
| PythonInterpreterTool(), | |
| WikipediaSearchTool(), | |
| VisitWebpageTool(), | |
| ReadFileTool(), | |
| ExtractTextFromImageTool(), | |
| ] | |
| return tools | |