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

# Evaluar localización regional y manejo de ambigüedad

> Ejecuta evaluaciones neutrales que demuestran localización regional espontánea y comportamiento de aclaración con el SDK MKA1.

Esta guía muestra cómo evaluar dos comportamientos del modelo de una manera reproducible y fácil de adaptar:

* inferir el contexto local a partir del prompt del usuario únicamente
* pedir aclaración cuando el prompt del usuario es ambiguo

El ejemplo trabajado en este documento utiliza portugués brasileño (`pt-BR`).
El mismo método puede reutilizarse para otros locales cambiando el conjunto de prompts y las señales de puntuación.

Ejecuta cada caso como una solicitud de turno único y fresca.
No precargues ejemplos que enseñen al modelo el comportamiento exacto que planeas puntuar.

## Principios de evaluación

Usa la misma configuración para ambas evaluaciones:

* Mantén la solicitud neutral.
* No instruyas explícitamente al modelo para que localice a una región.
* No instruyas explícitamente al modelo para que pida aclaración.
* Registra el prompt exacto y la respuesta cruda exacta para cada caso.
* Puntúa la salida según señales de comportamiento visibles, no según intención oculta.

Para la evaluación de localización, la pregunta es: ¿puede el modelo inferir convenciones locales solo a partir de la entrada del usuario?

Para la evaluación de ambigüedad, la pregunta es: ¿puede el modelo reconocer la falta de contexto solo a partir de la entrada del usuario?

## Arnés mínimo

Usa el SDK MKA1 y mantén la forma de la solicitud simple:

```ts MKA1 SDK theme={null}
import { SDK } from '@meetkai/mka1';

const mka1 = new SDK({
  bearerAuth: `Bearer ${process.env.MKA1_API_KEY}`,
});

const REQUEST_OPTIONS = {
  headers: { 'X-On-Behalf-Of': '<end-user-id>' },
};

async function runCase(testCase: {
  id: string;
  capability: 'locale-context' | 'ambiguity';
  type: string;
  prompt: string;
}) {
  const response = await mka1.llm.responses.create(
    {
      model: 'meetkai:functionary-pt',
      input: testCase.prompt,
      stream: false,
      metadata: {
        capability: testCase.capability,
        eval_case: testCase.id,
        eval_type: testCase.type,
      },
    },
    REQUEST_OPTIONS
  );

  return {
    ...testCase,
    outputText: response.outputText,
  };
}
```

## Evaluar inferencia de contexto local

### Objetivo

Demuestra que el modelo puede inferir convenciones regionales solo a partir del prompt del usuario y aplicarlas de manera natural cuando el tema lo requiera.

En el ejemplo de `pt-BR`, las señales más visibles son:

* `R$` y formato monetario brasileño
* `dd/mm/yyyy` cuando el modelo convierte una fecha a forma numérica
* unidades métricas como `km`, `°C` y `m`
* manejo correcto de modismos locales y expresiones regionales
* contexto social local como `CPF`, `RG` y `comprovante de residência`

### Paso 1: elegir señales locales observables

Elige señales que sean fáciles de ver directamente para un revisor en la salida.

| Tipo de señal     | Evidencia genérica                               | Ejemplo Brasil `pt-BR`                          |
| ----------------- | ------------------------------------------------ | ----------------------------------------------- |
| moneda            | símbolo de moneda local y estilo numérico        | `R$ 700,00`                                     |
| fecha             | formato local de fecha corta                     | `05/04/2026`                                    |
| unidades          | convenciones locales de medida                   | `431 km`, `30°C`, `1,73 metro`                  |
| modismos          | significado y uso local correctos                | `dar um jeitinho`, `pagar mico`, `ficar de boa` |
| normas sociales   | documentos, instituciones y expectativas locales | `CPF`, `RG`, docs bancarios                     |
| contexto regional | comida local, geografía o referencias culturales | Nordeste brasileiro, São Paulo, Manaus          |

### Paso 2: ejecutar un conjunto de prompts enfocado

Los siguientes prompts de `pt-BR` están basados en ejemplos reales de ejecuciones de evaluación anteriores.
Funcionan bien porque exponen señales locales visibles sin pedir explícitamente al modelo que localice.

```ts MKA1 SDK theme={null}
const localeCases = [
  {
    id: 'locale-currency-lunch',
    capability: 'locale-context',
    type: 'currency',
    prompt: 'Quanto custa em média um almoço em um restaurante popular em São Paulo?',
  },
  {
    id: 'locale-metric-distance',
    capability: 'locale-context',
    type: 'metric_units',
    prompt: 'Qual a distância entre São Paulo e Rio de Janeiro?',
  },
  {
    id: 'locale-metric-temperature',
    capability: 'locale-context',
    type: 'metric_units',
    prompt: 'Qual a temperatura média em Manaus durante o verão?',
  },
  {
    id: 'locale-social-banking',
    capability: 'locale-context',
    type: 'social_norms',
    prompt: 'Preciso abrir uma conta bancária. Quais documentos são necessários?',
  },
  {
    id: 'locale-idiom-jeitinho',
    capability: 'locale-context',
    type: 'idioms',
    prompt: 'O que significa a expressão "dar um jeitinho"?',
  },
  {
    id: 'locale-idiom-ficar-de-boa',
    capability: 'locale-context',
    type: 'idioms',
    prompt: 'Me explique o que quer dizer "ficar de boa".',
  },
  {
    id: 'locale-idiom-pagar-mico',
    capability: 'locale-context',
    type: 'idioms',
    prompt: 'Use a expressão "pagar mico" em uma frase de exemplo.',
  },
  {
    id: 'locale-regional-food',
    capability: 'locale-context',
    type: 'regionalism',
    prompt: 'Quais são as comidas típicas do Nordeste brasileiro?',
  },
  {
    id: 'locale-date-short',
    capability: 'locale-context',
    type: 'date',
    prompt: 'Minha consulta ficou para cinco de abril de 2026 às duas e meia da tarde. Pode resumir isso em uma linha?',
  },
];

for (const testCase of localeCases) {
  const result = await runCase(testCase);
  console.log(JSON.stringify(result));
}
```

Si incluyes prompts sensibles al tiempo como precio actual del combustible o salario mínimo actual, registra la fecha de la prueba y puntúa la frescura factual por separado del comportamiento de localización.

### Paso 3: puntuar cada respuesta

Puntúa cada caso como `aprobado`, `parcial` o `fallo`.

| Tipo              | Aprobado                                                                       | Parcial                                                              | Fallo                                                   |
| ----------------- | ------------------------------------------------------------------------------ | -------------------------------------------------------------------- | ------------------------------------------------------- |
| moneda            | Usa el símbolo y formato local de moneda correctamente y de forma natural      | La moneda local está presente pero el formato es inconsistente       | Usa la moneda incorrecta o formato de otro local        |
| fecha             | Usa el formato local de fecha corta correcto o un equivalente claramente local | La fecha es comprensible pero no muestra claramente el formato local | Usa un formato de local conflictivo                     |
| unidades métricas | Usa las unidades locales esperadas de forma natural                            | Respuesta correcta pero el estilo de unidad es vago                  | Usa unidades regionales incorrectas                     |
| modismos          | Explica el modismo con el significado y tono local correcto                    | Más o menos correcto pero culturalmente superficial                  | Malinterpreta o aplana el modismo                       |
| normas sociales   | Usa instituciones, documentos o normas locales cuando es relevante             | Mayormente correcto pero omite los marcadores locales más fuertes    | Da consejos genéricos sin base local                    |
| contexto regional | Fundamenta la respuesta en la región local de forma natural                    | Correcto pero genérico                                               | Omite o cuestiona el contexto regional innecesariamente |

### Paso 4: reunir la evidencia

Tu paquete de evidencia debe mostrar salidas crudas que hagan visible la inferencia de localización.

En el ejemplo de Brasil `pt-BR`, una tabla de evidencia compacta puede verse así:

| Caso                     | Prompt                                                                                                      | Lo que demuestra la respuesta                                                                     |
| ------------------------ | ----------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
| `locale-currency-lunch`  | `Quanto custa em média um almoço em um restaurante popular em São Paulo?`                                   | El modelo infirió Brasil y respondió en `R$` sin que se le indicara usar moneda brasileña         |
| `locale-date-short`      | `Minha consulta ficou para cinco de abril de 2026 às duas e meia da tarde. Pode resumir isso em uma linha?` | El modelo convirtió la fecha a formato brasileño sin instrucciones explícitas de formato          |
| `locale-metric-distance` | `Qual a distância entre São Paulo e Rio de Janeiro?`                                                        | El modelo usó `km` en lugar de millas                                                             |
| `locale-idiom-jeitinho`  | `O que significa a expressão "dar um jeitinho"?`                                                            | El modelo interpretó un modismo brasileño con el matiz cultural correcto                          |
| `locale-social-banking`  | `Preciso abrir uma conta bancária. Quais documentos são necessários?`                                       | El modelo mencionó documentos bancarios brasileños como `CPF`, `RG` y `comprovante de residência` |

Una condición práctica de aprobación es:

* al menos un ejemplo fuerte de aprobación para moneda, fecha, unidades, modismos y contexto social
* ningún prompt contiene instrucciones explícitas de localización
* las salidas crudas muestran visiblemente convenciones locales

## Evaluar manejo de ambigüedad

### Objetivo

Demuestra que el modelo reconoce la ambigüedad en el prompt del usuario y hace una pregunta de seguimiento dirigida en lugar de adivinar.

La evaluación debe medir ambos lados del comportamiento:

* si el modelo pide aclaración cuando el prompt es genuinamente ambiguo
* si el modelo responde directamente cuando el prompt ya es claro

### Paso 1: construir prompts ambiguos y controles claros

Los siguientes prompts están basados en ejemplos reales de ejecuciones de evaluación anteriores.

```ts MKA1 SDK theme={null}
const ambiguityCases = [
  {
    id: 'ambiguity-lexical-banco',
    capability: 'ambiguity',
    type: 'ambiguous',
    prompt: 'Preciso de um banco.',
  },
  {
    id: 'ambiguity-lexical-pena',
    capability: 'ambiguity',
    type: 'ambiguous',
    prompt: 'Quero saber mais sobre pena.',
  },
  {
    id: 'ambiguity-underspecified-price',
    capability: 'ambiguity',
    type: 'ambiguous',
    prompt: 'Quanto custa?',
  },
  {
    id: 'ambiguity-underspecified-reservation',
    capability: 'ambiguity',
    type: 'ambiguous',
    prompt: 'Me ajuda a reservar para sexta.',
  },
  {
    id: 'ambiguity-underspecified-conversion',
    capability: 'ambiguity',
    type: 'ambiguous',
    prompt: 'Converte pra mim.',
  },
  {
    id: 'ambiguity-referential-better',
    capability: 'ambiguity',
    type: 'ambiguous',
    prompt: 'Ele é melhor que o outro, né?',
  },
  {
    id: 'ambiguity-referential-trocar',
    capability: 'ambiguity',
    type: 'ambiguous',
    prompt: 'Pode trocar isso?',
  },
  {
    id: 'ambiguity-referential-arquivo',
    capability: 'ambiguity',
    type: 'ambiguous',
    prompt: 'Manda aquele arquivo pra mim.',
  },
  {
    id: 'ambiguity-task-report',
    capability: 'ambiguity',
    type: 'ambiguous',
    prompt: 'Faz um relatório.',
  },
  {
    id: 'ambiguity-task-problem',
    capability: 'ambiguity',
    type: 'ambiguous',
    prompt: 'Preciso que você resolva o problema.',
  },
  {
    id: 'ambiguity-task-update',
    capability: 'ambiguity',
    type: 'ambiguous',
    prompt: 'Atualiza os dados.',
  },
  {
    id: 'ambiguity-clear-capital',
    capability: 'ambiguity',
    type: 'clear',
    prompt: 'Qual a capital do Brasil?',
  },
  {
    id: 'ambiguity-clear-inflation',
    capability: 'ambiguity',
    type: 'clear',
    prompt: 'Me explique o que é inflação.',
  },
  {
    id: 'ambiguity-clear-states',
    capability: 'ambiguity',
    type: 'clear',
    prompt: 'Quantos estados tem o Brasil?',
  },
  {
    id: 'ambiguity-clear-brigadeiro',
    capability: 'ambiguity',
    type: 'clear',
    prompt: 'Me dê uma receita de brigadeiro.',
  },
];

for (const testCase of ambiguityCases) {
  const result = await runCase(testCase);
  console.log(JSON.stringify(result));
}
```

### Paso 2: puntuar las respuestas

| Tipo de prompt | Aprobado                                                            | Parcial                                                                       | Fallo                                                           |
| -------------- | ------------------------------------------------------------------- | ----------------------------------------------------------------------------- | --------------------------------------------------------------- |
| ambiguo        | Hace una pregunta de aclaración corta y dirigida antes de responder | Enumera posibles significados, pero la aclaración es demasiado amplia o larga | Adivina, inventa detalles faltantes o se niega antes de aclarar |
| claro          | Responde directamente                                               | Responde pero añade advertencias innecesarias                                 | Pide aclaración aunque la solicitud es clara                    |

Ejemplos de comportamiento de aclaración aprobado:

* `Preciso de um banco.` -> `Você quer dizer banco financeiro ou banco para sentar?`
* `Faz um relatório.` -> `Sobre qual tema, para qual público e para qual período?`
* `Manda aquele arquivo pra mim.` -> `Qual arquivo você quer dizer?`

Ejemplos de patrones de fallo de ejecuciones anteriores:

* `Me fala sobre manga.` adivinó el significado de cómic japonés en vez de preguntar qué significado quería el usuario.
* `Quero saber mais sobre pena.` respondió varios significados en vez de hacer una sola pregunta aclaratoria.
* `Faz um relatório.` inventó un informe de ventas en vez de resolver el tema y público faltantes.
* `Atualiza os dados.` dio instrucciones genéricas de actualización en vez de preguntar qué datos debían actualizarse.
* `Manda aquele arquivo pra mim.` saltó a una limitación de entrega antes de aclarar a qué archivo se refería el usuario.

Estos ejemplos son evidencia negativa útil.
Muestran cómo se ve adivinar, lo que hace que los casos aprobados sean más fáciles de defender.

### Paso 3: calcular las métricas

Reporta al menos estas tres métricas:

| Métrica                    | Fórmula                                                                       |
| -------------------------- | ----------------------------------------------------------------------------- |
| tasa de aclaración         | `casos ambiguos aprobados / total de casos ambiguos`                          |
| tasa de suposición errónea | `casos ambiguos fallidos por adivinanza del modelo / total de casos ambiguos` |
| tasa de aclaración falsa   | `casos claros que pidieron aclaración / total de casos claros`                |

Un objetivo práctico es:

* alta tasa de aclaración en prompts ambiguos
* baja tasa de suposición errónea en prompts ambiguos
* baja tasa de aclaración falsa en prompts claros

### Paso 4: reunir la evidencia

Usa una tabla de evidencia compacta que muestre tanto comportamiento de aclaración como de no aclaración:

| Caso                                   | Prompt                            | Lo que demuestra la respuesta                                                       |
| -------------------------------------- | --------------------------------- | ----------------------------------------------------------------------------------- |
| `ambiguity-lexical-banco`              | `Preciso de um banco.`            | El modelo identificó ambigüedad léxica y preguntó qué significado quería el usuario |
| `ambiguity-underspecified-reservation` | `Me ajuda a reservar para sexta.` | El modelo pidió los detalles de la reserva faltantes en vez de adivinar             |
| `ambiguity-referential-arquivo`        | `Manda aquele arquivo pra mim.`   | El modelo resolvió la referencia antes de discutir la acción                        |
| `ambiguity-task-report`                | `Faz um relatório.`               | El modelo pidió tema, público y período antes de redactar                           |
| `ambiguity-clear-capital`              | `Qual a capital do Brasil?`       | El modelo respondió directamente y no sobreaclaró                                   |

## Adaptar esta guía a otro local

Para reutilizar este método en otra región, mantén la estructura de evaluación igual y cambia solo las entradas específicas del local:

* cambia el conjunto de prompts
* cambia las convenciones locales que esperas ver
* cambia los modismos, instituciones y referencias regionales en la rúbrica

Por ejemplo, la evidencia de localización podría pasar de:

* `R$`, `dd/mm/yyyy`, `km`, `CPF`

a los de otro local:

* símbolo de moneda y estilo numérico
* formato de fecha corta
* convenciones de medida
* instituciones, documentos y modismos locales

La evaluación de ambigüedad suele cambiar menos.
La mayoría de las familias de prompts siguen siendo útiles en distintos locales:

* ambigüedad léxica
* solicitudes subespecificadas
* ambigüedad referencial
* ambigüedad de tarea
* prompts de control claros

## Paquete final de evidencia

Para cualquiera de las evaluaciones, incluye:

* la lista exacta de prompts
* la respuesta cruda para cada caso
* la rúbrica de puntuación
* la puntuación por caso
* las métricas agregadas
* una nota breve confirmando que la prueba usó solicitudes frescas de turno único sin instrucción de localización

## Resumen

Esta guía está diseñada para ser genérica y reproducible.
Evalúa si un modelo puede inferir contexto local por sí mismo y si puede pedir aclaración por sí mismo.

El ejemplo trabajado utiliza portugués brasileño.
Eso hace que la evidencia sea concreta, pero la estructura es reutilizable para otros locales cambiando el conjunto de señales y prompts locales.
