Atención al Cliente Ecommerce
Flujo de Atención al Cliente con sistema de nivelación para integrarse con un ecommerce
🧩 Descripción general
El flujo automatiza la atención al cliente de una plataforma de ecommerce. El usuario ingresa una consulta en un chat; un agente inteligente clasifica la intención en tres niveles (información, estado de pedido o solicitud de intervención humana). Según la clasificación, el flujo sigue la ruta correspondiente:
- Nivel 1 – Respuestas de conocimiento con búsqueda semántica en una base de datos vectorial.
- Nivel 2 – Consultas a la API interna del sistema para obtener datos transaccionales.
- Nivel 3 – Notificación a un agente humano vía Telegram.
El proceso utiliza modelos de lenguaje Gemini, embeddings de Google, ChromaDB y una serie de componentes especializados para la recuperación, la generación y la integración con servicios externos.
⚙️ Funcionalidades principales
- Detección automática de intención mediante un modelo de lenguaje que devuelve
nivel1,nivel2onivel3. - Enrutamiento condicional de la conversación según la intención detectada.
- Respuesta basada en búsqueda RAG (Retrieval‑Augmented Generation) usando embeddings y ChromaDB.
- Consulta dinámica a la API interna con parámetros extraídos del mensaje del usuario.
- Notificación automática a la mesa de ventas a través de Telegram cuando la intención requiere intervención humana.
- Ingestión y procesamiento de documentos desde Google Drive (extracción de texto, chunking y indexación en la base de datos vectorial).
🔄 Pasos del flujo de trabajo
| Nombre del componente | Rol en el flujo | Entradas clave | Salidas clave |
|---|---|---|---|
| Chat Input | Recibe la consulta del usuario. | Mensaje de texto, ID de conversación, sesión. | Mensaje de usuario (Message). |
| Detector de Intención | Clasifica la intención con Gemini. | Mensaje de usuario. | Palabra de clasificación (nivel1, nivel2, nivel3). |
| Conditional Router | Enruta la conversación según la clasificación. | Palabra de clasificación, mensaje. | Mensaje encaminado a la ruta correspondiente. |
| Agent (Nivel 1) | Genera respuesta de conocimiento usando RAG. | Mensaje encaminado, modelo Gemini, RAGAgent como herramienta. | Respuesta de texto. |
| RAGAgent | Recupera información relevante de ChromaDB. | Mensaje de consulta, modelo Gemini, retrievers de Chroma. | Datos recuperados y respuesta generada. |
| Agent (Nivel 2) | Genera respuesta consultando la API interna. | Mensaje encaminado, modelo Gemini, APIRequest como herramienta. | Respuesta de texto basada en datos de la API. |
| APIRequest | Ejecuta petición HTTP a la API de backend. | Parámetros de la solicitud (URL, método, headers, cuerpo). | Datos devueltos por la API. |
| Agent (Nivel 3) | Notifica a la mesa de ventas vía Telegram. | Mensaje encaminado, modelo Gemini, TelegramMessage como herramienta. | Mensaje de confirmación de envío a Telegram. |
| TelegramMessage | Envía notificación a Telegram. | Mensaje a enviar, ID de chat, token del bot. | Respuesta de Telegram (status). |
| Chat Output | Muestra la respuesta final al usuario. | Mensaje de respuesta (texto). | Mensaje visible en la interfaz de chat. |
| Data Ingestion (GDriveFileManager → ParseData → SplitText → ChromaDB) | Prepara documentos para la búsqueda RAG. | Identificador de archivos en Google Drive. | Vectores indexados en ChromaDB. |
| GoogleGenerativeAIEmbeddings | Convierte texto en embeddings. | Texto extraído. | Embeddings vectoriales. |
| ChromaDB | Almacena y recupera documentos por similitud. | Embeddings y metadatos. | Documentos relevantes. |
Nota: La fase de ingestión se ejecuta de forma independiente (por ejemplo, a intervalos programados) antes de que los usuarios interactúen con el flujo.
🧠 Notas
- Los modelos de lenguaje utilizados (Gemini 2 / 3 / 4 / 5) están configurados con parámetros
max_output_tokens,temperatureyinclude_thoughtsdesactivados para evitar pensamientos no deseados. - El
Conditional Routercompara la palabra de clasificación usando el operadorequals(caso insensible). - El
Agent (Nivel 2)emplea un prompt predefinido que instruye al modelo a responder exclusivamente con los resultados obtenidos por la herramientaAPIRequest. RAGAgenthabilita la comprobación de calidad de respuesta y la eliminación de documentos duplicados para optimizar la relevancia.- La notificación en Telegram incluye la opción de enviar texto plano; se pueden ampliar a otros formatos (fotos, documentos) si se requieren.
- Todos los componentes que requieren credenciales (
GoogleGenerativeAIModel,TelegramMessage,GDriveFileManager) obtienen sus tokens de una almacén seguro (credential_id).