AI-901

Deep Dive

Practicar ahora
D4 · NLP y Procesamiento de Lenguaje

IA Conversacional — CLU, Question Answering y Bot Service

La IA conversacional permite a las máquinas mantener diálogos útiles con humanos. Azure ofrece tres piezas complementarias: CLU entiende intenciones, Question Answering responde preguntas de base de conocimiento, y Bot Service conecta ambos con los usuarios.

¿Qué es IA Conversacional?

La IA conversacional permite que los sistemas comprendan lenguaje natural y respondan de forma coherente en un diálogo de múltiples turnos. No es solo responder preguntas — es mantener contexto, entender intenciones y ejecutar acciones basadas en lo que el usuario dice.

🎯

Chatbots de tarea

Ayudan al usuario a completar una acción específica: reservar un vuelo, consultar un saldo, hacer un pedido.

📚

Bots de FAQ

Responden preguntas frecuentes desde una base de conocimiento: políticas, procedimientos, documentación de producto.

🤝

Asistentes híbridos

Combinan tarea + FAQ: entienden intenciones Y responden preguntas arbitrarias, escalando a humanos cuando es necesario.

Las tres piezas de Azure para IA Conversacional

CLU

Entiende QUÉ quiere hacer el usuario (intención) y extrae los datos necesarios (entidades).

Question Answering

Responde preguntas abiertas buscando en una base de conocimiento predefinida.

Azure Bot Service

Infraestructura que conecta todo con el usuario a través de canales (Teams, web, WhatsApp).

CLU — Conversational Language Understanding

CLU (sucesor de LUIS) es el servicio de Azure AI Language que entrena modelos capaces de identificar la intención (qué quiere hacer el usuario) y extraer entidades (los datos específicos dentro del mensaje).

Intenciones (Intents)

Clasificación de lo que el usuario quiere hacer. Cada mensaje del usuario se mapea a una intención predefinida.

"Reserva un vuelo a Madrid"

ReservarVuelo

"Cancela mi pedido número 123"

CancelarPedido

"¿Cuánto cuesta el envío express?"

ConsultarPrecio

"Quiero hablar con un agente"

EscalarHumano

Entidades (Entities)

Datos específicos extraídos del mensaje que el sistema necesita para actuar. Tipos: learned, list, prebuilt.

"Reserva un vuelo a Madrid el viernes"

Destino: Madrid Fecha: viernes

"Cancela mi pedido número 123"

NumeroPedido: 123

"Dos cafés y un té con leche"

Producto: café (x2), té Modificador: con leche

Utterances

Ejemplos de frases que expresan cada intención. Más utterances = modelo más robusto ante variaciones.

// Intent: ReservarVuelo

"Quiero ir a Barcelona"

"Necesito un billete para Roma"

"Vuelo a París por favor"

"Cómo puedo llegar a Lisboa en avión"

"Reserva para Berlín mañana"

Mínimo recomendado: 15 utterances por intención.

Intención "None" — crítica para el examen

Todo proyecto CLU debe tener una intención None que captura mensajes que no corresponden a ninguna intención definida. Sin ella, el modelo intenta forzar cada mensaje a una intención — produciendo predicciones incorrectas con alta confianza. La intención None es el "no entiendo" del bot.

Entrenar un modelo CLU — proceso completo

1

Crear proyecto CLU

En Azure AI Language Studio o via API. Elegir idioma(s) del proyecto — CLU soporta multilenguaje en un solo modelo.

2

Definir intenciones

Crear las intenciones que el modelo debe reconocer. Incluir siempre la intención "None". Nombres claros y mutuamente excluyentes.

3

Definir tipos de entidades

Learned (extraídas del contexto), List (valores fijos como "Madrid", "Barcelona"), Prebuilt (fechas, números, emails — ya vienen entrenadas).

4

Añadir utterances y etiquetar

Escribir 15+ ejemplos por intención. Para cada utterance: asignar intención y marcar las entidades dentro del texto (span labeling).

5

Entrenar el modelo

Clic en "Train". El servicio usa transfer learning sobre modelos de lenguaje preentrenados. Proceso en minutos/horas según volumen.

6

Evaluar y depurar

Revisar la matriz de confusión por intención. Ver utterances mal clasificadas. Añadir más ejemplos para las intenciones con baja precision/recall.

7

Desplegar y llamar a la API

Publicar el modelo a un deployment name. La Prediction API devuelve: top intent, score de confianza, entidades extraídas, todas las intenciones con scores.

Tipos de entidades en CLU

Learned

El modelo aprende a extraerlas del contexto. "Reserva en [Hotel Ritz]" → HotelName. Flexible pero necesita ejemplos etiquetados.

List

Lista de valores exactos y sinónimos. "Rojo" = ["rojo", "red", "carmesí"]. Determinístico, no necesita ML.

Prebuilt

Modelos ya entrenados: DateTime, Number, Email, URL, PersonName, etc. Sin etiquetado propio.

Regex

Patrón de expresión regular. "Pedido número [A-Z]{2}\d{6}" → exacto para códigos de formato fijo.

Respuesta de la Prediction API

// POST /analyze

{

"topIntent": "ReservarVuelo"

"confidence": 0.94

"intents": {

"ReservarVuelo": {"score": 0.94}

"ConsultarPrecio": {"score": 0.04}

"None": {"score": 0.02}

}

"entities": [

{"category": "Destino", "text": "Madrid"}

{"category": "Fecha", "text": "el viernes"}

]

}

Question Answering — base de conocimiento

Question Answering (sucesor de QnA Maker) crea una base de conocimiento de pares pregunta-respuesta. Cuando el usuario hace una pregunta, el servicio busca la respuesta más adecuada por similitud semántica — no por palabras clave exactas.

Fuentes de conocimiento

URLs de FAQ

El servicio extrae automáticamente pares Q&A de páginas web de preguntas frecuentes.

Archivos (PDF, Word, Excel)

Extrae contenido de documentos. Los títulos de sección se convierten en preguntas, el contenido en respuestas.

Manual (Chitchat)

Pares Q&A escritos manualmente. También incluye respuestas a conversación casual prebuilt (hola, gracias, adiós).

Editorial

Azure puede sugerir preguntas alternativas para cada par basándose en variaciones lingüísticas.

Características clave

Preguntas alternativas

Cada par puede tener múltiples formulaciones de la misma pregunta. "¿Cómo devuelvo un producto?" = "¿Cómo hago una devolución?" = "Quiero devolver algo".

Respuestas enriquecidas

Las respuestas pueden incluir markdown, imágenes, botones de acción sugerida (Adaptive Cards).

Confidence score

Cada respuesta viene con un score (0-1). Si es muy bajo, el bot puede decir "No tengo información sobre eso".

Aprendizaje activo

El servicio analiza preguntas sin respuesta buena y sugiere mejoras a la base de conocimiento.

Multi-turn

Soporte para conversaciones de múltiples turnos: una pregunta puede llevar a preguntas de seguimiento.

Ejemplo de respuesta de Question Answering

// Query: "¿Cuánto tarda el envío estándar?"

{

"answers": [

{

"answer": "El envío estándar tarda entre 3 y 5 días hábiles."

"confidenceScore": 0.92

"source": "FAQ-envios.pdf"

"questions": ['

"¿Cuánto tarda el envío estándar?"

"Tiempo de entrega envío normal"

]

}

]

}

CLU vs Question Answering — la distinción clave

Esta es la pregunta de examen más frecuente en IA Conversacional. La diferencia fundamental: CLU entiende qué quiere hacer el usuario para que el bot actúe; Question Answering busca información que el usuario quiere saber.

DimensiónCLUQuestion Answering
Pregunta que responde¿Qué quiere HACER el usuario?¿Qué quiere SABER el usuario?
OutputIntent + Entities (para el bot actúe)Texto de respuesta (para mostrar al usuario)
EntrenamientoUtterances etiquetadas con intents/entitiesPares pregunta-respuesta
Ejemplo típico"Reserva vuelo a Madrid el viernes""¿Cuánto equipaje puedo llevar?"
El bot despuésEjecuta una acción (llama a un API, reserva)Muestra el texto de respuesta al usuario
Resultado si no hay matchIntent: NoneScore bajo → "No encontré información"

Usa CLU cuando...

El bot debe tomar acciones (reservar, cancelar, modificar)
Necesitas extraer parámetros específicos del mensaje
Hay múltiples intenciones distintas a reconocer
El flujo de conversación depende de lo que el usuario quiere hacer

Usa Question Answering cuando...

Los usuarios hacen preguntas con respuestas predefinidas
Tienes un documento de FAQ o base de conocimiento existente
No necesitas extraer entidades ni ejecutar acciones
El bot responde pero no actúa
Icon-machinelearning-165

Azure Bot Service — canales y arquitectura

Azure Bot Service es la plataforma de infraestructura que aloja, conecta y gestiona el bot. No proporciona inteligencia conversacional — eso viene de CLU o Question Answering. Bot Service gestiona canales, autenticación, estado de conversación y mensajería.

Canales disponibles

💼Microsoft Teams
🌐Web Chat
📱WhatsApp
💬Facebook Messenger
🟣Slack
✈️Telegram
📧Email
📞Twilio (SMS)

Un solo bot → múltiples canales simultáneamente sin cambiar el código.

Qué gestiona Bot Service

Hosting del código del bot: Azure App Service o Azure Functions como backend del bot.
Gestión de conversación: Mantiene el estado de la conversación entre turnos (historial, datos de sesión).
Autenticación OAuth: Permite que el bot autentique usuarios con Azure AD, GitHub, Google, etc.
Bot Framework SDK: SDK en C# y Python para construir la lógica del bot con diálogos y flujos.
Analytics y monitoreo: Métricas de uso: mensajes por día, usuarios activos, canales más usados.

Orquestación — combinar CLU + Question Answering

Un bot real generalmente necesita ambos servicios: CLU para manejar tareas de usuario y Question Answering para responder preguntas. Azure AI Language incluye un Orchestration Workflow que decide automáticamente a cuál de los dos redirigir cada mensaje.

Flujo de orquestación

1

Usuario envía mensaje

"¿Cuánto tarda el envío?" o "Quiero cancelar mi pedido"

2

Orchestration Workflow analiza

Decide si el mensaje es una pregunta (→ Question Answering) o una tarea (→ CLU). Basado en el intent más probable.

3a

Ruta: Question Answering

Si es pregunta informativa → busca en la base de conocimiento → devuelve respuesta al usuario.

3b

Ruta: CLU

Si es tarea → extrae intent + entities → el código del bot ejecuta la acción correspondiente.

4

Respuesta al usuario

El bot responde con la información de QnA o con el resultado de la acción ejecutada.

Ejemplo real: bot de aerolínea

Va a CLU (tareas)

"Reserva un vuelo a Madrid para el 15 de enero"

"Cancela mi reserva número RES-123"

"Cambia mi asiento al 14A"

"Necesito una silla de ruedas en el aeropuerto"

Va a Question Answering (info)

"¿Cuánto equipaje de mano puedo llevar?"

"¿Qué documentos necesito para volar?"

"¿Cuál es la política de cancelación?"

"¿Puedo llevar mascotas en cabina?"

Tabla de decisión — ¿qué usar en cada escenario?

EscenarioServicioRazón
Bot que toma pedidos en un restauranteCLUNecesita extraer platos, cantidad, personalización — son entidades de una intención
Bot de FAQ del departamento de RRHHQuestion AnsweringSolo responde preguntas sobre políticas, no ejecuta acciones
Asistente que reserva salas de reunionesCLUExtrae fecha, hora, sala, asistentes — tarea con múltiples entidades
Bot de soporte con manual del producto como fuenteQuestion AnsweringLa base de conocimiento es el manual — no hay acciones
Bot de banco: consultas Y transferenciasCLU + QnA (orquestado)Transferencias requieren CLU; preguntas sobre tasas requieren QnA
Desplegar el mismo bot en Teams y WhatsAppAzure Bot ServiceGestión de canales múltiples — no es capacidad de CLU ni QnA
Bot que autentifica al usuario con su cuenta MicrosoftAzure Bot Service (OAuth)Autenticación OAuth es responsabilidad de Bot Service

Trampas frecuentes del examen

¿CLU y Question Answering son lo mismo?

No. CLU clasifica la intención del usuario y extrae entidades para que el bot ejecute una acción. Question Answering busca una respuesta de texto predefinida en una base de conocimiento. CLU → "el usuario quiere HACER algo"; QnA → "el usuario quiere SABER algo".

¿Azure Bot Service incluye NLP incorporado?

No. Bot Service es infraestructura (canales, hosting, autenticación, estado de conversación). El NLP viene de CLU, Question Answering u otros servicios que se conectan al bot. Sin CLU o QnA, el bot no entiende lenguaje natural.

¿LUIS todavía existe como servicio separado?

LUIS fue reemplazado por CLU (Conversational Language Understanding) dentro de Azure AI Language Service. QnA Maker fue reemplazado por Question Answering, también dentro de Azure AI Language. El examen puede usar los nombres antiguos o nuevos — son el mismo concepto.

¿Con Question Answering el bot puede ejecutar acciones como hacer reservas?

No. Question Answering solo devuelve texto de respuesta. Para que el bot ejecute una acción (reservar, cancelar, modificar) se necesita CLU para extraer la intención y las entidades, más código personalizado que llame a los sistemas de back-end correspondientes.

¿Entendiste este tema?

Pon a prueba lo que acabas de aprender

Una cadena de pizzerías quiere un chatbot en su web que: (1) permita a los clientes hacer pedidos diciendo 'quiero una pizza margarita grande y dos colas', (2) responda preguntas como '¿tienen gluten free?' o '¿cuál es el horario de entrega?', y (3) funcione también en WhatsApp. ¿Qué combinación de servicios Azure necesitan?