Vivir dentro de una app que ya usan
Una app propia habría significado enseñar a instalarla, actualizarla y entrar. Meterse en un chat que la persona ya tiene abierto elimina toda esa barrera de una sola vez.
Esta página es la versión técnica del proyecto: arquitectura, modelos y las decisiones que tomamos por el camino. Si lo que buscabas es qué hace AIDA y cómo se usa, con la página principal alcanza y sobra.
Trabajo final del Samsung Innovation Campus 2025
Arquitectura
AIDA no es un único script grande. El núcleo recibe el mensaje, decide de qué se trata y lo deriva al servicio que corresponde. Cada servicio se puede mejorar, reemplazar o apagar sin tocar el resto.
Del chat de la persona al servicio correspondiente, y de vuelta — en un solo recorrido.
Stack
Python en el núcleo y modelos alojados para todo lo pesado: el objetivo era que el asistente respondiera rápido sin necesitar una máquina potente detrás.
Bot framework
pyTelegramBotAPI
Handlers separados por tipo de mensaje: texto, voz, imagen y comandos.
Conversación
gpt-oss 120B vía Groq
Modelo principal para entender intenciones complejas y sostener el diálogo.
Clasificación
gpt-oss 20B
Modelo liviano y barato dedicado solo a decidir qué servicio atiende el mensaje.
Voz a texto
openai-whisper
Transcripción de notas de voz, con buen desempeño en acentos regionales.
Texto a voz
edge-tts
Síntesis natural y multiidioma, con varias voces para elegir. Requiere FFmpeg.
Visión
Qwen 3.6 27B
Descripción de imágenes, OCR y detección de phishing en capturas de pantalla.
Sentimiento
pysentimiento · RoBERTuito
Modelo entrenado en español rioplatense, no una traducción de uno en inglés.
Audio
pydub
Conversión de los formatos de audio que entrega la API de mensajería.
Idioma
langdetect
Detección del idioma del mensaje para decidir si hace falta traducir la respuesta.
Datos
firebase-admin · Firestore
Perfiles y sesiones en la nube, con un archivo JSON local como respaldo.
Alertas
Webhook de Make.com
Disparo del correo al contacto de confianza sin montar un servidor de mail.
Configuración
python-dotenv
Todas las claves y modelos salen de variables de entorno, nunca del código.
Decisiones de diseño
Casi todas las decisiones salieron de la misma pregunta: ¿esto hace que a una persona de 75 años le resulte más fácil, o solo hace que el proyecto se vea mejor?
Una app propia habría significado enseñar a instalarla, actualizarla y entrar. Meterse en un chat que la persona ya tiene abierto elimina toda esa barrera de una sola vez.
Las preguntas más frecuentes se responden desde un dataset local. Es instantáneo, no falla si se cae la API y garantiza que la respuesta a «¿cómo agrando la letra?» sea siempre la buena.
Clasificar la intención con un modelo chico y responder con uno grande abarata cada mensaje y baja la latencia. Lo que se nota del otro lado es que AIDA contesta rápido.
Si el análisis detecta frustración o tristeza, se ajusta cómo se dice la respuesta, no qué se responde. La idea es acompañar, no cambiar la información según el humor.
Cada capacidad vive en su propio módulo con una interfaz mínima. Cambiar el proveedor de voz o el modelo de visión es tocar un archivo, no reescribir el bot.
Si no hay credenciales de Firebase, los perfiles se guardan en un JSON local. El asistente arranca igual, y eso hace que probar y desarrollar no dependa de la nube.
Honestidad técnica
El repositorio del bot es privado por ahora, así que no hay código público para revisar. Si te interesa el detalle de la implementación o querés conversar sobre el proyecto, escribinos y con gusto lo charlamos.