Alat Pencarian Basis Data dengan Parameter
Alat pencarian on-demand akan memungkinkan LLM mencari mata uang berdasarkan nama atau kode tanpa memuat seluruh daftar. Gunakan kueri berparameter (placeholder ?) untuk menghindari prompt injection, dan terapkan batas baris agar respons tetap terkontrol.
Latihan ini merupakan bagian dari kursus
Pengantar Model Context Protocol (MCP)
Instruksi latihan
- Definisikan sebuah tool bernama
lookup_currencies()yang mencari baris padacurrenciesdi mananameataucodememuatprefix(tanpa peka huruf besar/kecil). - Gunakan kueri SQL berparameter untuk menyisipkan
prefixke dalam placeholder?; gunakanLIMIT 50untuk membatasi jumlah baris yang dikembalikan.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# 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"))