Wystarczy @tool: tworzenie własnego narzędzia
Właśnie zacząłeś pracę w AgentsCafé, gdzie klienci przy każdym stoliku mogą składać wiele zamówień na napoje.
Bariści ręcznie zapisują kody zamówień w formacie T5_Latte_20250812_0915, ale literówki i niespójne formatowanie często prowadzą do pomyłek i błędnych dostaw.
Aby to naprawić, zbudujesz proste narzędzie o nazwie generate_order_id, które przyjmuje identyfikator stolika, nazwę napoju i dołącza znacznik czasu – dzięki temu każdy kod zamówienia będzie czytelny i spójny.
Uwaga: biblioteka datetime została już zaimportowana.
To ćwiczenie jest częścią kursu
Agenty AI z Hugging Face smolagents
Instrukcje do ćwiczenia
- Zaimportuj dekorator
toolz bibliotekismolagents. - Użyj dekoratora
@tool, aby zarejestrować funkcjęgenerate_order_idjako narzędzie. - Zwróć sformatowany ciąg znaków z identyfikatorem zamówienia, łączący identyfikator stolika, nazwę napoju i aktualny znacznik czasu.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Import the tool decorator
from smolagents import ____
# Create a tool with the @tool decorator
____
def generate_order_id(table_id: str, drink_name: str) -> str:
"""
Generates a unique order ID for a café order.
Args:
table_id: The table's identifier (e.g. "T5")
drink_name: Name of the drink (e.g. "Latte")
Returns:
A string in the format "{table_id}_{drink_name}_{YYYYMMDD_HHMM}"
"""
timestamp = datetime.now().strftime("%Y%m%d_%H%M")
order_id = f"{table_id}_{drink_name}_{timestamp}"
# Return the order ID
return ____