Datasets
Generate outputs
Fill the output column with a Model and a system prompt as a job with progress, cancel and spend; regenerate only the rows that failed.
After this page every row has an output from the Model and prompt you chose, you know what it cost, and the dataset is ready for a run that records what produced its outputs.
Start a generation
Generate outputs on the dataset toolbar (or step 2 of New run) asks for a text Model from the project, a system prompt applied to every row, parameters (temperature, max tokens, top p) and which rows: all, only rows with no output, only rows the last generation failed on, or an explicit selection. The estimate shown before you start is a browser approximation from the price sheet; the job itself reports real spend as it goes.
The job
Generation runs as a job, one provider call per row in batches of ten written back after each batch, so a cancelled job keeps the rows it finished. The dialog shows progress (done / total over the selected rows), a live sample, failures so far and spent so far (tokens in and out, and cost — unknown, not zero, when the model has no price row). Cancel is read between batches. A row the provider refused is counted as failed and keeps its old output; one bad row never throws away the rest. One generation job runs per dataset at a time; a job interrupted by a restart stays running and the rows it wrote are on the dataset.
Afterwards
The grid’s output · model · latency · tokens columns fill; failed rows carry a chip and Retry failed regenerates just them. Outputs are not part of the content hash, so runs on this dataset stay comparable after regeneration. The model, prompt hash and parameters are recorded on the generation job; a dataset-level copy of those hyperparameters is not stored yet, so record them on the run when you start one.