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

# Modelos de Análisis

> Configuración de criterios de evaluación personalizados

## ¿Qué es un Modelo de Análisis?

Un modelo de análisis define los criterios y estructura de evaluación para las llamadas. Es la "receta" que Neuracall sigue para generar el NeuraScore.

## Componentes de un Modelo

Un modelo se compone de tres elementos principales:

<CardGroup cols={3}>
  <Card title="Categorías" icon="folder-tree" href="/concepts/model-categories">
    Agrupaciones lógicas de criterios por fase de la llamada
  </Card>

  <Card title="Variables" icon="list-check" href="/concepts/model-variables">
    Criterios específicos de evaluación y extracción
  </Card>

  <Card title="Metadata" icon="tags" href="/concepts/model-metadata">
    Campos contextuales para segmentación
  </Card>
</CardGroup>

### Arquitectura de Componentes

El siguiente diagrama muestra cómo se relacionan los componentes de un modelo de análisis:

```mermaid theme={null}
graph TD
    A[Modelo de Análisis] --> B[Categorías]
    A --> C[Variables]
    A --> D[Metadata]
    B --> C
    C --> E[Puntuación / Extracción]
    D --> F[Segmentación / Filtrado]

    style A fill:#4A90D9,stroke:#333,stroke-width:2px,color:#fff
    style B fill:#5B6EE1,stroke:#333,stroke-width:1px,color:#fff
    style C fill:#5B6EE1,stroke:#333,stroke-width:1px,color:#fff
    style D fill:#5B6EE1,stroke:#333,stroke-width:1px,color:#fff
    style E fill:#00D4FF,stroke:#333,stroke-width:1px
    style F fill:#00D4FF,stroke:#333,stroke-width:1px
```

<Info>
  Las **Variables** pertenecen a **Categorías**, y juntas determinan la puntuación.
  La **Metadata** es independiente y se usa para segmentar y filtrar análisis en dashboards.
</Info>

### Información Básica

| Campo       | Descripción                    | Ejemplo                                 |
| ----------- | ------------------------------ | --------------------------------------- |
| name        | Nombre único del modelo        | "Evaluación Ventas B2B"                 |
| description | Propósito del modelo           | "Evaluación de llamadas comerciales..." |
| prompt      | Instrucciones para el análisis | Configuración de IA                     |

### Categorías

Las categorías agrupan criterios relacionados:

```json theme={null}
{
  "categories": [
    {
      "name": "Apertura",
      "description": "Evaluación del inicio de la llamada",
      "order_number": 1
    },
    {
      "name": "Desarrollo",
      "description": "Cuerpo de la interacción",
      "order_number": 2
    },
    {
      "name": "Cierre",
      "description": "Finalización de la llamada",
      "order_number": 3
    }
  ]
}
```

<Info>
  Para más detalles sobre cómo estructurar categorías, consulta la [guía de Categorías de Modelo](/concepts/model-categories).
</Info>

### Variables

Cada categoría contiene variables específicas:

```json theme={null}
{
  "variables": [
    {
      "key": "greeting_quality",
      "readable_name": "Calidad del Saludo",
      "description": "Evalúa si el agente saluda de forma cordial y profesional",
      "type": "INTEGER",
      "weight": 10,
      "category_id": 1,
      "required": true
    }
  ]
}
```

<Info>
  Para más detalles sobre tipos de variables y distribución de pesos, consulta la [guía de Variables de Modelo](/concepts/model-variables).
</Info>

## Tipos de Variables

| Tipo     | Uso                      | Ejemplo                            |
| -------- | ------------------------ | ---------------------------------- |
| INTEGER  | Puntuación numérica      | Score 0-10                         |
| DECIMAL  | Puntuación con decimales | Score 8.5                          |
| BOOLEAN  | Sí/No                    | "¿Mencionó el nombre del cliente?" |
| STRING   | Texto libre              | Comentario u observación           |
| DATE     | Fecha                    | Fecha mencionada                   |
| TIME     | Hora                     | Hora de cita                       |
| DATETIME | Fecha y hora             | Timestamp completo                 |

## Diseño de un Modelo Efectivo

### 1. Define el Objetivo

<Tip>
  Pregúntate: ¿Qué quiero medir? ¿Qué comportamientos son críticos?
</Tip>

### 2. Estructura las Categorías

Agrupa lógicamente los criterios:

| Tipo de Llamada     | Categorías Sugeridas                                       |
| ------------------- | ---------------------------------------------------------- |
| Servicio al cliente | Apertura, Resolución, Cierre                               |
| Ventas              | Descubrimiento, Presentación, Manejo de objeciones, Cierre |
| Soporte técnico     | Diagnóstico, Solución, Verificación                        |
| Cobranza            | Identificación, Negociación, Acuerdos                      |

### 3. Define Variables Específicas

**Buenos ejemplos:**

* "Mencionó el nombre del cliente" (observable, específico)
* "Ofreció alternativas de solución" (medible)
* "Confirmó los próximos pasos" (verificable)

**Malos ejemplos:**

* "Fue amable" (subjetivo, vago)
* "Hizo bien su trabajo" (no específico)

### 4. Asigna Pesos

Distribuye los puntos según importancia:

<Tree>
  <Tree.Folder name="Total: 100 puntos" defaultOpen>
    <Tree.File name="Apertura: 20 puntos (20%)" />

    <Tree.File name="Desarrollo: 50 puntos (50%)" />

    <Tree.File name="Cierre: 30 puntos (30%)" />
  </Tree.Folder>
</Tree>

## Metadatos Adicionales

Los modelos pueden incluir campos de metadatos para capturar información contextual:

```json theme={null}
{
  "template_metadata": [
    {
      "key": "campaign",
      "readable_name": "Campaña",
      "type": "STRING",
      "grouping_field": true
    },
    {
      "key": "department",
      "readable_name": "Departamento",
      "type": "STRING",
      "grouping_field": true
    }
  ]
}
```

<Info>
  Para más detalles sobre campos de agrupación y su uso en dashboards, consulta la [guía de Metadata de Modelo](/concepts/model-metadata).
</Info>

## Gestión vía API

### Crear Modelo

```bash theme={null}
POST /v1/models
{
  "name": "Mi Modelo",
  "description": "Descripción...",
  "prompt": "...",
  "template_variables": [...]
}
```

### Actualizar Modelo

```bash theme={null}
PUT /v1/models/{id}
{
  "name": "Mi Modelo Actualizado",
  ...
}
```

<Note>
  Los cambios en un modelo no afectan los análisis ya completados.
</Note>

## Mejores Prácticas

### Iteración

1. Comienza con un modelo simple
2. Analiza una muestra de llamadas
3. Ajusta según resultados
4. Repite

### Validación

* Compara scores automáticos vs evaluaciones manuales
* Ajusta si hay discrepancias significativas
* Documenta los criterios para consistencia

### Mantenimiento

* Revisa periódicamente la relevancia de los criterios
* Elimina variables que siempre dan el mismo resultado
* Agrega criterios según evolucionen los estándares

## Recursos Relacionados

<CardGroup cols={2}>
  <Card title="Categorías de Modelo" icon="folder-tree" href="/concepts/model-categories">
    Cómo estructurar las fases de evaluación
  </Card>

  <Card title="Variables de Modelo" icon="list-check" href="/concepts/model-variables">
    Criterios de puntuación y extracción
  </Card>

  <Card title="Metadata de Modelo" icon="tags" href="/concepts/model-metadata">
    Campos contextuales y agrupación
  </Card>

  <Card title="Entender NeuraScore" icon="chart-line" href="/concepts/neurascore">
    Cómo se calculan las puntuaciones
  </Card>
</CardGroup>

<CardGroup cols={2}>
  <Card title="API de Modelos" icon="code" href="/api-reference/models/create">
    Crear modelos vía API
  </Card>

  <Card title="API de Categorías" icon="folder" href="/api-reference/models/categories/list">
    Gestionar categorías vía API
  </Card>
</CardGroup>
