Docstrings und Typannotationen hinzufügen
Zeit, dein convert_currency()-Tool mit Docstrings und Typannotationen für LLMs einfacher nutzbar zu machen. Ohne sie kann das LLM möglicherweise nicht effektiv wählen, welches Tool es aufrufen soll, oder es übergibt Werte falsch an die Argumente — beides führt zu unzuverlässiger Anwendungsleistung!
Ein MCP-Server wurde bereits mit FastMCP instanziiert und mcp zugewiesen.
Diese Übung ist Teil des Kurses
<Kurs>Einführung in das Model Context Protocol (MCP)</Kurs>Übungsanweisungen
- Füge geeignete Typen zu den Funktionsargumenten und zum Rückgabeobjekt hinzu.
- Vervollständige den Docstring, sodass die drei Funktionsargumente ihren Definitionen entsprechen.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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"))