| | import os |
| | from huggingface_hub import login |
| | import datetime |
| | import pytz |
| |
|
| | from smolagents import ( |
| | CodeAgent, |
| | DuckDuckGoSearchTool, |
| | InferenceClientModel, |
| | load_tool, |
| | tool |
| | ) |
| | from tools.final_answer import FinalAnswerTool |
| | from Gradio_UI import GradioUI |
| |
|
| | |
| | hf_token = os.getenv("HF_HUB_TOKEN") |
| | if not hf_token: |
| | raise RuntimeError("HF_HUB_TOKEN env var not set") |
| | login(hf_token) |
| |
|
| | |
| | @tool |
| | def my_custom_tool(arg1: str, arg2: int) -> str: |
| | """ |
| | Placeholder tool. |
| | |
| | Args: |
| | arg1: A sample string. |
| | arg2: A sample integer. |
| | |
| | Returns: |
| | A placeholder response. |
| | """ |
| | return "What magic will you build?" |
| |
|
| | @tool |
| | def get_current_time_in_timezone(timezone: str) -> str: |
| | """ |
| | Fetch the current time in a specified timezone. |
| | |
| | Args: |
| | timezone: A tz database name (e.g., 'Europe/Paris'). |
| | |
| | Returns: |
| | Local time as 'YYYY-MM-DD HH:MM:SS', or an error message. |
| | """ |
| | try: |
| | tz = pytz.timezone(timezone) |
| | now = datetime.datetime.now(tz) |
| | return now.strftime("The current local time in %Z (%z) is %Y-%m-%d %H:%M:%S") |
| | except Exception as e: |
| | return f"Error fetching time: {e}" |
| |
|
| | final_answer = FinalAnswerTool() |
| |
|
| | |
| | model = InferenceClientModel( |
| | model_id="Qwen/Qwen2.5-Coder-32B-Instruct", |
| | max_tokens=2096, |
| | temperature=0.5, |
| | api_key=hf_token |
| | |
| | ) |
| |
|
| | |
| | image_gen = load_tool("agents-course/text-to-image", trust_remote_code=True) |
| | web_search = DuckDuckGoSearchTool() |
| |
|
| | |
| | agent = CodeAgent( |
| | model=model, |
| | tools=[ |
| | final_answer, |
| | my_custom_tool, |
| | get_current_time_in_timezone, |
| | image_gen, |
| | web_search, |
| | ], |
| | max_steps=6, |
| | verbosity_level=1, |
| | add_base_tools=False |
| | ) |
| |
|
| | |
| | GradioUI(agent).launch() |
| |
|