Bot de Telegram para la gestión financiera de la licorera PuntoNigth. Permite registrar ventas y gastos mediante texto o nota de voz, generar gráficos de balance y realizar consultas contables con inteligencia artificial.
| Función | Descripción |
|---|---|
| 🟢 Registrar Ventas | Ingresa ventas con detalle, monto y método de pago |
| 🔴 Registrar Gastos/Pagos | Ingresa pagos y gastos operativos |
| 🎤 Entrada por Voz | Envía una nota de voz y el bot la transcribe automáticamente con Groq Whisper |
| 📊 Gráficos de Balance | Genera gráficos de barras por mes, año o rango de fechas personalizado |
| 🧠 Consulta IA | Pregunta en lenguaje natural sobre tus finanzas y Gemini responde con análisis preciso |
| 👥 Multi-usuario | Cada usuario tiene su propia hoja privada en Google Sheets (modelo multi-tenant) |
PuntoNigthERP (Controlador)
├── GoogleSheetsDB → Capa de datos (Google Sheets por usuario)
└── CerebroIA → Capa de inteligencia artificial
├── Groq Whisper → Transcripción de audio en español
└── Gemini 2.5 Flash → Extracción de datos y análisis contable
Flujo principal:
- El usuario selecciona una acción en el menú interactivo de Telegram.
- Envía el detalle por texto (
Ron 35) o nota de voz. - Si es voz: Groq lo transcribe → Gemini extrae producto y monto.
- El usuario selecciona el método de pago (Yape, Plin, Efectivo, Tarjeta).
- El registro se guarda en la hoja privada del usuario en Google Sheets.
- Para consultas IA, Gemini lee el CSV completo del usuario y responde en español.
- Python 3.10
- pyTelegramBotAPI — Bot de Telegram
- gspread + oauth2client — Google Sheets como base de datos
- Groq (Whisper Large v3) — Transcripción de audio
- Google Gemini 2.5 Flash — Extracción de datos y análisis contable
- pandas + matplotlib — Procesamiento y visualización de datos
- pytz — Manejo de zona horaria (America/Lima)
- python-dotenv — Gestión de variables de entorno
- Docker — Despliegue en contenedor
git clone https://github.com/tu-usuario/Bot_PuntoNigth.git
cd Bot_PuntoNigthCopia los archivos de ejemplo y rellena con tus propios datos:
cp .env.example .env
cp creds.example.json creds.jsonEdita .env con tus claves reales:
TELEGRAM_TOKEN=tu_token_de_botfather
NOMBRE_EXCEL=Nombre de tu hoja en Google Sheets
GROQ_API_KEY=tu_api_key_de_groq
GEMINI_API_KEY=tu_api_key_de_geminiEdita creds.json con las credenciales de tu cuenta de servicio de Google.
- Ve a Google Cloud Console.
- Crea un proyecto y habilita la Google Sheets API y la Google Drive API.
- Crea una Cuenta de Servicio y descarga el archivo JSON de credenciales.
- Renombra ese archivo como
creds.jsony colócalo en la raíz del proyecto. - Crea una hoja de cálculo en Google Sheets con el nombre que pusiste en
NOMBRE_EXCEL. - Comparte esa hoja con el email de la cuenta de servicio (
client_emaildelcreds.json).
docker build -t bot-puntonigth .
docker run -d --name puntonigth bot-puntonigthpip install -r requirements.txt
python bot.pyBot_PuntoNigth/
├── bot.py # Código principal del bot
├── requirements.txt # Dependencias de Python
├── Dockerfile # Configuración para despliegue con Docker
├── .env.example # Ejemplo de variables de entorno (sin datos reales)
├── creds.example.json # Ejemplo de estructura del archivo de credenciales
├── .gitignore # Archivos excluidos del repositorio
└── README.md # Este archivo
- Busca tu bot en Telegram y envía
/starto/menu. - Selecciona una operación en el menú interactivo.
- Para registrar, escribe en formato
Producto Precio(ej:Cerveza 15) o envía una nota de voz. - Confirma el método de pago.
- Para gráficos, elige el filtro de tiempo (mes, año o rango personalizado).
- Para consultas IA, escribe libremente, por ejemplo: ¿Cuánto sumaron las ventas por Yape este mes?
Los archivos .env y creds.json contienen credenciales sensibles y están excluidos del repositorio mediante .gitignore. Nunca los subas a GitHub. Usa los archivos .env.example y creds.example.json como plantilla.
Proyecto privado de uso interno para PuntoNigth.