shadcn/studio
Datasets

Datasets de Evaluación

Los datasets contienen pares de entrada/salida esperada para evaluar la calidad de tu modelo de manera sistemática.

Estructura de un Dataset

Dataset

Contiene nombre, descripción y una lista de items

Item: input + expected_output + metadata

Endpoints de Datasets

GET
/api/v1/projects/{id}/opik/datasets
Lista todos los datasets
POST
/api/v1/projects/{id}/opik/datasets
Crea un nuevo dataset con items opcionales
{
  "name": "QA Evaluation",
  "description": "Dataset para evaluar Q&A",
  "items": [
    {
      "input": { "question": "¿Capital de Francia?" },
      "expected_output": { "answer": "París" }
    }
  ]
}
DELETE
/api/v1/projects/{id}/opik/datasets?name={name}
Elimina un dataset

Endpoints de Items

GET
/api/v1/projects/{id}/opik/datasets/{name}/items
Lista items de un dataset con paginación
POST
/api/v1/projects/{id}/opik/datasets/{name}/items
Agrega items (individual o batch)
// Individual
{
  "input": { "question": "¿2+2?" },
  "expected_output": { "answer": "4" }
}

// Batch
[
  { "input": {...}, "expected_output": {...} },
  { "input": {...}, "expected_output": {...} }
]
DELETE
/api/v1/projects/{id}/opik/datasets/{name}/items?item_id={id}
Elimina un item específico

Ejemplo Completo

// 1. Crear dataset
const dataset = await fetch('/api/v1/projects/my-project/opik/datasets', {
  method: 'POST',
  body: JSON.stringify({
    name: 'Customer Support Eval',
    description: 'Evaluación de soporte al cliente'
  })
})

// 2. Agregar items en batch
await fetch('/api/v1/projects/my-project/opik/datasets/Customer Support Eval/items', {
  method: 'POST',
  body: JSON.stringify([
    {
      input: { question: '¿Horario de atención?' },
      expected_output: { answer: 'Lunes a viernes, 9am-6pm' }
    },
    {
      input: { question: '¿Cómo devolver un producto?' },
      expected_output: { answer: 'Tienes 30 días para devolver...' }
    }
  ])
})