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

# Aplicaciones de referencia

> Ejecuta dos aplicaciones completas en Python creadas con la API de MKA1: clasificación de tickets y analista de CSV.

Dos aplicaciones de referencia ejecutables muestran lo que puedes crear con la API de MKA1. Cada una es una pequeña aplicación web en Python con una interfaz de navegador, datos de ejemplo ficticios y sus propias pruebas. El código fuente está en el repositorio público [mka1-reference-apps](https://github.com/MeetKai/mka1-reference-apps), bajo la licencia Apache 2.0.

| Aplicación | Qué hace | Funciones de MKA1 |
| - | - | - |
| [Clasificación de tickets](#clasificación-de-tickets) | Convierte un ticket de soporte al cliente en un equipo, una prioridad, una justificación y una siguiente acción sugeridos | Respuestas con salida estructurada |
| [Analista de CSV](#analista-de-csv) | Analiza un CSV subido en un sandbox y devuelve un informe HTML | Respuestas con la herramienta `shell`, y sesiones y archivos de sandbox |

Ambas aplicaciones usan el SDK de Python de MKA1. Cada directorio de aplicación es independiente, así que puedes copiarlo a tu propio repositorio.

## Antes de empezar

Necesitas:

* Python 3.12 o posterior y [uv](https://docs.astral.sh/uv/getting-started/installation/).
* Una [clave de API](https://docs.mka1.com/es/docs/authentication.md) de MKA1 y un [modelo](https://docs.mka1.com/docs/models.md) habilitado en tu organización.
* Para el analista de CSV, capacidad de sandbox en tu clúster.

Clona el repositorio:

```bash theme={null}
git clone https://github.com/MeetKai/mka1-reference-apps.git
cd mka1-reference-apps
```

Las aplicaciones llaman a la API real, así que sus solicitudes usan los modelos de tu organización y, en el caso del analista de CSV, sus recursos de sandbox. La clave de API se queda en el servidor de Python; el navegador nunca la recibe. Cada solicitud usa una nueva identidad de usuario final de demostración en `X-On-Behalf-Of`, y cada solicitud de Respuestas define `store` como `false`.

## Clasificación de tickets

Código fuente: [`apps/ticket-triage`](https://github.com/MeetKai/mka1-reference-apps/tree/main/apps/ticket-triage)

Pega un ticket de soporte de telecomunicaciones o elige un ejemplo ficticio. La aplicación sugiere un equipo (facturación, soporte técnico o servicios de cuenta), una prioridad de P1 a P3, un resumen, una justificación y una siguiente acción para que la revise una persona. No envía tickets, no cambia cuentas ni envía mensajes.

La aplicación muestra:

* Una solicitud de Respuestas con instrucciones de enrutamiento y un esquema JSON estricto en `text.format`, para que el modelo devuelva una decisión estructurada.
* La validación de esa decisión antes de mostrarla. La aplicación rechaza respuestas incompletas, rechazos del modelo, JSON no válido, valores de equipo o prioridad desconocidos y campos adicionales.

Necesita un modelo que admita salida estructurada. La configuración de ejemplo usa `openai:gpt-4.1-mini`; la disponibilidad depende de tu organización.

Para ejecutarla, instala las dependencias y crea el archivo de configuración:

```bash theme={null}
cd apps/ticket-triage
uv sync --locked
cp .env.example .env
```

Edita `.env`. Define `MKA1_API_KEY` con tu clave de API, `MKA1_SERVER_URL` con la URL del gateway de tu clúster y `MKA1_MODEL` con un modelo habilitado que admita salida estructurada. Luego inicia la aplicación:

```bash theme={null}
uv run uvicorn app:app --host 127.0.0.1 --port 8001
```

Abre `http://127.0.0.1:8001`, elige **Business connectivity outage** y envía el ticket. Espera `technical_support` y `P1`. La redacción puede variar entre ejecuciones del modelo.

## Analista de CSV

Código fuente: [`apps/csv-analyst`](https://github.com/MeetKai/mka1-reference-apps/tree/main/apps/csv-analyst)

Sube un CSV, haz una pregunta y descarga un informe HTML con resultados calculados, tablas, métodos y limitaciones. Cada análisis se ejecuta en su propio sandbox.

La aplicación muestra:

* El ciclo de vida de una sesión de sandbox: crea una sesión con la función de Python y una duración de diez minutos, sube el CSV, descarga el informe y termina la sesión cuando acaba el análisis, incluso después de un error.
* Una solicitud de Respuestas con una herramienta `shell` conectada a esa sesión. El modelo usa Python en el sandbox para analizar el archivo y escribir el informe.
* La validación y el saneamiento del informe generado antes de que lo reciba el navegador.

Necesita un modelo que pueda usar herramientas de shell y capacidad de sandbox en tu clúster. La configuración de ejemplo usa `openai:gpt-4.1`; la disponibilidad depende de tu organización.

Para ejecutarla, instala las dependencias y crea el archivo de configuración:

```bash theme={null}
cd apps/csv-analyst
uv sync --locked
cp .env.example .env
```

Edita `.env` con tu clave de API, la URL del gateway y el modelo, usando las mismas variables que en la clasificación de tickets. Luego inicia la aplicación:

```bash theme={null}
uv run uvicorn app:app --host 127.0.0.1 --port 8002
```

Abre `http://127.0.0.1:8002`, haz clic en **Use example data**, deja la pregunta predeterminada y haz clic en **Generate report**. Descarga el informe cuando termine. En los datos de ejemplo, los ingresos mensuales totales son $61,000 en julio, $64,950 en agosto y \$69,000 en septiembre; úsalos para comprobar el informe.

La aplicación acepta un CSV de hasta 1 MB, 20,000 filas de datos y 50 columnas, y ejecuta un análisis a la vez por proceso de servidor. Revisa cada informe antes de usarlo: una respuesta completada no demuestra que todos los cálculos sean correctos.

## Antes de alojar una aplicación para otros usuarios

Ambas aplicaciones están pensadas para ejecutarse en local: se vinculan a localhost y rechazan envíos de navegador de otros orígenes. Antes de alojar una para otros usuarios:

* Agrega autenticación a la aplicación y asigna los usuarios autenticados a identidades de usuario final autorizadas.
* Aplica cuotas por usuario.
* Configura tu proxy inverso y los hosts permitidos.
* Mantén las claves de API en el servidor.
* En el analista de CSV, aplica las restricciones de red y de sistema de archivos que necesites mediante tu infraestructura de sandbox. Las instrucciones del modelo no son un límite de aislamiento.

## Guías relacionadas

* [Generar una respuesta](https://docs.mka1.com/es/docs/generate-a-response.md)
* [Ejecución de código](https://docs.mka1.com/docs/code-execution.md)
* [Sandbox](https://docs.mka1.com/docs/sandbox.md)


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