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

# Conjuntos de datos de experimentos

> Crea conjuntos de datos CSV para experimentos de Fetch Hive

# Conjuntos de datos de experimentos

Usa **Datasets** para almacenar casos de prueba reutilizables para experimentos.

Cada conjunto de datos puede tener una o más versiones inmutables. Cuando ejecutas un experimento, Fetch Hive usa una versión específica del conjunto de datos para que la ejecución sea repetible.

## ¿Cómo creo un conjunto de datos? <a href="#create-dataset" id="create-dataset" />

Abre **Experiments** y luego elige **Datasets** en la navegación secundaria.

Haz clic en **Add Dataset**.

Ingresa un nombre y una descripción opcional.

Sube un archivo CSV. Puedes hacer clic en el área de carga o arrastrar el CSV hacia ella.

Revisa el mapeo de columnas. Fetch Hive mapea automáticamente:

* columnas normales a valores de entrada
* `expected_output` a la salida esperada
* columnas `metadata.*` a metadatos de fila

Haz clic en **Add Dataset** para crear el conjunto de datos y su primera versión.

{/* Add screenshot: CSV mapping preview after upload */}

## ¿Cómo veo las versiones del conjunto de datos? <a href="#view-versions" id="view-versions" />

Abre **Experiments** y luego elige **Datasets**.

Haz clic en una fila de conjunto de datos para abrir la página de detalle.

Usa el selector de versión en el encabezado de la página para cambiar entre versiones. Las versiones se muestran como etiquetas como `v1`, `v2` o `v4`.

La URL de la página incluye la versión seleccionada:

```text theme={null}
/experiments/datasets/:datasetId/v/:versionId
```

Abrir un conjunto de datos sin una versión selecciona automáticamente la versión más reciente.

Las ejecuciones siempre almacenan la versión exacta del conjunto de datos que usaron, por lo que las ejecuciones antiguas siguen siendo reproducibles incluso después de que existan versiones más nuevas.

## Formato de archivo CSV <a href="#csv-format" id="csv-format" />

La primera fila debe contener los encabezados de columna.

El importador de CSV soporta valores entre comillas, comas dentro de valores entre comillas, comillas escapadas, valores entre comillas multilínea y celdas vacías.

Límites de carga:

| Límite                                        | Valor  |
| --------------------------------------------- | ------ |
| Tipo de archivo                               | CSV    |
| Tamaño máximo de archivo                      | 5 MB   |
| Filas máximas                                 | 10,000 |
| Filas de vista previa mostradas en el diálogo | 50     |

## Columnas del CSV <a href="#csv-columns" id="csv-columns" />

Un conjunto de datos de experimento tiene tres tipos de columnas:

* columnas de entrada
* una columna opcional de salida esperada
* columnas opcionales de metadatos

Solo se necesitan columnas de entrada para ejecutar candidatos. La salida esperada y los metadatos son opcionales.

### Columnas de entrada

Las columnas de entrada son los valores que Fetch Hive pasa al candidato para esa fila.

No tienen nombres fijos para experimentos de prompt. `question`, `context` y `customer_message` son solo ejemplos. No son nombres de columna obligatorios.

Usa nombres de columna que coincidan con el candidato que estás probando.

| Tipo de candidato | Con qué deben coincidir las columnas de entrada del CSV                       | Columnas de ejemplo                                |
| ----------------- | ----------------------------------------------------------------------------- | -------------------------------------------------- |
| Dashboard Prompt  | Las variables del prompt en el editor de prompts                              | `question`, `context`, `input_url`, `input_scrape` |
| Deployed Prompt   | Las variables del prompt capturadas en la versión del despliegue seleccionada | `question`, `context`, `input_url`, `input_scrape` |
| Agent             | El mensaje de usuario del agente                                              | `message`                                          |

Se recomienda al menos una columna de entrada. Sin una columna de entrada, la ejecución no tiene entrada específica de fila para enviar al candidato.

Para experimentos de prompt, las columnas de entrada del CSV deben coincidir con las variables del prompt. Si tu prompt tiene `{{question}}` y `{{context}}`, tu CSV debe incluir `question` y `context`.

Si tu prompt tiene `{{input_url}}` y `{{input_scrape}}`, tu CSV debe incluir `input_url` y `input_scrape` en su lugar.

Para experimentos de agentes, usa una columna de entrada `message` para el mensaje de usuario. Si no hay una columna `message`, Fetch Hive puede usar exactamente una columna de entrada que no sea de metadatos como mensaje. Las filas con varias columnas ambiguas fallan para que puedas corregir el conjunto de datos.

### Columna de salida esperada

Usa `expected_output` cuando tengas una respuesta de referencia para la fila.

| Nombre de columna | Requerido | Almacenado como         | Notas                                                                   |
| ----------------- | --------- | ----------------------- | ----------------------------------------------------------------------- |
| `expected_output` | No        | `expected_output.value` | Usado para revisión manual hoy y para puntuación futura de evaluadores. |

La ejecución de evaluadores aún no está habilitada. Esto significa que `expected_output` actualmente no marca un resultado como correcto o incorrecto automáticamente.

### Columnas de metadatos

Usa columnas `metadata.*` para etiquetas opcionales de fila.

Las columnas de metadatos no activan ningún comportamiento integrado actualmente. No cambian el orden de ejecución, los ajustes del modelo, la configuración regional, el enrutamiento ni la ejecución del candidato. Fetch Hive las almacena con la fila para que puedas identificar casos, filtrar resultados, comparar grupos o conectar los resultados de vuelta a tus propios sistemas.

| Patrón de columna   | Requerido | Almacenado como                                | Ejemplo       |
| ------------------- | --------- | ---------------------------------------------- | ------------- |
| `metadata.case_id`  | No        | `metadata.case_id` se convierte en `case_id`   | `geo-001`     |
| `metadata.topic`    | No        | `metadata.topic` se convierte en `topic`       | `geography`   |
| `metadata.priority` | No        | `metadata.priority` se convierte en `priority` | `high`        |
| `metadata.source`   | No        | `metadata.source` se convierte en `source`     | `support_faq` |
| `metadata.language` | No        | `metadata.language` se convierte en `language` | `en`          |

Estos nombres son solo ejemplos. Puedes usar cualquier nombre `metadata.*` que ayude a tu equipo a revisar los resultados.

No uses prefijos `meta_` para conjuntos de datos nuevos. Usa `metadata.*` para que el mapeo sea claro.

### Formas comunes de CSV

Prompt con `{{question}}`:

```csv theme={null}
question,expected_output,metadata.case_id,metadata.topic
"What is the capital of France?","Paris","geo-001","geography"
```

Prompt con `{{question}}` y `{{context}}`:

```csv theme={null}
question,context,expected_output,metadata.case_id,metadata.topic
"What is the refund window?","Customers can request a refund within 30 days.","30 days","policy-001","support"
```

Prompt con `{{input_url}}` y `{{input_scrape}}`:

```csv theme={null}
input_url,input_scrape,expected_output,metadata.case_id,metadata.topic
"https://example.com/pricing","The pricing page lists Starter, Pro, and Enterprise plans.","Summarize the three available plans.","scrape-001","pricing"
```

## CSV de ejemplo <a href="#example-csv" id="example-csv" />

Puedes descargar el CSV de ejemplo desde el diálogo **Add Dataset**.

```csv theme={null}
question,context,expected_output,metadata.case_id,metadata.topic
"What is the capital of France?","Use only the provided context. France's capital city is Paris.","Paris","geo-001","geography"
"Who wrote Pride and Prejudice?","Jane Austen published Pride and Prejudice in 1813.","Jane Austen","lit-001","literature"
"What is 18 multiplied by 7?","Calculate the product exactly.","126","math-001","math"
"Which planet is known as the Red Planet?","Mars is often called the Red Planet because of iron oxide on its surface.","Mars","space-001","science"
"What HTTP status code means Not Found?","Common HTTP status codes include 200 OK, 404 Not Found, and 500 Internal Server Error.","404","web-001","web"
"Summarize the refund policy in one sentence.","Customers can request a refund within 30 days of purchase if they provide the original receipt.","Customers can request a refund within 30 days with the original receipt.","policy-001","support"
"Return the country code for Japan.","Use ISO 3166-1 alpha-2 country codes. Japan is JP.","JP","locale-001","localization"
"What color do you get by mixing blue and yellow?","In subtractive color mixing, blue and yellow make green.","Green","art-001","art"
"Extract the invoice total.","Invoice INV-1042 lists subtotal $90, tax $9, and total $99.","$99","invoice-001","finance"
"Classify the sentiment as positive, neutral, or negative.","The customer wrote: The setup was quick and the support team was helpful.","positive","sentiment-001","classification"
```

## Versiones del conjunto de datos <a href="#dataset-versions" id="dataset-versions" />

Las versiones del conjunto de datos son inmutables.

Si necesitas cambiar filas más adelante, crea una nueva versión del conjunto de datos en lugar de editar una versión ya usada por una ejecución. Esto mantiene las ejecuciones de experimentos antiguas reproducibles.

## Importar filas <a href="#importing-rows" id="importing-rows" />

Usa **Import** en la página de detalle del conjunto de datos para agregar filas a un conjunto de datos.

Importar filas no edita la versión actual. Fetch Hive crea una nueva versión inmutable que contiene:

* todas las filas de la última versión del conjunto de datos
* cualquier fila nueva del CSV subido

Las filas duplicadas se omiten. La detección de duplicados compara los valores de entrada de la fila. La posición de la fila, la salida esperada y los metadatos no hacen que una misma fila de entrada sea única durante la importación.

Después de la importación, Fetch Hive muestra:

* la cantidad de filas importadas
* la cantidad de duplicados omitidos
* la nueva versión más reciente del conjunto de datos

Ejemplo:

Si `v3` tiene 100 filas e importas un CSV con 20 filas donde 5 son duplicados, Fetch Hive crea `v4` con 115 filas.

Las ejecuciones creadas antes de la importación siguen apuntando a su versión original del conjunto de datos. Las nuevas ejecuciones pueden usar la versión más reciente.

Consulta también: [Construir un experimento](./building-experiments) y [Revisar resultados](./results)
