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

Flexible tool extraction

📖 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_json vớ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

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