Zacznij terazZacznij za darmo

Parametryzowane narzędzia do wyszukiwania w bazie danych

Narzędzie do wyszukiwania na żądanie pozwoli LLM przeszukiwać waluty według nazwy lub kodu bez wczytywania całej listy. Użyj zapytania parametryzowanego (symbol zastępczy ?), aby uniknąć wstrzyknięcia danych wejściowych, i zastosuj limit wierszy, żeby odpowiedzi miały skończony rozmiar.

To ćwiczenie jest częścią kursu

Wprowadzenie do Model Context Protocol (MCP)

Zobacz kurs

Instrukcje do ćwiczenia

  • Zdefiniuj narzędzie lookup_currencies(), które wyszukuje wiersze w tabeli currencies, gdzie name lub code zawiera wartość prefix (bez rozróżniania wielkości liter).
  • Użyj parametryzowanego zapytania SQL, aby wstawić prefix w miejsce symboli zastępczych ?; zastosuj LIMIT 50, aby ograniczyć liczbę zwracanych wierszy.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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"))
Edytuj i uruchom kod