Upload historical inference data for analysis and training dataset curation
Upload JSONL files containing inference request/response pairs directly through the dashboard. Uploaded data flows into the same analytics pipeline as live inferences, making it available for training dataset curation, evaluation, and analysis.
{"request": {"model": "gpt-4o", "messages": [{"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "What is the capital of France?"}]}, "response": {"id": "chatcmpl-abc123", "object": "chat.completion", "choices": [{"index": 0, "message": {"role": "assistant", "content": "The capital of France is Paris."}, "finish_reason": "stop"}], "usage": {"prompt_tokens": 24, "completion_tokens": 8, "total_tokens": 32}}}{"request": {"model": "gpt-4o", "messages": [{"role": "user", "content": "Translate 'hello' to Spanish."}]}, "response": {"id": "chatcmpl-def456", "object": "chat.completion", "choices": [{"index": 0, "message": {"role": "assistant", "content": "Hola"}, "finish_reason": "stop"}], "usage": {"prompt_tokens": 12, "completion_tokens": 2, "total_tokens": 14}}}
The response field is optional. You can upload request-only data if you don’t have the corresponding responses — this is useful for curating prompt datasets.
These limits are enforced both client-side (in the upload dialog) and server-side. Files exceeding either limit will be rejected before processing begins.
Navigate to the Datasets page in your project’s Observability dashboard.
Click the “Upload Data” button.
Enter a name for the upload (e.g., “GPT-4o production samples”).
Select or drag-and-drop a .jsonl file.
The UI validates file type, size, and line count before uploading.
Click Upload to start the upload.
The file picker only accepts .jsonl files. If your data is in another format (CSV, JSON array, etc.), convert it to JSONL first — one JSON object per line, no trailing commas.
Expand a completed upload to see error details for any lines that failed validation.
Click the external link icon to jump to the Inferences page, pre-filtered to show only inferences from that upload.
Click Download to retrieve the original uploaded JSONL file.
Use the Inferences page filter to compare uploaded historical data against live production inferences — helpful for spotting distribution drift or quality regressions.