Tool
Instruction JSONL checker and converter
One JSON object per line. Bad lines keep their line number and a reason. Conversion stays in this tab; GearDel never receives the file.
Parsing runs in the browser. The JSONL is not uploaded. Download the result from this tab if you need a file.
Formats this page knows
Alpaca: instruction, optional input, output. Empty input is kept as an empty string.
ShareGPT: conversations (or conversation) with from/value. human and user map to the user role; gpt, assistant, chatgpt, and model map to the assistant role; system stays system.
OpenAI fine-tuning chat: messages with role system|user|assistant and string content.
Conversion goes through that chat list. Alpaca input is appended to instruction with a blank line when converting out of Alpaca.
What this page does not do
- Image parts, tool calls, and function messages are rejected with a line error. They are not dropped silently.
- Multi-turn chat does not fit one Alpaca pair. Those lines error unless you turn on lossy conversion, which keeps the first user turn and the first assistant turn and, if present, folds one system message into instruction.
- A JSON array in one blob is not JSONL. Split it into one object per line.
- At most 20,000 lines or about two million characters in one paste.