LoslegenKostenlos starten

Parametrisierte Datenbank-Lookup-Tools

Ein On-Demand-Lookup-Tool ermöglicht es dem LLM, Währungen nach Name oder Code zu suchen, ohne die gesamte Liste zu laden. Verwende eine parametrisierte Abfrage (Platzhalter ?), um Prompt Injection zu vermeiden, und setze ein Zeilenlimit, damit die Antworten begrenzt bleiben.

Diese Übung ist Teil des Kurses

<Kurs>Einführung in das Model Context Protocol (MCP)</Kurs>
Kurs ansehen

Übungsanweisungen

  • Definiere ein Tool namens lookup_currencies(), das Zeilen in currencies findet, in denen name oder code prefix enthält (Groß-/Kleinschreibung ignorieren).
  • Nutze eine parametrisierte SQL-Abfrage, um prefix in die ?-Platzhalter einzusetzen; verwende LIMIT 50, um die Anzahl der zurückgegebenen Zeilen zu begrenzen.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# Add lookup_currencies(prefix): find rows where name or code contains prefix
@mcp.____()
def ____(____: str) -> str:
    """Find currencies whose code or name contains the given prefix."""
    try:
        # Use parameterized query and LIMIT 50
        cursor = conn.execute(
            "SELECT code, name FROM currencies WHERE name LIKE ? OR code LIKE ? LIMIT ____",
            (f"%{____}%", f"%{____}%")
        )
        rows = cursor.fetchall()
        return "\n".join(f"{row['code']} - {row['name']}" for row in rows)
    except sqlite3.Error as e:
        return f"Database error: {e}"

print(lookup_currencies("Euro"))
Code bearbeiten und ausführen