Tạo Dữ liệu Có cấu trúc rõ ràng
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 có dấu đầu dòng, bạn sẽ 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, nhưng đôi khi bạn chỉ cần dữ liệu thô không có gì khác.
Hãy xem xét việc xây dựng một web app tạo rules cho AWS EventBridge. Người dùng nhập mô tả, click generate, và mong đợi thấy JSON sạch sẽ mà họ có thể copy và sử dụng ngay lập tức. Nếu Claude trả về JSON được bao bọc trong markdown code blocks với văn bản giải thích, người dùng không thể chỉ copy toàn bộ phản hồi - họ phải chọn thủ công chỉ phần JSON.
Vấn đề với Phản hồi Mặc định
Theo mặc định, khi bạn yêu cầu Claude tạo JSON, bạn có thể nhận được thứ gì đó như thế này:
```json
{
"source": ["aws.ec2"],
"detail-type": ["EC2 Instance State-change Notification"],
"detail": {
"state": ["running"]
}
}
Rule này nắm bắt các thay đổi trạng thái EC2 instance khi instances bắt đầu chạy.
JSON là đúng, nhưng nó được bao bọc trong định dạng markdown và bao gồm văn bản giải thích. Đối với một web app mà người dùng cần copy JSON thô, điều này tạo ra ma sát trong trải nghiệm người dùng.
Giải pháp: Assistant Message Prefilling + Stop Sequences
Bạn có thể kết hợp assistant message prefilling với stop sequences để có được chính xác nội dung bạn muốn. Đây là cách nó hoạt động:
```python
messages = []
add_user_message(messages, "Tạo một event bridge rule rất ngắn dưới dạng json")
add_assistant_message(messages, "```json")
text = chat(messages, stop_sequences=["```"])
Kỹ thuật này hoạt động bằng cách:
json
{
"source": ["aws.ec2"],
"detail-type": ["EC2 Instance State-change Notification"],
"detail": {
"state": ["running"]
}
}
Xử lý Phản hồi
Bạn có thể nhận thấy một số ký tự xuống dòng thừa trong phản hồi. Những thứ này dễ xử lý:
python
import json
# Làm sạch và parse JSON
clean_json = json.loads(text.strip())
Ngoài JSON
Kỹ thuật này không chỉ giới hạn ở việc tạo JSON. Sử dụng nó bất cứ khi nào bạn cần dữ liệu có cấu trúc không có bình luận:
Cách tiếp cận này cho bạn quyền kiểm soát chính xác định dạng đầu ra của Claude, giúp việc tích hợp nội dung do AI tạo ra vào các ứng dụng mà dữ liệu có cấu trúc sạch sẽ là thiết yếu trở nên dễ dàng hơn nhiều.
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 có dấu đầu dòng, bạn sẽ 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, nhưng đôi khi bạn chỉ cần dữ liệu thô không có gì khác.
Hãy xem xét việc xây dựng một web app tạo rules cho AWS EventBridge. Người dùng nhập mô tả, click generate, và mong đợi thấy JSON sạch sẽ mà họ có thể copy và sử dụng ngay lập tức. Nếu Claude trả về JSON được bao bọc trong markdown code blocks với văn bản giải thích, người dùng không thể chỉ copy toàn bộ phản hồi - họ phải chọn thủ công chỉ phần JSON.
Vấn đề với Phản hồi Mặc định
Theo mặc định, khi bạn yêu cầu Claude tạo JSON, bạn có thể nhận được thứ gì đó như thế này:
```json
{
"source": ["aws.ec2"],
"detail-type": ["EC2 Instance State-change Notification"],
"detail": {
"state": ["running"]
}
}
Rule này nắm bắt các thay đổi trạng thái EC2 instance khi instances bắt đầu chạy.
JSON là đúng, nhưng nó được bao bọc trong định dạng markdown và bao gồm văn bản giải thích. Đối với một web app mà người dùng cần copy JSON thô, điều này tạo ra ma sát trong trải nghiệm người dùng.
Giải pháp: Assistant Message Prefilling + Stop Sequences
Bạn có thể kết hợp assistant message prefilling với stop sequences để có được chính xác nội dung bạn muốn. Đây là cách nó hoạt động:
```python
messages = []
add_user_message(messages, "Tạo một event bridge rule rất ngắn dưới dạng json")
add_assistant_message(messages, "```json")
text = chat(messages, stop_sequences=["```"])
Kỹ thuật này hoạt động bằng cách:
- User message nói với Claude cần tạo gì
- Prefilled assistant message khiến Claude nghĩ rằng nó đã bắt đầu một markdown code block
- Claude tiếp tục bằng cách viết chỉ nội dung JSON
- Khi Claude cố gắng đóng code block bằng `````, stop sequence ngay lập tức kết thúc quá trình tạo
json
{
"source": ["aws.ec2"],
"detail-type": ["EC2 Instance State-change Notification"],
"detail": {
"state": ["running"]
}
}
Xử lý Phản hồi
Bạn có thể nhận thấy một số ký tự xuống dòng thừa trong phản hồi. Những thứ này dễ xử lý:
python
import json
# Làm sạch và parse JSON
clean_json = json.loads(text.strip())
Ngoài JSON
Kỹ thuật này không chỉ giới hạn ở việc tạo JSON. Sử dụng nó bất cứ khi nào bạn cần dữ liệu có cấu trúc không có bình luận:
- Đoạn mã Python
- Danh sách có dấu đầu dòng
- Dữ liệu CSV
- Bất kỳ nội dung được định dạng nào mà bạn chỉ muốn nội dung, không có giải thích
Cách tiếp cận này cho bạn quyền kiểm soát chính xác định dạng đầu ra của Claude, giúp việc tích hợp nội dung do AI tạo ra vào các ứng dụng mà dữ liệu có cấu trúc sạch sẽ là thiết yếu trở nên dễ dàng hơn nhiều.