Spaces:
Sleeping
Sleeping
| # mock_smolagents.py | |
| # Minimal mock implementation for environments where smolagents is unavailable | |
| from typing import Callable, List | |
| def tool(func: Callable) -> Callable: | |
| """Mock @tool decorator""" | |
| func.name = func.__name__ | |
| return func | |
| class LiteLLMModel: | |
| """Mock LLM model""" | |
| def __init__(self, model_id: str, api_key: str = None): | |
| self.model_id = model_id | |
| self.api_key = api_key | |
| class ToolCallingAgent: | |
| def __init__( | |
| self, | |
| model, | |
| tools, | |
| max_steps=5, | |
| verbose=False, | |
| add_base_tools=False, | |
| ): | |
| self.tools = tools | |
| self.verbose = verbose | |
| def run(self, task: str) -> str: | |
| task_lower = task.lower() | |
| # -------- Calculator -------- | |
| if "calculate" in task_lower or any(op in task_lower for op in ["+", "-", "*", "/"]): | |
| for tool in self.tools: | |
| if tool.name == "calculator": | |
| import re | |
| expr = re.sub(r"[^\d\+\-\*\/\(\)\.\s]", "", task) | |
| return tool(expr) | |
| # -------- Dataset Info -------- | |
| if "dataset" in task_lower or "mnist" in task_lower or "glue" in task_lower: | |
| for tool in self.tools: | |
| if tool.name == "get_hf_dataset_info": | |
| if "mnist" in task_lower: | |
| return tool("mnist") | |
| elif "glue" in task_lower: | |
| return tool("glue") | |
| return tool("mnist") | |
| # -------- Translation -------- | |
| if "translate" in task_lower: | |
| for tool in self.tools: | |
| if tool.name == "translate_text": | |
| try: | |
| parts = task_lower.replace("translate", "").split("to") | |
| text = parts[0].strip() | |
| lang = parts[1].strip().title() | |
| return tool(text, lang) | |
| except Exception: | |
| return tool("hello", "Spanish") | |
| # -------- Web Search -------- | |
| if "search" in task_lower or "find" in task_lower: | |
| for tool in self.tools: | |
| if tool.name == "search_web": | |
| query = task_lower.replace("search", "").replace("find", "").strip() | |
| return tool(query) | |
| # -------- Fallback -------- | |
| return ( | |
| "🤖 **Mock Agent Response**\n\n" | |
| "I couldn’t understand the request.\n\n" | |
| "Try:\n" | |
| "- `calculate 2 + 2`\n" | |
| "- `translate hello to French`\n" | |
| "- `tell me about mnist dataset`\n" | |
| "- `search machine learning`" | |
| ) |