> ## Documentation Index
> Fetch the complete documentation index at: https://docs.oumi.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# UPLOAD DATASETS

> Upload the examples you already have and fix files that fail to import

Upload a file when you already have examples, such as support conversations, labeled prompts, or a test set. Oumi detects the file's shape, converts it to the [Conversation format](https://docs.oumi.ai/guides/datasets.md#conversation-format) when needed, and runs quality tests on the result.

![Datasets page with the drop zone above the list of datasets, each with its type, rows, and quality test status](https://mintcdn.com/oumi/D0vKyXNqx2ohrLV9/images/datasets-page.jpg?fit=max\&auto=format\&n=D0vKyXNqx2ohrLV9\&q=85\&s=838ab2233a971cea6088643341987938)

## WHAT YOU CAN UPLOAD

Oumi accepts JSON, JSONL, CSV, and Parquet files. It reads the rows of each file to decide what the file becomes:

| Your file contains | Oumi creates |
| - | - |
| Rows with a `messages` list | A Conversation dataset. See [Conversation format](https://docs.oumi.ai/guides/datasets.md#conversation-format). |
| Rows with a prompt and a `chosen` and a `rejected` response | A Preference dataset. See [Preference format](https://docs.oumi.ai/guides/datasets.md#preference-format). |
| A table with a prompt column, and optional response and system instruction columns | A Conversation dataset, with one conversation per row and every column copied into `metadata`. |
| A Langfuse or LangSmith trace export | A Conversation dataset. See [Trace imports](#trace-imports). |
| Anything else, such as a PDF or a table with no prompt column | A file on the **Files** page. See [Files](https://docs.oumi.ai/guides/datasets/files.md). |

For sample files in each format, see the [Oumi example datasets](https://huggingface.co/datasets/oumi-ai/examples).

## TRACE IMPORTS

If your agent already runs in production and you trace it with Langfuse or LangSmith, you can turn those traces into a dataset. Oumi rebuilds each traced conversation with its system prompt, turns, tool definitions, and tool calls. The result reflects how real users talk to your agent, which synthetic data only approximates.

Export the traces as JSONL and upload the file like any other. To learn how to export from each platform and how Oumi handles partial and duplicate traces, see [Import observability logs](https://docs.oumi.ai/guides/datasets/import-observability-logs.md).

## QUALITY TESTS

After an upload finishes, Oumi runs quality tests on the new dataset. The tests check the structure of each row, such as empty turns, turns out of order, or a missing user message. These are problems that can make a training job fail or teach a model the wrong pattern. The **Quality Tests** column on the **Datasets** page shows how many tests passed. Click it to see the failed rows.

To learn what each test checks and how to remove the rows that fail, see [Check dataset quality](https://docs.oumi.ai/guides/datasets/quality.md).

Oumi skips rows it cannot convert at all, such as a row with no `messages`, and imports the rest. The dataset's **Overview** tab lists the number of skipped rows under **Upload Failures**.

## TROUBLESHOOTING

| What you see | What it means | What to do |
| - | - | - |
| "Each row must contain a 'messages' field" | No row matched the Conversation format. | Check the file against the [Conversation format](https://docs.oumi.ai/guides/datasets.md#conversation-format). For a table, make sure it has a column that holds the prompt. |
| "Every row must have the same fields" | The rows in the file have different columns. | Give every row the same columns, or split the file into one file per shape. |
| **Upload Failures** shows skipped rows | Some rows were not valid, for example a `tool` message without a `tool_call_id`. | Fix those rows and upload the file again. The new upload creates a new dataset. |
| The file appears on the **Files** page | The file did not match a dataset shape. | Convert it to the Conversation format, or use it as a [file](https://docs.oumi.ai/guides/datasets/files.md). |
| The dataset has the wrong **Type** | The rows match a different shape than you intended. For example, a row with `chosen` and `rejected` fields is a preference row. | Remove the fields of the other shape, and upload the file again. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.