Este documento describe los Diagramas de Flujo de Datos (DFD) para el Sistema Smart de Chatbot de mensajería automatizada con procesamiento de lenguaje natural. El DFD proporciona una visión clara de cómo los datos fluyen a través del sistema, desde el momento en que el cliente envía un mensaje hasta que recibe una respuesta generada por el motor de procesamiento de lenguaje natural (NLP).
El objetivo es proporcionar un manual técnico detallado para desarrolladores e ingenieros de software, facilitando la comprensión del flujo de datos, la integración de módulos y la implementación de modelos NLP y LLM.
El DFD de primer nivel muestra cómo los mensajes enviados por el cliente son recibidos, procesados y respondidos mediante el motor NLP/NLG.
Entidades Externas:
Procesos:
Almacenes de Datos:
Flujos de Datos:
| ID | Flujo | Descripción |
|---|---|---|
| F1 | Mensaje de texto | Mensaje enviado por el cliente. |
| F2 | Mensaje de texto | Transmisión del mensaje al sistema. |
| F3 | Texto mensaje nuevo | Texto listo para procesamiento. |
| F4 | Frase de texto | Mensaje limpio para tokenización. |
| F5 | Datos limpios y tokenizados | Tokens generados por NLP. |
| F6 | Respuesta de intención | Respuesta inferida del modelo NLP. |
| F7 | Mensaje respuesta intención | Respuesta enviada al cliente. |
| Elemento | Descripción | Tipo | Proceso Asociado |
|---|---|---|---|
| F1 | Mensaje del cliente | String | P1 |
| F2 | Mensaje de texto al sistema | String | P2 |
| F3 | Texto mensaje nuevo | String | P2 |
| F4 | Frase de texto | String | P3 |
| F5 | Datos tokenizados | Array | P3 |
| F6 | Respuesta de intención | String | P3 |
| F7 | Mensaje respuesta intención | String | P3 |
| A1 | Frase | String | P2 |
| A2 | Tokenize | Array | P3 |

El proceso P2: Recibir mensaje se encarga de validar y registrar los mensajes enviados por el cliente.
Subprocesos:
Flujos de Datos:
| ID | Flujo | Descripción |
|---|---|---|
| F2 | Mensaje de texto | Mensaje recibido del cliente. |
| F2.1 | Datos crudos del mensaje | Mensaje validado listo para registro. |
| F3 | Texto mensaje nuevo | Mensaje almacenado en A1. |
Almacén de Datos:

El proceso P3: Procesar texto utiliza un motor NLP para interpretar mensajes, tokenizar, generar embeddings y ejecutar un modelo deep learning para inferir la intención.
Subprocesos:
| ID | Subproceso | Descripción |
|---|---|---|
| P3.1 | Limpiar texto | Depuración y normalización de mensajes. |
| P3.2 | Transformar texto a token | Tokenización del mensaje. |
| P3.3 | Generar relleno de texto | Ajuste de tamaño y consistencia. |
| P3.4 | Inferencia sobre nuevo texto | Clasificación de la intención. |
| P3.5 | Ejecutar modelo deep learning | Generación de respuesta final. |
Flujos de Datos:
| ID | Flujo | Descripción |
|---|---|---|
| F4 | Frase de texto | Entrada de P3 |
| F4.1 | Texto limpio | Salida P3.1 |
| F4.2 | Datos token | Salida P3.2 |
| F4.3 | Texto igual tamaño | Salida P3.3 |
| F4.4 | Datos intent | Salida P3.4 |
| F6 | Respuesta de intención | Salida P3.5 |
Almacén de Datos:

El administrador puede cargar datos de entrenamiento, generar embeddings y entrenar modelos de NLP.
Subprocesos:
| ID | Subproceso | Descripción |
|---|---|---|
| P3.1 | Limpiar texto | Normalización de datos administrativos. |
| P3.2 | Transformar texto a token | Tokenización para entrenamiento. |
| P3.3 | Tokenización | Preparación de tokens. |
| P3.4 | Vectorización | One-hot encoding de palabras. |
| P3.5 | Reducción de dimensiones | Creación de embeddings. |
| P3.6 | Extracción de preguntas y respuestas | Lectura de CSV o DB MySQL. |
| P3.7 | Creación del modelo | Entrenamiento ML/NLP. |
| P3.8 | Predicción | Predicción de intenciones. |
Almacén de Datos:

Proceso RAG (Retrieval-Augmented Generation) para preguntas de clientes:
Subprocesos:
| ID | Subproceso | Descripción |
|---|---|---|
| P3.1r | Transformar texto a embedding | Pregunta del cliente a vector. |
| P3.2r | Búsqueda por similitud ANN | Recuperación de vectores similares. |
| P3.3r | Recuperación de chunks | Fragmentos relevantes del vectorDb. |
| P3.4r | Ejecutar modelo LLM | Generación de respuesta usando LLM. |
Flujos de Datos:
| ID | Flujo | Descripción |
|---|---|---|
| F5.1 | Pregunta de texto | Entrada del cliente. |
| F5.2 | Vector datos | Embedding de la pregunta. |
| F5.3 | Retrieved | Chunks relevantes recuperados. |
| F5.4 | Query chunks | Fragmentos adicionales de la consulta. |
| F5.5 | Augment chunks + E3 | Chunks combinados con pregunta. |
| F6 | Generate respuesta | Respuesta generada por LLM. |
Almacén de Datos:

Subprocesos:
| ID | Subproceso | Descripción |
|---|---|---|
| P3.6 | Leer documentos | Lectura de documentos (txt, doc, pdf). |
| P3.1 | Splitter de texto | División de documentos en chunks. |
| P3.2 | Modelo de Embedding | Transformación de chunks en vectores. |
Flujos de Datos:
| ID | Flujo | Descripción |
|---|---|---|
| F8 | Documentos preparados | Archivos txt/doc/pdf de la empresa. |
| F9 | Nombre carpeta | Carpeta de documentos. |
| F9.1 | Documento | Documento convertido a texto. |
| F9.2 | Chunks | Fragmentos de texto. |
| F9.3 | Data metadata | Metadatos de los chunks. |
| F9.4 | Embedding | Vectores de chunks para vectorDb. |
Almacén de Datos:

Subprocesos:
| ID | Subproceso | Descripción |
|---|---|---|
| P3.7.1 | Generación de embeddings | Transformación de tokens a vectores. |
| P3.7.2 | Añadir metadatos | Enriquecimiento de vectores con información adicional. |
| P3.7.3 | Indexación | Almacenamiento en vectorDb para búsquedas. |
Almacén de Datos:

El sistema combina procesamiento de texto, NLP/NLG, embeddings y RAG, permitiendo:
Esta documentación proporciona una visión integral del flujo de datos, almacenes y subprocesos necesarios para la implementación y mantenimiento del sistema.