ПочатиПочніть безкоштовно

Параметризовані інструменти пошуку в базі даних

Інструмент пошуку на вимогу дозволить LLM шукати валюти за назвою або кодом без завантаження всього списку. Використайте параметризований запит (плейсголдер ?), щоб уникнути інʼєкції в підказку, і застосуйте обмеження на кількість рядків, щоб відповіді залишалися контрольованими.

Ця вправа є частиною курсу

Вступ до Model Context Protocol (MCP)

Переглянути курс

Інструкції до вправи

  • Визначте інструмент lookup_currencies(), який знаходить рядки в currencies, де name або code містять prefix (без урахування регістру).
  • Використайте параметризований SQL-запит, щоб підставити prefix у плейсголдери ?; застосуйте LIMIT 50, щоб обмежити кількість повернутих рядків.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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"))
Редагувати та запускати код