Bỏ qua đến nội dung chính

Structure with XML tags

📖 Nội dung bài học

Họ phông chữ

Tóm tắt

Khi bạn xây dựng các prompt chứa nhiều nội dung, Claude đôi khi có thể gặp khó khăn trong việc hiểu phần văn bản nào đi cùng nhau hoặc các phần khác nhau đại diện cho điều gì. Thẻ XML (XML tags) cung cấp một cách đơn giản để thêm cấu trúc và sự rõ ràng cho prompt của bạn, đặc biệt là khi bạn chèn (interpolate) một lượng lớn dữ liệu.

Tại sao cấu trúc lại quan trọng

Hãy xem xét một prompt mà bạn cần phân tích 20 trang hồ sơ bán hàng. Nếu không có ranh giới rõ ràng, Claude có thể gặp khó khăn trong việc phân biệt giữa hướng dẫn của bạn và dữ liệu thực tế mà bạn muốn phân tích.

Ví dụ trên cho thấy ranh giới không rõ ràng có thể khiến Claude khó hiểu được ý định của bạn. Bằng cách bao bọc hồ sơ bán hàng trong các thẻ XML, bạn tạo ra sự phân tách rõ ràng giữa các phần khác nhau của prompt.

Sử dụng thẻ XML để tăng sự rõ ràng

Thẻ XML đóng vai trò là các dấu phân cách (delimiters) giúp Claude hiểu cấu trúc của prompt. Bạn có thể tạo các tên thẻ tùy chỉnh để mô tả nội dung bên trong:

<sales_records>
{sales_records}
</sales_records>

Tên thẻ không cần tuân theo bất kỳ đặc tả XML chính thức nào - bạn có thể tự do tạo các tên mô tả như sales_records, data, hoặc records. Các tên cụ thể thường hoạt động tốt hơn các tên chung chung.

Một ví dụ thực tế

Dưới đây là một ví dụ rõ ràng về lý do tại sao thẻ XML tạo nên sự khác biệt. Trong phiên bản "Chưa tốt" (Not Great), không rõ nội dung nào đại diện cho mã lỗi (buggy code) và nội dung nào là tài liệu hướng dẫn:

Phiên bản cải tiến sử dụng thẻ XML để phân tách rõ ràng các loại nội dung khác nhau:

<my_code>
from datavortex import Pipeline, DataSource

def process_data(input_file, output_file):
    pipeline = Pipeline()
    source = DataSource.from_csv(input_file)
</my_code>

<docs>

csv_source = DataSource.from_csv("data.csv")
</docs>

Giờ đây Claude có thể dễ dàng phân biệt giữa mã nguồn cần gỡ lỗi và tài liệu hướng dẫn dùng để dẫn dắt quá trình gỡ lỗi đó.

Không

Wrap trong XML-like tags

my_code, docs, athlete_information

Sections rõ ràng — Claude parse đúng

Không có ranh giới rõ

Instructions + data trộn lẫn

Claude khó phân biệt

Prompt với nhiều phần nội dung

Có wrap XML tags?

Output kém — Claude đoán

Output nhất quán + chính xác

Áp dụng cấu trúc vào prompt của bạn

Ngay cả khi nội dung được chèn vào không quá lớn, thẻ XML vẫn có thể cải thiện sự rõ ràng. Ví dụ, khi tạo thực đơn (meal plans), bạn có thể nhóm thông tin vận động viên lại với nhau:

<athlete_information>
- Height: {prompt_inputs["height"]}
- Weight: {prompt_inputs["weight"]}
- Goal: {prompt_inputs["goal"]}
- Dietary restrictions: {prompt_inputs["restrictions"]}
</athlete_information>

Điều này giúp Claude hiểu cực kỳ rõ ràng rằng khối này chứa thông tin đầu vào bên ngoài về vận động viên để phục vụ việc tạo thực đơn.

Khi nào nên sử dụng thẻ XML

Thẻ XML hữu ích nhất khi:

  • Bạn đưa vào lượng lớn ngữ cảnh (context) hoặc dữ liệu.
  • Prompt của bạn chứa nhiều loại nội dung riêng biệt.
  • Bạn muốn làm cho ranh giới giữa các phần khác nhau trở nên hiển nhiên.
  • Bạn đang chèn nội dung có thể bị nhầm lẫn với hướng dẫn của mình.

Mặc dù bạn có thể không thấy sự cải thiện đáng kể với các prompt đơn giản, thẻ XML đóng vai trò là các dấu phân cách giúp Claude hiểu rõ hơn ý định của bạn, dẫn đến các phản hồi nhất quán và chính xác hơn.

🔁 Bài học liên quan

📚 Nguồn & ghi nhận

Bài học có hữu ích không?

Góp ý / Báo lỗiPhát hiện sai sót hoặc có ý tưởng cải thiện?