Aan de slagBegin gratis

Geparametriseerde database-zoektools

Een on-demand zoektool laat het LLM valuta's op naam of code zoeken zonder de volledige lijst te laden. Gebruik een geparametriseerde query (placeholder ?) om prompt-injectie te voorkomen, en pas een rijlimiet toe zodat antwoorden beheersbaar blijven.

Deze oefening maakt deel uit van de cursus

Introductie tot Model Context Protocol (MCP)

Bekijk cursus

Oefeninstructies

  • Definieer een tool lookup_currencies() die rijen in currencies vindt waar name of code prefix bevat (niet hoofdlettergevoelig).
  • Gebruik een geparametriseerde SQL-query om prefix in de ?-placeholders te zetten; gebruik LIMIT 50 om het aantal geretourneerde rijen te beperken.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

# 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 bewerken en uitvoeren