Bot de Telegram que categoriza automáticamente mensajes usando palabras clave y similitud fuzzy (difflib).
- ✅ Recibe mensajes de chats personales, grupos y canales
- ✅ Categorización automática con palabras clave
- ✅ Fallback con similitud fuzzy usando difflib
- ✅ Gestión de categorías vía comandos de Telegram
- ✅ Estadísticas de mensajes categorizados
- ✅ Exportación de categorías a CSV
- ✅ 100% Dockerizado
- ✅ Base de datos PostgreSQL
- Docker & Docker Compose
- Token de bot de Telegram (obtener de @BotFather)
git clone <tu-repo>
cd telegram-categorizercp .env.example .envEdita el archivo .env y configura:
TELEGRAM_BOT_TOKEN: Tu token de BotFatherPOSTGRES_PASSWORD: Contraseña segura para PostgreSQLDATABASE_URL: Actualiza con tu contraseña
docker-compose up --build# Ver logs
docker-compose logs -f app
# Health check
curl http://localhost:8000/health-
/add_category <nombre> <palabra1, palabra2, ...>o/ac- Ejemplo:
/ac trabajo reunion, meeting, oficina
- Ejemplo:
-
/list_categorieso/lc- Lista todas las categorías configuradas
-
/delete_category <nombre>o/dc- Ejemplo:
/dc trabajo
- Ejemplo:
/statso/s- Muestra estadísticas de mensajes por categoría
/export_categories- Descarga CSV con todas las categorías
Cualquier mensaje de texto será categorizado automáticamente y guardado en la base de datos.
telegram-categorizer/
├── app/
│ ├── __init__.py
│ ├── main.py # Punto de entrada
│ ├── config.py # Configuración
│ ├── database.py # Gestión de DB
│ ├── models.py # Modelos SQLAlchemy
│ ├── utils.py # Utilidades
│ └── bot/
│ ├── __init__.py
│ ├── categorizer.py # Lógica de categorización
│ └── handlers.py # Handlers de Telegram
├── categories.csv # Categorías iniciales (opcional)
├── docker-compose.yml
├── Dockerfile
├── requirements.txt
├── .env
└── README.md
docker-compose logs -f appdocker-compose exec postgres psql -U telegram_user -d telegram_dbdocker-compose restart appdocker-compose up --builddocker-compose down