Spaces:
Running
Running
| __all__ = ['ToolCreator'] | |
| class ToolCreator(): | |
| dependencies = [] | |
| inputSchema = { | |
| "name": "ToolCreator", | |
| "description": "Creates a tool for the given function", | |
| "parameters": { | |
| "type": "object", | |
| "properties": { | |
| "name": { | |
| "type": "string", | |
| "description": "The name of the tool to create", | |
| }, | |
| "tool_code": { | |
| "type": "string", | |
| "description": "The code of the tool to create", | |
| }, | |
| }, | |
| "required": ["name", "tool_code"], | |
| } | |
| } | |
| def validate_tool_code(self, tool_code): | |
| # Basic validation to check if the code is a valid Python function | |
| try: | |
| compile(tool_code, '<string>', 'exec') | |
| return True, None | |
| except SyntaxError as e: | |
| print(f"Syntax error in tool code: {e}") | |
| return False, e | |
| def run(self, **kwargs): | |
| print("Running Tool Creator") | |
| name = kwargs.get("name") | |
| content = kwargs.get("tool_code") | |
| print(f"Tool Name: {name}") | |
| print(f"Tool Content: {content}") | |
| # Create the tool file | |
| tool_file_path = f"src/tools/user_tools/{name}.py" | |
| try: | |
| with open(tool_file_path, "w") as tool_file: | |
| tool_file.write(content) | |
| print(f"Tool file created at {tool_file_path}") | |
| return { | |
| "status": "success", | |
| "message": "Tool created successfully", | |
| "output": { | |
| "tool_file_path": tool_file_path, | |
| "tool_name": name, | |
| } | |
| } | |
| except Exception as e: | |
| print(f"Error creating tool: {e}") | |
| return { | |
| "status": "error", | |
| "message": f"Error creating tool: {str(e)}", | |
| "output": { | |
| "tool_file_path": tool_file_path, | |
| "tool_name": name, | |
| } | |
| } |