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

Structured data

📖 Nội dung bài học

Tóm tắt

Khi bạn cần Claude tạo dữ liệu có cấu trúc như JSON, mã Python hoặc danh sách gạch đầu dòng, bạn thường gặp một vấn đề phổ biến: Claude muốn hữu ích và thêm văn bản giải thích xung quanh nội dung của bạn. Mặc dù điều này thường rất tốt, đôi khi bạn chỉ cần dữ liệu thô mà không có gì khác.

Hãy xem xét việc xây dựng một ứng dụng web tạo các quy tắc AWS EventBridge. Người dùng nhập mô tả, nhấp vào tạo và mong đợi thấy JSON sạch mà họ có thể sao chép và sử dụng ngay lập tức. Nếu Claude trả về JSON được bao bọc trong các khối mã markdown với tiêu đề và chân trang giải thích, người dùng không thể chỉ cần nhấn "sao chép tất cả" - họ sẽ phải tự chọn chỉ phần JSON.

Mẫu này xuất hiện bất cứ khi nào bạn tạo dữ liệu có cấu trúc. Claude tự nhiên muốn giải thích công việc của mình, nhưng trong nhiều trường hợp, bạn chỉ muốn nội dung bạn yêu cầu và không gì khác.

Kết hợp Stop Sequences với Assistant Message Prefilling

Giải pháp kết hợp hai kỹ thuật chúng ta đã đề cập: stop sequences và assistant message prefilling. Đây là cách nó hoạt động trong thực tế:

Tin nhắn user: yêu cầu JSON

Prefill assistant: code-block opener

Claude tiếp tục: chỉ JSON content

Stop sequence khi gặp closer

JSON sạch — strip + parse

messages = []

add_user_message(messages, "Generate a very short event bridge rule as json")
add_assistant_message(messages, "```json")

text = chat(messages, stop_sequences=["```"])

Khi bạn chạy mã này, bạn sẽ nhận được nội dung JSON mà không có bất kỳ định dạng markdown hoặc bình luận bổ sung nào.

Cách hoạt động ở hậu trường

Đây là những gì xảy ra khi Claude xử lý yêu cầu của bạn:

  1. Claude đọc tin nhắn người dùng của bạn và nghĩ "Tôi cần viết một quy tắc đầy đủ và có lẽ mô tả nó"
  2. Nó thấy tin nhắn trợ lý được điền trước và giả định rằng nó đã bắt đầu viết khối markdown JSON
  3. Claude nghĩ "Ồ, tôi đã bắt đầu phần JSON rồi, vì vậy tôi chỉ cần viết nội dung JSON thực tế"
  4. Nó tạo ra nội dung JSON
  5. Khi Claude cố gắng đóng khối markdown bằng ```, nó sẽ gặp stop sequence và quá trình tạo dừng ngay lập tức

Kết quả là bạn nhận được mọi thứ giữa phần bắt đầu được điền trước và stop sequence - chính xác là nội dung bạn muốn.

Làm sạch đầu ra

Văn bản trả về có thể có một số dòng mới thừa, nhưng bạn có thể dễ dàng làm sạch điều này:

import json

parsed_json = json.loads(text.strip())

Kỹ thuật này hoạt động với mọi định dạng dữ liệu có cấu trúc, không chỉ JSON. Cho dù bạn đang tạo mã Python, danh sách gạch đầu dòng hay bất kỳ định dạng nội dung cụ thể nào khác, bạn có thể sử dụng assistant message prefilling để bắt đầu phản hồi và stop sequences để kết thúc nó chính xác nơi bạn muốn.

Cách tiếp cận này mang lại cho bạn khả năng kiểm soát chính xác định dạng đầu ra của Claude, đảm bảo ứng dụng của bạn nhận được dữ liệu sạch, có thể sử dụng mà không có định dạng hoặc bình luận bổ sung có thể cản trở quá trình xử lý tiếp theo.

🔁 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?