Almacenar embeddings vectoriales en archivos de vídeo
Un proyecto que convierte documentos a vídeo .avi usando el códec FFV1 (sin pérdida) y almacena los embeddings semánticos y un índice estructurado dentro del vídeo. Permite tener documentos auto-contenidos con su índice vectorial para búsqueda semántica.
Mensaje original
¡Hola comunidad! 🌟
Les comparto un proyecto que desarrollé inspirado en MemVid (https://github.com/Olow304/memvid) pero con una idea adicional: almacenar el índice de embeddings vectoriales directamente dentro del vídeo 🎥. ¿Cómo funciona?
---
🔍¿Qué hace este proyecto?*
1. Convierte documentos (PDF, TXT, DOCX) en un archivo de vídeo `.avi` usando un códec sin pérdida (`FFV1`).
2. Guarda no solo el texto fragmentado, sino también sus embeddings semánticos y un índice estructurado dentro del propio vídeo.
3. Usa Google Gemini API para responder preguntas basándose en los fragmentos más relevantes (RAG).
💡 Innovaciones clave vs. MemVid
- Índice dentro del vídeo:
A diferencia de MemVid, aquí el índice de embeddings y metadatos se almacena en frames iniciales del vídeo, permitiendo búsquedas semánticas sin archivos externos.
- Formato AVI:
Se usa `.avi` en lugar de `.mp4` porque no comprime datos (códec `FFV1`), evitando corrupción de embeddings o texto.
- Chat RAG integrado:
Genera respuestas contextualizadas con Gemini API, algo que MemVid no incluye por defecto.
---
### 🚀 ¿Cómo probarlo?
1. Agrega tu clave de Gemini API en las "Secrets" de Google Colab.
2. Ejecuta las celdas paso a paso (¡reinicia el entorno una vez después de instalar dependencias!).
3. Sube tus documentos a la carpeta `documentos/` y haz preguntas sobre su contenido.
---
🧠 ¿Por qué AVI y no MP4?
Porque MP4 (H.264) comprime datos con pérdida, lo que podría alterar los embeddings o fragmentos guardados en el vídeo. AVI con FFV1 asegura integridad: cada byte escrito es igual al leído.
---
⚠️ Advertencias y consejos
- Reinicia el entorno una sola vez tras instalar dependencias.
- Si el vídeo no se reproduce, es normal: no es un archivo multimedia, ¡es una base de datos! Usa OpenCV o herramientas propias para acceder a los datos.
- Créditos a MemVid por la idea original de usar vídeo como memoria. Mi aporte fue integrar el índice y el chat RAG.
¿Qué les parece esta combinación entre almacenamiento estructurado y generación de respuestas con IA? ¿Tienen ideas para mejorarlo? 😊
*(Basado en técnicas de optimización de dependencias y RAG de proyectos como MemVid)*
https://colab.research.google.com/drive/1GncaW8xz7XE5ClVRd95LA_apYV4nVHq6?usp=sharing
