Diebot es una aplicación de escritorio desarrollada con Python + PyQt6, diseñada para automatizar respuestas en chats privados de Microsoft Teams utilizando inteligencia artificial con Gemini de Vertex AI (Google Cloud).
Este bot simula una presencia humana asistida por IA, ofreciendo ayuda técnica en temas de ingeniería de datos. Es ideal para profesionales que desean delegar respuestas frecuentes o iniciales en un entorno corporativo (como Falabella).
- ✅ Responde automáticamente chats privados en Teams (evita grupos o mensajes propios).
- 🧠 Genera respuestas usando Vertex AI (modelo Gemini).
- 🗂️ Carga documentos
.txtcomo base de conocimiento adicional. - 🔁 Análisis automático de chats con intervalo configurable.
- 🔒 Lista blanca para excluir usuarios (por ID o nombre) del análisis automático.
- 💬 Tono profesional, accesible y ajustado a entornos de soporte técnico.
- Python 3.10 o superior
- PyQt6
- Google Cloud SDK (
gcloud) - Acceso al modelo Gemini desde Vertex AI
- Autenticación activa con una cuenta de servicio con permisos adecuados
-
Clona el repositorio:
git clone https://github.com/dvdeveloper/teams-bot-vertex.git cd diebot -
Instala las dependencias:
pip install -r requirements.txt
-
Autentícate en Google Cloud (con impersonación):
gcloud auth application-default login \ --impersonate-service-account="[email protected]"💡 Asegúrate de que:
- El modelo
gemini-2.5-pro-preview-05-06esté habilitado en Vertex AI. - Tu usuario tenga permiso para impersonar la cuenta de servicio.
- La cuenta de servicio tenga el rol
Vertex AI User.
- El modelo
-
Ejecuta la aplicación:
python main_app.py
- 🖥️ Usa dos monitores: Te recomendamos tener dos pantallas. En una puedes ejecutar Diebot en segundo plano (bot respondiendo automáticamente), mientras que en la otra mantienes abierta tu sesión principal de Microsoft Teams para participar en reuniones importantes o responder chats críticos de forma manual.
- 🕒 Configura el intervalo sabiamente: Elige un intervalo de análisis que no sobrecargue ni el sistema ni Vertex AI, pero que mantenga respuestas, por oportunas.
- 📋 Usa la lista blanca estratégicamente: Excluye de forma temporal a jefes, stakeholders o clientes para evitar respuestas automáticas en conversaciones sensibles.
├── main_app.py # Lógica principal del bot y la interfaz PyQt6
├── config_dialog.py # Diálogo para configurar el intervalo y modo automático
├── whitelist_dialog.py # Diálogo para gestionar lista blanca de usuarios
├── database.py # (No incluido aquí) Base de datos local para config/whitelist
├── conocimiento/ # Carpeta con archivos .txt usados como contexto adicional
├── requirements.txt # Dependencias necesarias para ejecutar el proyecto
Puedes incluir archivos .txt en la carpeta conocimiento/. El contenido será indexado automáticamente para usarse como contexto adicional en las respuestas del bot.
- No responde en chats grupales.
- No responde en chats contigo mismo.
- Respeta el horario de colación (13:00 - 14:00 hrs Chile).
- No accede ni modifica entornos productivos.
- No comparte datos sensibles ni confidenciales.
- Sigue un comportamiento predefinido basado en reglas seguras.
Este proyecto se distribuye bajo la licencia MIT. Puedes modificarlo y adaptarlo a tus necesidades.
💬 Desarrollado con ❤️ para automatizar tus respuestas técnicas y mejorar tu productividad.