~/tools / Structured Output Schema Checker
Structured Output Schema Checker — Kiểm tra JSON Schema theo giới hạn của OpenAI, Anthropic, Gemini
Kiểm tra JSON Schema theo các giới hạn đã được ghi trong tài liệu về đầu ra có cấu trúc của OpenAI, Anthropic và Gemini. Xem từ khóa nào bị từ chối, bị bỏ qua hoặc không có trong tài liệu trước khi gửi schema tới API. Không có gì rời khỏi trình duyệt của bạn.
Các quy tắc được đối chiếu với tài liệu của từng nhà cung cấp vào ngày 2026-10-23.
Không được kiểm tra: độ sâu lồng nhau, giới hạn đối với enum dài, và mọi thứ mà nhà cung cấp không ghi trong tài liệu. Nhà cung cấp có thể thay đổi các quy tắc này, nên hãy đối chiếu với tài liệu hiện hành.
Mọi thứ chạy trong trình duyệt của bạn. Schema không được tải lên.
API AI có thể buộc câu trả lời của mô hình tuân theo một JSON Schema, nhưng mỗi nhà cung cấp chỉ chấp nhận một phần của JSON Schema, và các phần đó khác nhau. Một schema chạy được với nhà cung cấp này có thể bị nhà cung cấp khác từ chối, hoặc được chấp nhận nhưng một số quy tắc bị lặng lẽ loại bỏ. Công cụ này đọc schema của bạn và đối chiếu với những gì tài liệu của từng nhà cung cấp nêu: các quy tắc bắt buộc như đặt additionalProperties thành false, các từ khóa không được hỗ trợ, các từ khóa được chấp nhận nhưng không được thực thi, và các giới hạn kích thước đã công bố. Kết quả được chia thành ba loại để bạn phân biệt được lỗi có ghi trong tài liệu với một từ khóa mà tài liệu đơn giản là không liệt kê. Các quy tắc được đối chiếu với tài liệu của nhà cung cấp vào ngày hiển thị bên dưới công cụ.
Trường hợp dùng
- Kiểm tra schema trước khi gửi làm yêu cầu đầu ra có cấu trúc, để bạn không phải biết lỗi qua phản hồi 400
- Tìm những từ khóa bạn cần chuyển ra khỏi schema và đưa vào mã kiểm tra của riêng bạn
- So sánh những gì OpenAI, Anthropic và Gemini mỗi bên chấp nhận đối với cùng một schema
Cách dùng
- Dán JSON Schema bạn định gửi, hoặc tải ví dụ.
- Đọc kết quả cho từng nhà cung cấp. Không được chấp nhận nghĩa là tài liệu nói schema sẽ lỗi hoặc phải thay đổi. Bị bỏ qua nghĩa là từ khóa được chấp nhận nhưng không được thực thi. Không có trong tài liệu nghĩa là từ khóa không nằm trong danh sách từ khóa được hỗ trợ của nhà cung cấp.
- Sửa những mục được đánh dấu Không được chấp nhận, và kiểm tra phần còn lại bằng cách chạy một yêu cầu thật.
Hỏi đáp
Kết quả sạch có nghĩa là API sẽ chấp nhận schema của tôi không?
Không. Công cụ kiểm tra các quy tắc mà nhà cung cấp đã ghi trong tài liệu. Nó không gọi API nào, và tài liệu không bao quát mọi thứ, nên schema vẫn có thể bị từ chối. Hãy coi kết quả sạch là 'chưa phát hiện vấn đề nào đã biết' và thử bằng một yêu cầu thật.
Không được chấp nhận, Bị bỏ qua và Không có trong tài liệu nghĩa là gì?
Không được chấp nhận: tài liệu nói từ khóa không được hỗ trợ hoặc phải tuân theo một quy tắc, ví dụ additionalProperties phải là false. Bị bỏ qua: tài liệu nói từ khóa được chấp nhận nhưng không được thực thi, nên mô hình có thể vi phạm nó. Không có trong tài liệu: từ khóa không nằm trong danh sách từ khóa được hỗ trợ của nhà cung cấp, nên nó có thể bị từ chối hoặc bị bỏ qua và tài liệu không nói rõ là trường hợp nào.
Tại sao OpenAI yêu cầu mọi thuộc tính đều phải là required?
Ở chế độ strict, OpenAI yêu cầu mọi thuộc tính đều được liệt kê trong required và additionalProperties phải là false. Để một trường là tùy chọn, tài liệu nói hãy dùng union với null, ví dụ type là ["string", "null"].
Schema của tôi dùng minimum, maxLength hoặc tương tự. Tôi nên làm gì?
Anthropic không hỗ trợ ràng buộc số hay giới hạn độ dài chuỗi, và Gemini không thực thi giới hạn độ dài. Hãy bỏ chúng khỏi schema, mô tả giới hạn trong trường description, và tự kiểm tra giá trị sau khi nhận được câu trả lời. Công cụ JSON Schema Validator có thể thực hiện việc kiểm tra đó.
Công cụ này có kiểm tra đệ quy không?
Có, đối với Anthropic, vì tài liệu của họ liệt kê schema đệ quy là không được hỗ trợ. OpenAI và Gemini có ghi trong tài liệu về schema đệ quy, nên chúng không bị đánh dấu.
Những gì không được kiểm tra?
Độ sâu lồng nhau, giới hạn đối với enum dài, và mọi thứ mà nhà cung cấp không ghi trong tài liệu. Công cụ cũng không biết về các mô hình mới hoặc tính năng được thêm sau ngày kiểm tra, nên hãy đối chiếu với tài liệu hiện hành khi điều đó quan trọng.
Schema của tôi có được gửi tới máy chủ không?
Không. Việc kiểm tra chạy ngay trong trình duyệt của bạn.