Universidad Politécnica de
Durango
ChatBot
Profesora: Anakarla Sotolongo Peña
Alumnos:
Arredondo Corral Gustavo Gael
Alan López Medina
18/07/2025
Universidad Politécnica de Durango 1
18/07/2025 1
Elemento a descomponer 3
Drivers elegidos para la iteración 3
Atributos de calidad y requerimientos funcionales que guían esta iteración 3
Conceptos de diseño a aplicar 4
Definir estructuras resultantes y responsabilidades de los elementos 4
Elementos principales: 4
Definir interfaces de los elementos 6
Conceptos de diseño para futuras iteraciones y justificación 8
Diagramas 9
Diagrama de secuencia 9
Diagrama de componentes 10
Elemento a descomponer
Sistema: Arquitectura del Chatbot para e-commerce.
En esta iteración inicial, descompondremos el sistema general del chatbot en módulos
principales que atiendan las funcionalidades base y atributos de calidad críticos.
Drivers elegidos para la iteración
Atributos de calidad y requerimientos funcionales que guían esta
iteración
● Disponibilidad: El chatbot debe estar disponible 24/7 para atender consultas.
● Escalabilidad: Debe soportar aumento en la cantidad de usuarios concurrentes.
● Tiempo de respuesta: Interacciones con usuarios deben responder en menos de 1
segundo.
● Manejabilidad / Mantenibilidad: Fácil actualización y adición de nuevas
funcionalidades.
● Seguridad: Protección de datos personales y pagos.
● Funcionalidades principales:
○ Entender intenciones (saludo, búsqueda de productos, estado de pedido,
soporte)
○ Responder preguntas frecuentes
○ Procesar órdenes básicas
○ Escalar a un agente humano cuando sea necesario
Conceptos de diseño a aplicar
● Modularidad: Separar responsabilidades claras en módulos independientes.
● Desacoplamiento mediante interfaces: Comunicación a través de APIs y contratos
bien definidos.
● Escalabilidad horizontal: Módulos que pueden replicarse para manejar carga.
● Seguridad en la comunicación: Autenticación, cifrado entre módulos.
● Manejo de contexto: Un componente que almacene y administre el contexto
conversacional.
● Adaptabilidad: Permitir incorporación de nuevos servicios ([Link]. nuevos canales:
WhatsApp, Telegram).
Definir estructuras resultantes y responsabilidades
de los elementos
Elementos principales:
Interfaz de Usuario (UI)
● Recibe mensajes de usuarios.
● Envía respuestas del chatbot.
● Puede ser multi-canal (webchat, WhatsApp, Facebook Messenger, etc.).
Módulo de Procesamiento de Lenguaje Natural (NLP)
● Análisis de texto de usuario.
● Detección de intención y entidades.
● Clasificación de consultas.
Gestor de Diálogo / Contexto
● Mantiene el estado de la conversación.
● Define el flujo de diálogo.
● Decide siguiente acción según contexto y respuestas.
Motor de Reglas y Lógica de Negocio
● Aplica reglas para respuestas automáticas.
● Valida operaciones ([Link]. verificar estado de pedido).
● Invoca servicios externos para órdenes, inventarios, pagos.
Integración con Backend del E-commerce
● API REST para consulta de catálogo, pedidos, usuarios.
● Seguridad para autenticación/autorización.
Módulo de Escalación a Agente Humano
● Transfiere conversaciones a un operador humano cuando es necesario.
● Monitorización y logging.
Subsistema de Seguridad
● Manejo de credenciales.
● Cifrado de datos sensibles.
● Control de acceso.
Definir interfaces de los elementos
Para asegurar un sistema modular, con bajo acoplamiento y alta cohesión, definiremos
interfaces claras para la comunicación entre módulos:
● Interfaz Interfaz de Usuario (UI) ⇄ Módulo NLP
○ Entrada: Mensajes de texto o voz del usuario (JSON con metadata: usuario,
canal, timestamp)
○ Salida: Respuesta procesada del chatbot (texto, sugerencias, botones)
○ Protocolo: API REST o WebSocket para mensajes en tiempo real
○ Métodos:
■ sendUserMessage(message: UserMessage) -> void
■ receiveBotResponse(response: BotResponse) -> void
● Interfaz Módulo NLP ⇄ Gestor de Diálogo / Contexto
○ Entrada: Intenciones, entidades extraídas del texto
○ Salida: Estado actualizado del diálogo, decisión sobre siguiente acción
○ Métodos:
■ processIntent(intent: Intent, entities:
List<Entity>, context: Context) -> DialogAction
● Interfaz Gestor de Diálogo ⇄ Motor de Reglas y Lógica de Negocio
○ Entrada: Solicitudes para validación o ejecución de reglas (por ejemplo:
consultar estado de pedido)
○ Salida: Resultado de la validación o respuesta a la consulta
○ Métodos:
■ executeBusinessRule(ruleRequest: RuleRequest) ->
RuleResponse
● Interfaz Motor de Reglas ⇄ Backend E-commerce
○ Entrada: Solicitudes API REST para inventario, pedidos, pagos
○ Salida: Respuestas JSON con datos solicitados
○ Autenticación: OAuth 2.0 o JWT para seguridad
● Interfaz Gestor de Diálogo ⇄ Módulo de Escalación a Agente Humano
○ Entrada: Solicitud para transferir conversación (con contexto y metadata)
○ Salida: Confirmación de escalación y estado de operador
○ Métodos:
■ escalateConversation(conversationId: string,
context: Context) -> EscalationStatus
● Interfaz de Subsistema de Seguridad con todos los módulos
○ Provee servicios comunes de autenticación, autorización, cifrado y manejo de
credenciales
○ Métodos:
■ authenticate(credentials: Credentials) -> AuthToken
■ authorize(token: AuthToken, action: Action) -> bool
■ encrypt(data: Data) -> EncryptedData
■ decrypt(data: EncryptedData) -> Data
Conceptos de diseño para futuras iteraciones y
justificación
Patrón CQRS (Command Query Responsibility Segregation):
Para separar operaciones de consulta y comando, optimizando rendimiento y escalabilidad,
especialmente para consultas frecuentes de catálogo y pedidos.
Event-Driven Architecture:
Permitir que módulos reaccionen a eventos ([Link]. nueva orden, pago confirmado),
facilitando integración con otros sistemas y mejor escalabilidad.
Microservicios:
Evolución a una arquitectura basada en microservicios para desplegar y escalar
independientemente cada funcionalidad (NLP, lógica negocio, integración backend).
Machine Learning para NLP:
Incorporar modelos de ML para mejorar detección de intenciones y personalización de
respuestas según contexto del usuario.
Cache Distribuido:
Para mejorar tiempos de respuesta, cachear consultas frecuentes y contexto de usuarios
activos.
Canales Multimodales:
Soporte futuro para voz, video, asistentes virtuales integrados (Alexa, Google Assistant).
Automatización de pruebas e integración continua:
Para mejorar mantenibilidad y calidad al agregar nuevas funcionalidades.
Diagramas
Diagrama de secuencia
Diagrama de componentes