| | 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) |
| | ) |