Skip to main content
Observe supports two main data paths:
  • Live traces captured from proxied traffic
  • Historical uploads imported from JSONL files
Both paths end in the same place: datasets you can use for evals, training, and analysis.

Live traces vs historical uploads

SourceBest for
Live tracesBuilding datasets from the exact traffic your product sees today
Historical uploadsBackfills, 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:
  1. filter requests by environment, task, model, provider, or metadata
  2. inspect the slice until it represents the workflow you care about
  3. save it as either a training dataset or an eval dataset
  4. 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:
FieldRequiredDescription
requestYesRaw provider request body
responseNoRaw provider response body, or null if you only have requests
The system detects the provider format from the request and response shape.

Source-backed JSONL example

This OpenAI request/response pair matches the helper factories used in inference/apps/llm-ops-consumer/tests/unit/inference-upload.vitest.test.ts.
{"request":{"model":"gpt-4","messages":[{"role":"user","content":"Hello"}],"temperature":0.7,"max_tokens":100},"response":{"id":"chatcmpl-123","object":"chat.completion","created":1700000000,"model":"gpt-4","choices":[{"index":0,"message":{"role":"assistant","content":"Hi there!"},"finish_reason":"stop"}]}}

Upload limits

LimitValue
Maximum file size10 GB
Maximum line count1,000,000

Upload workflow

  1. Open the Datasets page in your project.
  2. Click Upload Data.
  3. Name the upload.
  4. Select a .jsonl file.
  5. Wait for processing to complete.
  6. Inspect the uploaded records and create datasets from the imported traffic.

Processing states

StatusMeaning
awaiting_uploadThe upload record exists, but the file has not been received yet
pendingThe file was received and queued
processingThe lines are being parsed and validated
completedThe upload finished and the records are available
failedA fatal error stopped processing

When to use each dataset type

Dataset typeUse it for
Eval datasetRepeatable model comparisons and rubric-based scoring
Training datasetFine-tuning or distillation runs
Most teams keep both: an eval dataset to measure progress and a training dataset to improve the model.
  • 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.