from smolagents import tool from smolagents import CodeAgent, InferenceClientModel, VisitWebpageTool, DuckDuckGoSearchTool from dotenv import load_dotenv import os from huggingface_hub import login, upload_folder load_dotenv(override=True) hf_token = os.getenv("HF_TOKEN") or os.getenv("HUGGINGFACE_API_KEY") login(token=hf_token) @tool def multiply(a: int, b: int) -> int: """Multiply two numbers. Args: a: first int b: second int """ return a * b @tool def add(a: int, b: int) -> int: """Add two numbers. Args: a: first int b: second int """ return a + b @tool def subtract(a: int, b: int) -> int: """Subtract two numbers. Args: a: first int b: second int """ return a - b @tool def divide(a: int, b: int) -> int: """Divide two numbers. Args: a: first int b: second int """ if b == 0: raise ValueError("Cannot divide by zero.") return a / b @tool def modulus(a: int, b: int) -> int: """Get the modulus of two numbers. Args: a: first int b: second int """ return a % b def return_agent(): return CodeAgent( tools=[ multiply, add, subtract, divide, modulus, DuckDuckGoSearchTool(), VisitWebpageTool() ], model=InferenceClientModel(token=hf_token) )