1 điểm bởi doolayer 2025-08-20 | 2 bình luận | Chia sẻ qua WhatsApp

Xin chào!

Khi sử dụng mô hình AI, có rất nhiều lúc cần đầu ra JSON có cấu trúc.
Bản thân tôi khi thực hiện nhiều dự án cũng thường xuyên gặp tình huống cần dùng đầu ra JSON, và lần nào cũng vướng cùng một số bất tiện.

Có 3 điểm bất tiện lớn trong đầu ra có cấu trúc của LLM.

  1. Xử lý khối mã (json … )
    Phần lớn LLM khi trả về JSON sẽ dùng khối mã được bọc bởi ba dấu backtick và từ khóa json.
    Có thể xử lý bằng regex đơn giản, nhưng phải lặp lại mỗi lần thì khá phiền. Nếu có thể xử lý ở cấp độ package chỉ bằng một dòng thì sẽ tiện hơn rất nhiều.

  2. Vấn đề dấu ngoặc kép lồng nhau
    Trong JSON, chuỗi phải được bao bằng dấu ngoặc kép ("). Nhưng nếu bên trong chuỗi lại xuất hiện dấu trích dẫn, thì cần escape như \".
    LLM thường bỏ sót sự phân biệt này và trả về JSON không hợp lệ. Tôi cần một tính năng có thể tự động hiệu chỉnh vấn đề này.

  3. Dấu ngoặc kép thông minh (dấu trích dẫn Unicode)
    Trong các câu do LLM tạo ra thường xuất hiện những dấu ngoặc kép thông minh như “ ”.
    Vì chúng không phù hợp với chuẩn JSON, nên cần có khả năng chuyển đồng loạt sang dấu ngoặc kép thông thường (").

Tôi có tìm thử thì thấy có dự án ai-json-fixer dựa trên Node.js, nhưng trong hệ sinh thái Python lại không có công cụ nào thật sự phù hợp.

Vì vậy tôi đã tự làm luôn! (cùng với thầy GPT nữa haha)
Có thể cài đơn giản bằng pip rồi dùng ngay.
pip install jsonquotefixer

Hãy thử dùng rồi phê bình thật mạnh tay nhé haha

2 bình luận

 
onandon 2025-08-26

Sẽ rất tuyệt nếu các ví dụ trên GitHub được hiển thị rõ ràng bằng ipynb.

 
doolayer 2025-08-20

Độ phức tạp thời gian là n (độ dài chuỗi)!