Volver a proyectos
10 ago 2025
3 min de lectura

GastoBot

Un bot de Telegram que usa la IA de Google para registrar y organizar gastos personales a partir de texto, audios o fotos de tickets.

GastoBot

GastoBot es un bot de Telegram diseñado para simplificar el control de gastos personales. Permite registrar gastos de forma rápida y flexible mediante texto, notas de voz o fotos de tickets. Integra la IA generativa de Google (Gemini) y guarda automáticamente la información en hojas de cálculo mensuales de Google Sheets.

Objetivo

El bot ofrece una alternativa inteligente y centralizada a introducir los gastos a mano en una hoja de cálculo. Cada entrada puede validarse, corregirse y organizarse antes de guardarse, lo que garantiza precisión y control.

Funcionalidades principales

  • Captura inteligente: acepta mensajes como «he pagado 15 € en el supermercado», notas de voz y fotos de tickets. Extrae automáticamente el comercio, el importe, la descripción y la categoría.
  • Validación antes de guardar: el usuario puede aceptar el gasto, editar cualquier campo o cancelar la operación.
  • Organización automática: los gastos se guardan en Google Sheets, con una pestaña por mes.
  • Resúmenes mensuales: el comando /summary genera un desglose por categorías del mes en curso.
  • Seguridad: el bot solo responde al usuario de Telegram autorizado.

Flujo de trabajo

  1. El usuario envía texto, un audio o una imagen.
  2. Gemini procesa el contenido y devuelve comercio, importe, descripción y categoría en formato JSON.
  3. El bot muestra los datos extraídos en un menú interactivo.
  4. El usuario confirma, edita o cancela.
  5. Al confirmar, el gasto se añade como una nueva fila en la pestaña mensual correspondiente de Google Sheets.

Tecnología utilizada

  • Python
  • python-telegram-bot
  • Google Generative AI (Gemini)
  • gspread y Google Sheets
  • python-dotenv

Comandos

  • /start: muestra el mensaje de bienvenida.
  • /help: muestra las instrucciones de uso.
  • /summary: ofrece un resumen por categorías del mes en curso.
  • /myid: muestra el ID de usuario empleado durante la configuración inicial.