НачатьНачать бесплатно

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

Инструмент поиска по запросу позволит языковой модели искать валюты по названию или коду, не загружая весь список. Используйте параметризованный запрос (заполнитель ?), чтобы защититься от инъекций в подсказку, и ограничьте количество строк в ответе.

Это упражнение является частью курса

Введение в 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"))
Редактировать и запускать код