Bắt đầu ngayBắt đầu miễn phí

Công cụ tra cứu cơ sở dữ liệu có tham số

Một công cụ tra cứu theo yêu cầu sẽ cho phép LLM tìm kiếm tiền tệ theo tên hoặc mã mà không cần tải toàn bộ danh sách. Hãy dùng truy vấn có tham số (ký tự giữ chỗ ?) để tránh prompt injection, và áp dụng giới hạn số hàng để câu trả lời luôn ở mức kiểm soát.

Bài tập này là một phần của khóa học

Giới thiệu về Model Context Protocol (MCP)

Xem khóa học

Hướng dẫn bài tập

  • Định nghĩa một tool tên lookup_currencies() để tìm các dòng trong currencies nơi name hoặc code chứa prefix (không phân biệt hoa thường).
  • Dùng truy vấn SQL có tham số để chèn prefix vào các ký tự giữ chỗ ?; dùng LIMIT 50 để giới hạn số hàng được trả về.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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"))
Chỉnh sửa và Chạy Mã