Inspiration
Siempre acabamos con texto, notas, links, audios y PDFs desperdigados y tirados por Whastapp o sucedáneos. Queríamos desarrollar algo que entendiera el contenido de verdad y lo organizara automáticamente sin obligar al usuario a pensar en categorías.
La idea era simple: guardar cosas sin fricción y que el sistema evolucionara con el tiempo, que no sea una simple aplicación de clasificación.
¿Qué hace nuestro proyecto?
Newron es una app de notas inteligente que:
- Acepta texto, enlaces, vídeos de YouTube, audios y archivos.
- Extrae el contenido relevante de cada tipo y genera embeddings semánticos.
- Agrupa automáticamente los contenidos en clústeres evolutivos.
- Ajusta esos clústeres dinámicamente a medida que entra nueva información.
- Separa el uso de la aplicación del procesado mediante BackgraoundTasks. No hay categorías hardcodeadas: los grupos nacen, crecen, se fusionan o desaparecen según el uso real.
Además, el sistema puede funcionar en dos modos: Modo con LangExtract
- Usa un LLM ligero para extraer foco semántico (topic, domain, summary).
- Enriquece el contexto antes de generar el embedding.
- Mejora coherencia semántica en textos ambiguos o muy cortos.
- Sacrifica algo de latencia a cambio de mayor profundidad semántica.
Modo sin LangExtract
- Pipeline determinista y rápido.
- Normalización + keywords por frecuencia + contenido canónico.
- Embeddings directos del contenido limpio.
- Menor latencia, menos puntos de fallo, pero pierde contextualización. Esto nos permite elegir entre mayor profundidad semántica o mayor rendimiento según el entorno.
¿Cómo lo desarrollamos?
Construimos un pipeline modular:
- Ingesta y tipado (text, link, youtube, audio, file).
- Normalización por tipo (resumen web, metadata de YouTube, transcripción de audio, parsing de código, etc.).
- Generación de embeddings (modelo ligero en castellano).
- Clustering incremental con centroides dinámicos.
- Generación automática de etiquetas y descripción del cluster.
- Sistema de merge entre clusters basado en solapamiento semántico.
Optamos por un enfoque lo más ligero posible: menos dependencia de LLMs grandes y más control del pipeline, aunque creemos que el uso de arquitecturas más grandes facilitaría la estabilidad de los resultados.
Retos a los que nos enfrentamos
- Latencia al usar LLMs externos para extracción semántica.
- Mantener coherencia semántica en castellano.
- Evitar que clusters similares se fragmentaran demasiado.
- Ajustar thresholds sin que el sistema se volviera inestable.
- Manejar tipos de contenido muy distintos sin introducir ruido en los embeddings.
Retos de los que estamos orgullosos
- Clustering evolutivo sin categorías predefinidas.
- Pipeline robusto incluso sin LLM externo.
- Capacidad para despliegue "at home".
- Merge automático de clusters similares.
- Soporte real para múltiples formatos (incluyendo código).
Lo que aprendimos
- Los embeddings bien usados pueden hacer mucho sin necesidad de prompts complejos.
- La normalización del contenido es más importante de lo que parece.
- Los sistemas adaptativos necesitan métricas claras o se vuelven caóticos.
- El diseño del threshold es casi tan importante como el modelo de embedding.
Ideas futuras
- Threshold adaptativo por cluster (basado en varianza interna).
- Mejoras en el etiquetado automático sin depender de LLM pesado.
- Feedback del usuario para reforzar o dividir clusters.
- Posiblidad de entrenamiento de modelos basados en proxies.
- Optimización de rendimiento para procesamiento asíncrono completo.
La idea es que Newron no solo agrupe cosas, sino que evolucione contigo.
¿Dónde puedo preguntar si encuentro un problema o tengo dudas?
Podéis contactar a uno de los desarrolladores:
- Mario Casado diez ([email protected])
- Adolfo Fanjul Sánchez ([email protected])
- Antón Canzobre Martínez ([email protected])
- Abel Juncal Suárez ([email protected])
¿Qué licencia tiene Newron?
Newron está bajo la licencia MIT. Elegimos MIT porque es simple, permisiva y facilita la adopción y experimentación, nos deja usar, modificar y distribuir el código sin restricciones complejas, lo que encaja con nuestra idea de mantener el proyecto abierto y flexible.
Built With
- axios
- docker
- expo.io
- fastapi
- langextract
- ollama
- postgresql
- python
- react-native
- sentence-transformers
- typescript
- whisper
Log in or sign up for Devpost to join the conversation.