Skip to content

Upload or build a dataset ​

What it does ​

Datasets are collections of (input, output) pairs used for training. You can upload a JSON or CSV file directly, or build one from feedback collected on past chat completions. The Datasets page lists all datasets, shows row counts, and lets you view, export, and delete them.

Prerequisites ​

  • For upload: a JSON or CSV file with input and output columns.
  • For build-from-feedback: at least one chat completion with feedback (guide 03).

Steps ​

1. Open Datasets page ​

Click Datasets in the left rail. The page lists existing datasets with row counts and created-at timestamps.

2a. Upload a dataset ​

Click the Upload button (top-right). A file picker opens.

  • Select your JSON or CSV file (one row per line in JSON; standard CSV headers + rows).
  • The file is POSTed to POST /admin/datasets.
  • A success toast shows the assigned dataset_id.

JSON format example:

json
{"input": "What is 2 + 2?", "output": "4"}
{"input": "What is the capital of France?", "output": "Paris"}

2b. Build from feedback ​

Click Build from Feedback (if it appears). A form opens with:

  • Base dataset (optional) — start with existing rows.
  • Filter by model (optional) — narrow to feedback on a specific model.
  • Strategy — DPO (preferred) or SFT.
  • Balanced negatives — true/false (default true; balances up/down ratings).

Click Build. The job runs in the background; you'll see a new dataset appear in the list once complete.

3. View dataset rows ​

Click a dataset name to open the DatasetViewer. The drawer shows:

  • Row count — total pairs.
  • Columns — input, output (and metadata if present).
  • Paginated list — click a row to expand and view full text.

4. Export to argilla format ​

Click the Export button in the drawer. The dataset is downloaded as a .jsonl file compatible with the Argilla annotation tool.

(Direct API) Upload via curl ​

bash
curl -s -X POST \
  -H "Authorization: Bearer $BIGWAVE_TOKEN" \
  -F "file=@your-dataset.json" \
  "http://localhost:8080/admin/datasets" | jq '.dataset_id'

Returns the new dataset_id.

Verify ​

  • After upload, your dataset appears in the Datasets list.
  • Click it; the DatasetViewer opens and shows the row count.
  • Export to argilla; a .jsonl file downloads.
  • Verify the file format:
    bash
    head -1 downloaded-file.jsonl | jq

Common issues ​

SymptomCauseFix
"400 Bad Request" on uploadFile format is invalid (malformed JSON or CSV without required columns)Check your file has input and output fields; use jq . < file.json to validate JSON
"No datasets to build from"No feedback exists yet or all feedback is on deleted completionsSend and rate some chats first (guides 01 & 03)
Export returns empty fileDataset has 0 rowsBuild or upload a non-empty dataset first
Build-from-feedback hangsJob is still runningRefresh the page after 10s; status updates from the backend

Dual-licensed: MIT OR Apache-2.0