~/tools / AI JSONL Checker
AI JSONL Checker — 逐行檢查批次或微調用的 JSONL 檔案
逐行檢查要用於 OpenAI Batch API、Anthropic Message Batches API 或 OpenAI 微調的 JSONL 檔案。在上傳之前找出無效的 JSON、重複的 custom_id、不支援的端點與參數,以及大小限制。內容不會離開你的瀏覽器。
規則已於 2026-10-23 依據文件核對。
文件: OpenAI Batch / Anthropic Message Batches / OpenAI 微調
未檢查:模型名稱、參數的內容、token 數量,以及文件沒有說明的規則,例如同一個 OpenAI 批次中的所有請求是否必須使用相同的端點。
所有處理都在你的瀏覽器中執行,檔案不會被上傳。
批次 API 與微調都使用 JSONL 檔案,也就是每一行都是一個 JSON 值。只要有一行出錯,整個上傳就可能失敗,而且錯誤訊息常常只指向檔案,不會指出是哪一行。本工具會讀取你貼上的文字,並依據文件對你所選格式的說明進行檢查:OpenAI Batch 要求 custom_id 不重複、端點在列出的範圍內、每個檔案只使用一個模型,且不使用串流;Anthropic Message Batches 要求 custom_id 為 1 至 64 個字母、數字、連字號與底線,並檢查批次會拒絕的參數;OpenAI 微調則要求每一行都有 messages 陣列、至少 10 行,且 weight 為 0 或 1。結果會顯示每個問題所在的行號,規則是依據工具下方所標示日期當天的文件所核對。
使用情境
- 在上傳批次輸入檔之前先檢查,避免一行錯誤導致整個批次失敗
- 在數千行的檔案中找出重複的 custom_id,或把 stream 設為 true 的請求
- 檢查微調資料中是否有缺少 messages、沒有 assistant 回覆,或 weight 不是 0 或 1 的行
使用方法
- 選擇格式:OpenAI Batch、Anthropic Message Batches 或 OpenAI 微調。
- 貼上檔案內容,或載入該格式的範例。
- 查看問題清單與各自的行號。「修正」表示文件指出該行會被拒絕或無效,「確認」表示值得看一下,「備註」僅供參考。修正檔案後再貼上一次。
FAQ
什麼是 JSONL?
JSON Lines:一種文字檔,每一行是一個完整的 JSON 值,行與行之間沒有逗號。OpenAI 微調文件要求每一行都是一個完整的 JSON 結構。分散在多行的 JSON 文件,或單一陣列,都不是 JSONL。
Anthropic Message Batches API 接受 JSONL 檔案嗎?
它在建立呼叫的 requests 參數中接受一份請求清單,每個請求都有 custom_id 與 params 物件。結果則以 .jsonl 檔案回傳。本工具把每一行視為一個請求,也接受 JSON 陣列,或含有 requests 陣列的物件。
它會檢查哪些限制?
OpenAI Batch:每個批次 50,000 個請求、輸入檔 200 MB,以及整個批次共 50,000 筆 embedding 輸入。Anthropic:每個批次 100,000 個請求或 256 MB。OpenAI 微調:至少 10 行。顯示的大小是你所貼上文字的 UTF-8 大小。
為什麼說把 stream 設為 true 的請求有問題?
OpenAI 文件指出,Batch worker 會拒絕把 stream 設為 true 的請求。Anthropic 文件則列出 stream: true、speed、fallbacks 與 max_tokens: 0,這些參數在批次中會回傳驗證錯誤。
它不檢查什麼?
模型名稱、參數的內容、token 數量、你的帳號是否能使用該端點,以及文件沒有說明的任何事項。例如,它不會判斷同一個 OpenAI 批次中的所有請求是否必須使用相同的端點。通過檢查的檔案仍可能在 API 端失敗,所以請先用小檔案測試。
我的檔案會傳到伺服器嗎?
不會。檢查在你的瀏覽器中執行,內容不會被上傳。