Ajouter des docstrings et des annotations de type
Il est temps de rendre votre outil convert_currency() plus facile à utiliser pour les LLM grâce aux docstrings et aux annotations de type. Sans cela, le LLM pourrait ne pas choisir efficacement quel outil appeler, ou pourrait transmettre des valeurs incorrectement aux paramètres — dans les deux cas, le rendement de l'application devient peu fiable!
Un serveur MCP a déjà été instancié avec FastMCP et affecté à mcp.
Cette activité fait partie du cours
Introduction au Model Context Protocol (MCP)
Instructions de l’exercice
- Ajoutez les types appropriés aux paramètres de la fonction et à l'objet retourné.
- Complétez la docstring pour faire correspondre les trois paramètres de la fonction à leurs définitions.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Adding typing to the function arguments and return object
@mcp.tool()
def convert_currency(amount: ____, from_currency: ____, to_currency: ____) -> ____:
# Complete the docstring with the function arguments
"""
Convert an amount from one currency to another using current exchange rates.
Args:
____: The amount to convert
____: Source currency code (e.g., 'USD', 'EUR', 'GBP')
____: Target currency code (e.g., 'USD', 'EUR', 'GBP')
Returns:
A string with the conversion result and exchange rate
"""
url = f"https://api.frankfurter.dev/v1/latest?base={from_currency}&symbols={to_currency}"
response = requests.get(url)
data = response.json()
rate = data['rates'].get(to_currency)
if rate is None:
return f"Could not find exchange rate for {from_currency} to {to_currency}"
converted_amount = amount * rate
return f"{amount} {from_currency} = {converted_amount:.2f} {to_currency} (Rate: {rate})"
print(convert_currency(amount=100, from_currency="EUR", to_currency="USD"))