Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • MCP - Structured data

    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:
    1. User message nói với Claude cần tạo gì
    2. Prefilled assistant message khiến Claude nghĩ rằng nó đã bắt đầu một markdown code block
    3. Claude tiếp tục bằng cách viết chỉ nội dung JSON
    4. 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
    Kết quả là JSON sạch sẽ không có định dạng thêm:
    json
    {
    "source": ["aws.ec2"],
    "detail-type": ["EC2 Instance State-change Notification"],
    "detail": {
    "state": ["running"]
    }
    }
    Click image for larger version

Name:	image.png
Views:	11
Size:	31.2 KB
ID:	436176



    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
    Chìa khóa là xác định Claude tự nhiên muốn bao bọc nội dung của bạn trong gì, sau đó sử dụng điều đó làm prefill và stop sequence của bạn. Đối với code, thường là markdown code blocks. Đối với lists, có thể là các dấu định dạng khác nhau.
    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.
Working...
X