- Live traces captured from proxied traffic
- Historical uploads imported from JSONL files
Live traces vs historical uploads
| Source | Best for |
|---|---|
| Live traces | Building datasets from the exact traffic your product sees today |
| Historical uploads | Backfills, migrations from another provider, or importing older request logs |
Creating datasets from live traffic
Use the Inferences page in the dashboard to filter the requests you care about, then save the filtered view as a dataset. Typical flow:- filter requests by environment, task, model, provider, or metadata
- inspect the slice until it represents the workflow you care about
- save it as either a training dataset or an eval dataset
- reuse that dataset in evals or training jobs
Uploading historical logs
Historical uploads use JSONL files. Each line must be a single JSON object with these fields:| Field | Required | Description |
|---|---|---|
request | Yes | Raw provider request body |
response | No | Raw provider response body, or null if you only have requests |
Source-backed JSONL example
This OpenAI request/response pair matches the helper factories used ininference/apps/llm-ops-consumer/tests/unit/inference-upload.vitest.test.ts.
Upload limits
| Limit | Value |
|---|---|
| Maximum file size | 10 GB |
| Maximum line count | 1,000,000 |
Upload workflow
- Open the Datasets page in your project.
- Click Upload Data.
- Name the upload.
- Select a
.jsonlfile. - Wait for processing to complete.
- Inspect the uploaded records and create datasets from the imported traffic.
Processing states
| Status | Meaning |
|---|---|
awaiting_upload | The upload record exists, but the file has not been received yet |
pending | The file was received and queued |
processing | The lines are being parsed and validated |
completed | The upload finished and the records are available |
failed | A fatal error stopped processing |
When to use each dataset type
| Dataset type | Use it for |
|---|---|
| Eval dataset | Repeatable model comparisons and rubric-based scoring |
| Training dataset | Fine-tuning or distillation runs |
Recommended next steps
- Run /evaluate/overview after you have a representative eval dataset.
- Move into /train/overview after your eval rubric is stable.
- Keep routing production traffic through Observe so the datasets stay realistic over time.