📖 Nội dung bài học
Ôi! Đã xảy ra lỗi, vui lòng thử lại.
Tóm tắt
Tóm tắt
Việc viết JSON schema chi tiết để rút trích dữ liệu có cấu trúc có thể là một điểm khó khăn khi làm việc với các công cụ AI. Có một giải pháp thông minh cho phép bạn chỉ định cấu trúc dữ liệu mong muốn trực tiếp trong prompt thay vì tạo các schema phức tạp.
Phương pháp Schema Linh hoạt
Thay vì viết một schema chi tiết cho mỗi tác vụ rút trích dữ liệu, bạn có thể tạo một tool chung tên là to_json chấp nhận bất kỳ cấu trúc đối tượng nào. Điểm mấu chốt là thiết lập input schema cho phép các thuộc tính bổ sung, sau đó chỉ định các yêu cầu chính xác của bạn trong chính prompt.

Phương pháp này loại bỏ một điểm khó khăn lớn - liên tục viết và quản lý các JSON schema lớn. Kết quả sẽ không tốt bằng schema chuyên dụng, nhưng bạn vẫn nhận được JSON output chất lượng cao với ít công sức thiết lập hơn nhiều.
Cách hoạt động
Quy trình rất đơn giản:
- Tạo một schema linh hoạt duy nhất chấp nhận bất kỳ cấu trúc đối tượng nào.
- Trong prompt, chỉ định chính xác cấu trúc dữ liệu bạn muốn.
- Yêu cầu Claude gọi tool
to_jsonvới cấu trúc bạn đã chỉ định. - Sử dụng
tool_choiceđể buộc Claude sử dụng tool của bạn.
Thiết lập Prompt
Khi viết prompt, hãy rất rõ ràng về cấu trúc bạn muốn. Đây là ví dụ về cách cấu trúc yêu cầu của bạn:
Phân tích bài viết dưới đây và rút trích dữ liệu chính. Sau đó gọi tool to_json.
<article_text>
{result["text"]}
</article_text>
Khi bạn gọi to_json, hãy truyền cấu trúc sau:
{{
"title": str # tiêu đề bài viết,
"author": str # tác giả bài viết,
"topics": List[str] # Danh sách các chủ đề được đề cập trong bài viết
}}
Thực hiện API Call
API call sử dụng schema linh hoạt và buộc sử dụng tool:
flexible_result = chat(messages, tools=[to_json_schema], tool_choice="to_json")
Thay đổi cấu trúc dễ dàng
Ưu điểm thực sự trở nên rõ ràng khi bạn cần sửa đổi cấu trúc dữ liệu của mình. Thay vì viết lại toàn bộ schema, bạn chỉ cần cập nhật prompt của mình. Muốn thêm một trường cho số lượng chủ đề? Chỉ cần thêm một dòng:
"num_topics": int # Số lượng chủ đề được đề cập
Chỉ vậy thôi - không cần sửa đổi schema.
Khi nào nên sử dụng mỗi phương pháp
Phương pháp schema linh hoạt hoạt động tốt cho:
- Rapid prototyping và thử nghiệm
- Các tác vụ rút trích dữ liệu đơn giản
- Các tình huống bạn thường xuyên thay đổi yêu cầu dữ liệu
Hãy sử dụng schema chuyên dụng cho:
- Các tác vụ rút trích dữ liệu sản xuất quan trọng
- Các cấu trúc dữ liệu lồng nhau phức tạp
- Khi bạn cần độ chính xác cao nhất có thể
Phương pháp linh hoạt mang lại khoảng 90% chất lượng với 10% công sức thiết lập, làm cho nó trở nên hoàn hảo cho hầu hết các trường hợp sử dụng mà bạn cần rút trích dữ liệu có cấu trúc mà không cần quản lý overhead của schema.
🔁 Bài học liên quan
- Bài tiếp: The text editor tool
- Bài trước: Structured data with tools
- Cùng section: Overview of Claude Models · Accessing the API · Making a request
- Thuộc lộ trình: Path C
- Docs tham khảo: Glossary · Skills atlas · By use-case
📚 Nguồn & ghi nhận
- Bài học gốc Anthropic Academy: https://anthropic.skilljar.com/claude-in-amazon-bedrock/276763
- © 2025 Anthropic. Chỉ dùng cho mục đích giáo dục, fair-use.
- Crawl: 2026-04-23 · Chuẩn hoá: 2026-05-01