Skip to content

Daniels35/botWhatsappTagMarketingDigital

Repository files navigation

🤖 Bot WhatsApp IA + Agenda (Prototipo)

Asistente virtual inteligente para agendamiento y atención al cliente.

Este repositorio contiene el código fuente de un chatbot para WhatsApp desarrollado con Node.js y la librería @bot-whatsapp (Baileys Provider). Su función principal es automatizar la atención al cliente utilizando OpenAI (ChatGPT & Whisper) para interpretar texto y audio, responder preguntas basándose en un documento PDF de la empresa y gestionar reservas de citas directamente en Google Calendar.

📋 Características Principales

🧠 Inteligencia Artificial (OpenAI)

  • Procesamiento de Lenguaje Natural: Utiliza el modelo gpt-4o-mini para entender la intención del usuario y generar respuestas coherentes y empáticas.
  • Base de Conocimiento (RAG): Lee y procesa un archivo pregunta.pdf al iniciar para nutrir al bot con información específica del negocio (preguntas frecuentes, servicios, precios), asegurando respuestas contextualizadas.
  • Transcripción de Audio: Capaz de recibir notas de voz, convertirlas de formato OGG a MP3 usando ffmpeg, y transcribirlas a texto con el modelo Whisper-1 para procesarlas como si fueran mensajes escritos.

📅 Gestión de Agenda (Google Calendar)

  • Disponibilidad en Tiempo Real: Consulta la API de Google Calendar para verificar huecos libres dentro de un horario laboral definido (Lunes a Viernes, 9am - 6pm).
  • Interpretación de Fechas: Emplea IA para convertir expresiones humanas como "el próximo martes a las 3" en formatos ISO procesables (2024-06-30T15:00:00).
  • Agendamiento Automático: Crea eventos reales en el calendario con la información recopilada del cliente (Nombre, Motivo) una vez confirmada la disponibilidad.

⚙️ Requisitos Previos

Para que el bot funcione, necesitas configurar las siguientes credenciales y archivos en la raíz del proyecto:

  1. Archivo .env: Debe contener tu OPENAI_API_KEY.
  2. Credenciales de Google (google.json): Archivo de cuenta de servicio (Service Account) descargado de Google Cloud Console con permisos para la API de Calendar.
  3. Documento Base (pregunta.pdf): Archivo con la información que el bot debe aprender.
  4. Librerías del Sistema: Requiere tener instalado ffmpeg en el sistema operativo si no se usa el instalador de npm incluido.

📂 Estructura del Proyecto

  • app.js: Punto de entrada. Inicializa el bot, carga el PDF y define los flujos principales (Bienvenida, Voz, Agendamiento).
  • flows/: Contiene la lógica conversacional dividida en módulos:
    • date.flow.js: Lógica compleja para negociar fechas y verificar disponibilidad.
    • form.flow.js: Formulario para pedir datos finales y crear el evento.
    • welcome.flow.js: Flujo simple de saludo.
  • scripts/: Utilidades técnicas:
    • calendar.js: Conexión con Google API (Listar slots, crear eventos).
    • chatgpt.js: Conexión con OpenAI API (Chat y Transcripción).
    • utils.js: Funciones auxiliares para manejo de fechas con luxon.

🚀 Instalación y Ejecución

  1. Instalar dependencias:
    npm install
  2. Iniciar el bot:
    npm start
  3. Vincular: Escanea el código QR que aparecerá en la terminal o en el navegador (si usas QRPortalWeb).

🛠️ Configuración (Hardcoded)

Hay ciertos parámetros críticos que están definidos directamente en el código y deben revisarse antes de desplegar:

1. ID del Calendario de Google: En scripts/calendar.js, debes reemplazar la variable calendarID con el ID de tu calendario específico (usualmente un correo electrónico).

2. Prompt del Sistema: En app.js, la función getPrompt define la personalidad del bot. Puedes editarla para cambiar cómo se presenta o qué instrucciones sigue.

3. Horarios de Atención: En scripts/calendar.js, el objeto rangeLimit define los días y horas hábiles para citas.


Versión: 1.0.0 (Prototipo) Desarrollado por: Tag Marketing Digital Tecnología: Node.js, Baileys, OpenAI API, Google Calendar API.

📝 Snippets de Configuración

Cambiar ID del Calendario (scripts/calendar.js):

const calendarID = 'TU_ID_DE_CALENDARIO@group.calendar.google.com';

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors