ticket_text and one string output named intent.
The conversion creates three files:
training.jsonlcontains the rows you upload for Training.evaluation-inputs.jsonlcontains prompts to send to the trained model later.evaluation-gold.jsonlcontains the expected labels and stays local.
Before you start
You need:- A completed pipeline run whose End node returns the label you want the model to learn.
- The run’s JSON export. Follow Export your labeled results and wait for the run to finish before starting the export.
- Python 3.9 or later for the local conversion.
- The exact input and output field names in the export. See Export format if you need to inspect the entry shape.
index is unique within a run, but it is not a global item identifier across several runs.
Map the export to messages
For this classification example, each completed export entry maps as follows:
A completed entry can look like this:
failed, cancelled, paused, in_progress, or idle entries. They do not represent a completed input-to-label pair. The script below also stops if a completed entry lacks the selected string input or label, rather than silently creating a partial example.
A Quorum output can contain per-expert arrays. Point
--label-field at the resolved scalar output your End node returns for training. Do not stringify an answer array or use annotatorIds as the label unless that is deliberately the task you are training.Save the converter
Save the following asprepare_label_export.py:
--evaluation-count.
The script requires at least 10 rows in training.jsonl after the local evaluation split. When you create a Training from the new dataset, the default 80/10/10 split assigns those 10 rows as 8 train, 1 validation, and 1 test. The 8 train rows fill the default batch size. Custom splits or larger batch sizes can require more rows.
Run the conversion
Run the converter with the field names from your export:Inspect the separation
A line inevaluation-inputs.jsonl contains the prompt but not its answer:
evaluation-gold.jsonl keeps the answer separate:
evaluation-gold.jsonl away from the inference request. The index is only a local join key for scoring predictions later.
Upload the training partition
For this step, install the CLI, sign in, and select a project where your credentials can create and upload datasets. For browser login, select a team with Full access using the team switcher. For an API key, check CLI permissions. Create a dataset in the project selected by the CLI, upload only the training file, and copy the dataset ID printed bydataset list:
messages array with one user turn and a final assistant label. For other conversation formats, see Training data requirements.
A cost estimate validates the selected rows before a Training Run can start.
Keep the two evaluation boundaries separate
The local evaluation set stays separate from the dataset slice used by Training:- Keep
evaluation-inputs.jsonlandevaluation-gold.jsonlout of Training. - Create the Training with
--datasetpointing to the dataset containing onlytraining.jsonl. The command creates an 80% train, 10% validation, 10% test split for this new dataset and freezes a slice. - The platform learns from the train part and reports validation metrics on the validation part. The test part stays out of learning.
- Keep the local evaluation set untouched until you have actual predictions from the downloaded Model Version.