> ## 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.

# Latencia de salida en streaming

> Referencia de latencia observada por el cliente para el primer token de texto transmitido en la API de Respuestas MKA1.

Este benchmark mide qué tan rápido comienza el streaming en la API pública de Respuestas MKA1.
Utiliza `POST /api/v1/llm/responses` en `https://apigw.mka1.com/api/v1/llm/responses` con `stream: true` y el modelo `meetkai:functionary-pt`.

El objetivo es simple:
medir el tiempo desde que se envía la solicitud hasta que el primer token de texto transmitido llega al cliente.

## Resumen de resultados

Ejecución del benchmark: `2026-03-31`

| Métrica                      |                        Valor |
| ---------------------------- | ---------------------------: |
| Modelo                       |     `meetkai:functionary-pt` |
| Endpoint                     | `POST /api/v1/llm/responses` |
| Solicitudes de calentamiento |                          `5` |
| Solicitudes medidas          |                        `100` |
| Solicitudes fallidas         |                          `0` |
| TTFT p50                     |                  `311.13 ms` |
| TTFT p95                     |                  `608.49 ms` |
| TTFT p99                     |                  `681.29 ms` |
| TTFT máx                     |                  `695.86 ms` |
| Primer evento SSE p95        |                   `70.69 ms` |
| Encabezados de respuesta p95 |                   `70.42 ms` |

En esta ejecución, la API pública de Respuestas se mantuvo por debajo de `1 segundo` en el `percentil 95` para el tiempo hasta el primer token de texto transmitido.

## Qué significa TTFT en este benchmark

Para este benchmark, **TTFT** significa:

* el cliente inicia un temporizador inmediatamente antes de enviar la solicitud HTTP
* el cliente abre el stream SSE
* el temporizador se detiene cuando se recibe el primer delta de texto transmitido no vacío

Este modelo normalmente emite texto de razonamiento antes del texto de respuesta final.
Por eso, el benchmark cuenta el primer delta de texto no vacío de cualquiera de:

* `response.reasoning_text.delta`
* `response.output_text.delta`

Esa definición mide el inicio del texto transmitido continuo tal como lo ve el cliente.

El benchmark también reporta dos hitos anteriores:

* **encabezados de respuesta**: cuando se retorna la respuesta HTTP inicial
* **primer evento SSE**: cuando llega el primer frame SSE, sin importar el contenido

## Configuración del benchmark

La ejecución en vivo utilizó el siguiente perfil de solicitud:

* URL base: `https://apigw.mka1.com`
* endpoint: `POST /api/v1/llm/responses`
* autenticación: `Authorization: Bearer <mka1-api-key>`
* encabezado de usuario final: `X-On-Behalf-Of: ttft-benchmark-user`
* modelo: `meetkai:functionary-pt`
* prompt: `Reply with exactly the text OK and nothing else.`
* `stream: true`
* `temperature: 0`
* `max_output_tokens: 64`
* calentamientos: `5`
* solicitudes medidas: `100`
* concurrencia: `1`
* tiempo de espera de la solicitud: `45s`

Estos números son mediciones **observadas por el cliente** contra el endpoint público de la API.
Por lo tanto, incluyen el tiempo de ida y vuelta de red entre el cliente del benchmark y `apigw.mka1.com`, no solo el tiempo de procesamiento del servidor.

## Forma de la solicitud

```bash theme={null}
curl https://apigw.mka1.com/api/v1/llm/responses \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'Accept: text/event-stream' \
  --header 'Authorization: Bearer <mka1-api-key>' \
  --header 'X-On-Behalf-Of: <end-user-id>' \
  --data '{
    "model": "meetkai:functionary-pt",
    "input": "Reply with exactly the text OK and nothing else.",
    "stream": true,
    "temperature": 0,
    "max_output_tokens": 64
  }'
```

El benchmark en sí utiliza un parser SSE en lugar del tiempo de salida de `curl` para poder detectar el momento exacto de llegada del primer token de texto transmitido.

## Interpretación

Esta ejecución muestra tres capas útiles de latencia:

* la conexión y el gateway devolvieron los encabezados rápidamente, con p95 en `70.42 ms`
* el primer frame SSE llegó en p95 `70.69 ms`
* el primer token de texto transmitido llegó en p95 `608.49 ms`

Eso significa que el stream comienza casi inmediatamente a nivel de transporte, y el texto transmitido significativo llega al cliente bien por debajo de `1 segundo` en p95 para este modelo y perfil de solicitud.

## Salida completa de la prueba

```
{
  "benchmark": "responses_stream_ttft",
  "generatedAt": "2026-03-31T23:34:32.387Z",
  "config": {
    "baseUrl": "https://apigw.mka1.com/api/v1/llm",
    "model": "meetkai:functionary-pt",
    "apiKey": "OMITTED",
    "onBehalfOf": "ttft-benchmark-user",
    "prompt": "Reply with exactly the text OK and nothing else.",
    "samples": 100,
    "warmupSamples": 5,
    "concurrency": 1,
    "timeoutMs": 45000,
    "thresholdMs": 1000,
    "maxOutputTokens": 64,
    "outputJson": "stream-ttft-report.json"
  },
  "verdict": {
    "passed": true,
    "thresholdMs": 1000,
    "measuredP95Ms": 608.4879000000001
  },
  "samples": {
    "warmup": 5,
    "measured": 100,
    "success": 100,
    "failed": 0
  },
  "stats": {
    "headersMs": {
      "count": 100,
      "min": 63.00436899999477,
      "avg": 67.39161819000238,
      "p50": 67.0498840000073,
      "p95": 70.41907800000627,
      "p99": 72.71200100000715,
      "max": 107.99611500000174
    },
    "firstEventMs": {
      "count": 100,
      "min": 63.306459000014,
      "avg": 67.66752371000103,
      "p50": 67.35425400000531,
      "p95": 70.69219799997518,
      "p99": 73.02295199999935,
      "max": 108.39853500000027
    },
    "firstTokenMs": {
      "count": 100,
      "min": 293.89441600002465,
      "avg": 389.9065817800009,
      "p50": 311.1333589999995,
      "p95": 608.4879000000001,
      "p99": 681.2876299999916,
      "max": 695.8577790000054
    },
    "totalDurationMs": {
      "count": 100,
      "min": 3047.5074070000264,
      "avg": 3146.770197100002,
      "p50": 3097.0465299999996,
      "p95": 3374.5328960000006,
      "p99": 3435.1036190000013,
      "max": 3453.2585250000047
    }
  },
  "measurements": [
    {
      "sampleIndex": 1,
      "ok": true,
      "httpStatus": 200,
      "responseId": "resp_c38d48bebeb74c54b740e627a541cad6",
      "headersMs": 66.99634399999923,
      "firstEventMs": 67.28057400000034,
      "firstTokenMs": 423.95566899999903,
      "totalDurationMs": 3195.7519509999984,
      "eventCount": 137,
      "textDeltaCount": 62,
      "outputTextDeltaCount": 0,
      "reasoningTextDeltaCount": 62,
      "text": "Okay o usuário pediu para responder exatamente com \"OK\" e nada mais. Vou verificar se entendi corretamente. Ele quer que eu ignore qualquer outra coisa e só envie \"OK\". Não há necessidade de usar nenhuma ferramenta aqui, já que a resposta é"
    },
    ...
  ]
}
```
