Un bot de Telegram avanzado para tiendas WooCommerce especializado en la atención al cliente. El bot utiliza tecnologías de IA generativa para ofrecer recomendaciones personalizadas de productos, resolver consultas y brindar soporte en tiempo real.
-
Asistente Virtual Inteligente:
- Utiliza el modelo Llama 3.3 70B de Groq para generar respuestas contextuales
- Responde consultas sobre productos con conocimiento especializado
- Mantiene contexto de las conversaciones previas para una experiencia personalizada
- Tiempo de inactividad de 250 segundos antes de reiniciar la conversación
-
Sistema RAG para Recomendación de Productos:
- Búsqueda semántica de productos mediante embeddings de OpenAI
- Recuperación de productos relevantes basada en la consulta del usuario
- Enriquecimiento de respuestas con datos actualizados de inventario y precios
- Inclusión de enlaces directos a los productos mencionados
-
Integración con WooCommerce:
- Sincronización en tiempo real con el catálogo de productos
- Información actualizada de precios, disponibilidad y ofertas
- Acceso a categorías, descripciones y detalles específicos de productos
-
Gestión Avanzada de Conversaciones:
- Almacenamiento de historiales de conversación en MongoDB
- Sistema de menús interactivos para guiar al usuario
- Comandos específicos para acciones frecuentes
- Temporizadores de sesión para optimizar recursos
-
Seguridad y Privacidad:
- Gestión segura de credenciales mediante variables de entorno
- Almacenamiento responsable de datos de usuario
- Python 3.8+
- MongoDB
- API Key de Telegram Bot
- API Key de Groq (para LLM Llama 3.3 70B)
- API Key de OpenAI (para generación de embeddings)
- Credenciales de WooCommerce (Consumer Key y Secret)
- Clonar el repositorio:
git clone [url-del-repositorio]
cd WooCommerceBot
- Instalar dependencias:
pip install -r requirements.txt
- Configurar variables de entorno:
Crear un archivo
.env
con:
TELEGRAM_TOKEN=tu_token_de_telegram
GROQ_API_KEY=tu_api_key_de_groq
OPENAI_API_KEY=tu_api_key_de_openai
MONGO_URI=tu_uri_de_mongodb
WOOCOMMERCE_URL=url_de_tu_tienda_woocommerce
WOOCOMMERCE_CONSUMER_KEY=tu_consumer_key_de_woocommerce
WOOCOMMERCE_CONSUMER_SECRET=tu_consumer_secret_de_woocommerce
- Actualizar embeddings de productos (recomendado antes de iniciar el bot):
python update_embeddings.py
- Iniciar el bot:
python run.py
- Interactuar con el bot en Telegram:
/start
ohola
- Iniciar el bot y mostrar menú principal1
ohablar
- Hablar con el Asistente Virtual2
obuscar
- Buscar productos específicos3
oofertas
- Ver ofertas del día4
oenvios
- Información sobre envíos5
oayuda
- Mostrar ayuda y soportemenu
- Volver al menú principalsalir
- Terminar conversación actual
WooCommerceBot/
├── helper/ # Módulos auxiliares
│ ├── db.py # Gestión de base de datos MongoDB
│ ├── groq_api.py # Integración con Groq (Llama 3.3 70B)
│ ├── openai_api.py # Integración con OpenAI
│ ├── rag.py # Sistema RAG para búsqueda semántica de productos
│ ├── telegram_api.py # Funciones para API de Telegram
│ └── woocommerce_api.py # Integración con WooCommerce
├── src/
│ └── main.py # Lógica principal del bot y endpoints de Flask
├── requirements.txt # Dependencias del proyecto
├── run.py # Script de inicio
└── update_embeddings.py # Script para actualizar embeddings de productos
- Utiliza el modelo
text-embedding-3-small
de OpenAI para generar embeddings de productos - Almacena vectores de embeddings en MongoDB para búsqueda semántica eficiente
- Implementa cálculo de similitud de coseno para encontrar productos relevantes
- Enriquece el contexto del LLM con información actualizada de productos
- Servidor web Flask para recibir webhooks de Telegram
- Procesamiento asíncrono de mensajes
- Endpoint principal:
/telegram
para recibir actualizaciones
- Sistema de gestión de estados de conversación por usuario
- Temporizadores para reiniciar conversaciones inactivas
- Almacenamiento persistente de interacciones en MongoDB
- Uso principal de Llama 3.3 70B a través de Groq API
- Configuración optimizada de parámetros para respuestas precisas (temperature=0.3, max_tokens=600)
- Instrucciones específicas para manejo de consultas de productos
- Recomendación personalizada de productos según preferencias del usuario
- Consulta de disponibilidad y precios en tiempo real
- Información sobre envíos y métodos de pago
- Resolución de dudas técnicas sobre productos
- Acceso rápido a ofertas y promociones