BaşlayınÜcretsiz başlayın

Parametreli Veritabanı Arama Araçları

İsteğe bağlı bir arama aracı, LLM'in tam listeyi yüklemeden para birimlerini ada veya koda göre aramasına izin verir. İleti enjeksiyonunu önlemek için bir parametreli sorgu (yer tutucu ?) kullan ve yanıtların sınırlı kalması için satır sınırı uygula.

Bu egzersiz, kursun bir parçasıdır

Model Context Protocol (MCP) Giriş

Kursa Göz Atın

Egzersiz talimatları

  • lookup_currencies() adında, name veya code alanında prefix geçen (büyük/küçük harf duyarsız) currencies satırlarını bulan bir araç tanımla.
  • prefix değerini ? yer tutucularına yerleştirmek için parametreli bir SQL sorgusu kullan; döndürülen satır sayısını sınırlamak için LIMIT 50 kullan.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

# 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"))
Kodu Düzenle ve Çalıştır