Last translated: 11 Jun 2025

Translation Not Available Yet

This repository's README hasn't been translated yet. Once translated, it will be easier to read and understand in your native language (中文).

After translating, add the links to README so others can view it directly.

Memvid - Memoria de IA Basada en Video 🧠📹

La solución ligera y revolucionaria para la memoria de IA a gran escala

Versión en PyPI Licencia: MIT Python 3.8+ Estilo de código: black

Memvid revoluciona la gestión de memoria en IA al codificar datos de texto en videos, permitiendo búsquedas semánticas ultrarrápidas a través de millones de fragmentos de texto con tiempos de recuperación inferiores a un segundo. A diferencia de las bases de datos vectoriales tradicionales que consumen grandes cantidades de RAM y almacenamiento, Memvid comprime tu base de conocimiento en archivos de video compactos manteniendo acceso instantáneo a cualquier información.

🎥 Demostración

https://github.com/user-attachments/assets/ec550e93-e9c4-459f-a8a1-46e122b5851e

✨ Características Principales

  • 🎥 Video-como-Base-de-Datos: Almacena millones de fragmentos de texto en un solo archivo MP4
  • 🔍 Búsqueda Semántica: Encuentra contenido relevante usando consultas en lenguaje natural
  • 💬 Chat Integrado: Interfaz conversacional con respuestas conscientes del contexto
  • 📚 Soporte para PDF: Importación e indexación directa de documentos PDF
  • 🚀 Recuperación Rápida: Búsqueda en menos de un segundo en conjuntos de datos masivos
  • 💾 Almacenamiento Eficiente: Compresión 10 veces mayor que bases de datos tradicionales
  • 🔌 LLMs Conectables: Funciona con OpenAI, Anthropic o modelos locales
  • 🌐 Funcionamiento Sin Conexión: No requiere internet después de generar los videos
  • 🔧 API Sencilla: Comienza con solo 3 líneas de código

🎯 Casos de Uso

  • 📖 Bibliotecas Digitales: Indexa miles de libros en un solo archivo de video
  • 🎓 Contenido Educativo: Crea memorias de video buscables de materiales de cursos
  • 📰 Archivos de Noticias: Comprime años de artículos en bases de datos de video manejables
  • 💼 Conocimiento Corporativo: Construye bases de conocimiento buscables para toda la empresa
  • 🔬 Artículos de Investigación: Búsqueda semántica rápida en literatura científica
  • 📝 Notas Personales: Transforma tus notas en un asistente de IA buscable

🚀 ¿Por qué Memvid?

Innovación Revolucionaria

  • Video como Base de Datos: Almacena millones de fragmentos de texto en un solo archivo MP4
  • Recuperación Instantánea: Búsqueda semántica en menos de un segundo en conjuntos masivos
  • Eficiencia 10x en Almacenamiento: La compresión de video reduce drásticamente la huella de memoria
  • Cero Infraestructura: Sin servidores de bases de datos, solo archivos que puedes copiar a cualquier lugar
  • Funcionamiento Sin Conexión: Opera completamente offline una vez generados los videos

Arquitectura Ligera

  • Mínimas Dependencias: Funcionalidad principal en ~1000 líneas de Python
  • Amigable con CPU: Funciona eficientemente sin requerimientos de GPU
  • Portátil: Un solo archivo de video contiene toda tu base de conocimiento
  • Transmisión en Flujo: Los videos pueden transmitirse desde almacenamiento en la nube

📦 Instalación

Instalación Rápida

pip install memvid

Para Soporte de PDF

pip install memvid PyPDF2

Configuración Recomendada (Entorno Virtual)

# Create a new project directory
mkdir my-memvid-project
cd my-memvid-project

# Create virtual environment
python -m venv venv

# Activate it
# On macOS/Linux:
source venv/bin/activate
# On Windows:
venv\Scripts\activate

# Install memvid
pip install memvid

# For PDF support:
pip install PyPDF2

🎯 Inicio Rápido

Uso Básico

from memvid import MemvidEncoder, MemvidChat

# Create video memory from text chunks
chunks = ["Important fact 1", "Important fact 2", "Historical event details"]
encoder = MemvidEncoder()
encoder.add_chunks(chunks)
encoder.build_video("memory.mp4", "memory_index.json")

# Chat with your memory
chat = MemvidChat("memory.mp4", "memory_index.json")
chat.start_session()
response = chat.chat("What do you know about historical events?")
print(response)

Construyendo Memoria desde Documentos

from memvid import MemvidEncoder
import os

# Load documents
encoder = MemvidEncoder(chunk_size=512, overlap=50)

# Add text files
for file in os.listdir("documents"):
    with open(f"documents/{file}", "r") as f:
        encoder.add_text(f.read(), metadata={"source": file})

# Build optimized video
encoder.build_video(
    "knowledge_base.mp4",
    "knowledge_index.json",
    fps=30,  # Higher FPS = more chunks per second
    frame_size=512  # Larger frames = more data per frame
)

Búsqueda y Recuperación Avanzada

from memvid import MemvidRetriever

# Initialize retriever
retriever = MemvidRetriever("knowledge_base.mp4", "knowledge_index.json")

# Semantic search
results = retriever.search("machine learning algorithms", top_k=5)
for chunk, score in results:
    print(f"Score: {score:.3f} | {chunk[:100]}...")

# Get context window
context = retriever.get_context("explain neural networks", max_tokens=2000)
print(context)

Interfaz de Chat Interactivo

from memvid import MemvidInteractive

# Launch interactive chat UI
interactive = MemvidInteractive("knowledge_base.mp4", "knowledge_index.json")
interactive.run()  # Opens web interface at http://localhost:7860

Pruebas con file_chat.py

El script examples/file_chat.py proporciona una forma completa de probar Memvid con tus propios documentos:

# Process a directory of documents
python examples/file_chat.py --input-dir /path/to/documents --provider google

# Process specific files
python examples/file_chat.py --files doc1.txt doc2.pdf --provider openai

# Use H.265 compression (requires Docker)
python examples/file_chat.py --input-dir docs/ --codec h265 --provider google

# Custom chunking for large documents
python examples/file_chat.py --files large.pdf --chunk-size 2048 --overlap 32 --provider google

# Load existing memory
python examples/file_chat.py --load-existing output/my_memory --provider google

Ejemplo Completo: Chat con un Libro PDF

# 1. Create a new directory and set up environment
mkdir book-chat-demo
cd book-chat-demo
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# 2. Install dependencies
pip install memvid PyPDF2

# 3. Create book_chat.py
cat > book_chat.py << 'EOF'
from memvid import MemvidEncoder, chat_with_memory
import os

# Your PDF file
book_pdf = "book.pdf"  # Replace with your PDF path

# Build video memory
encoder = MemvidEncoder()
encoder.add_pdf(book_pdf)
encoder.build_video("book_memory.mp4", "book_index.json")

# Chat with the book
api_key = os.getenv("OPENAI_API_KEY")  # Optional: for AI responses
chat_with_memory("book_memory.mp4", "book_index.json", api_key=api_key)
EOF

# 4. Run it
export OPENAI_API_KEY="your-api-key"  # Optional
python book_chat.py

🛠️ Configuración Avanzada

Incrustaciones Personalizadas

from sentence_transformers import SentenceTransformer

# Use custom embedding model
custom_model = SentenceTransformer('sentence-transformers/all-mpnet-base-v2')
encoder = MemvidEncoder(embedding_model=custom_model)

Optimización de Video

# For maximum compression
encoder.build_video(
    "compressed.mp4",
    "index.json",
    fps=60,  # More frames per second
    frame_size=256,  # Smaller frames
    video_codec='h265',  # Better compression
    crf=28  # Compression quality (lower = better quality)
)

Procesamiento Distribuido

# Process large datasets in parallel
encoder = MemvidEncoder(n_workers=8)
encoder.add_chunks_parallel(massive_chunk_list)

🐛 Solución de Problemas

Problemas Comunes

ModuleNotFoundError: No module named 'memvid'

# Make sure you're using the right Python
which python  # Should show your virtual environment path
# If not, activate your virtual environment:
source venv/bin/activate  # On Windows: venv\Scripts\activate

ImportError: PyPDF2 is required for PDF support

pip install PyPDF2

Problemas con Claves de API de LLM

# Set your API key (get one at https://platform.openai.com)
export GOOGLE_API_KEY="AIzaSyB1-..."  # macOS/Linux
# Or on Windows:
set GOOGLE_API_KEY=AIzaSyB1-...

Procesamiento de PDF Grandes

# For very large PDFs, use smaller chunk sizes
encoder = MemvidEncoder()
encoder.add_pdf("large_book.pdf", chunk_size=400, overlap=50)

🤝 Contribuciones

¡Aceptamos contribuciones! Por favor consulta nuestra Guía de Contribución para detalles.

# Run tests
pytest tests/

# Run with coverage
pytest --cov=memvid tests/

# Format code
black memvid/

🆚 Comparación con Soluciones Tradicionales

CaracterísticaMemvidBases VectorialesBases Tradicionales
Eficiencia de Almacenamiento⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Complejidad de ConfiguraciónSimpleComplejaCompleja
Búsqueda Semántica
Uso Sin Conexión
PortabilidadBasado en archivosBasado en servidorBasado en servidor
EscalabilidadMillonesMillonesBillones
CostoGratis$$$$$$$

📚 Ejemplos

Revisa el directorio examples/ para:

  • Construir memoria desde volcados de Wikipedia
  • Crear una base de conocimiento personal
  • Soporte multi-idioma
  • Actualizaciones de memoria en tiempo real
  • Integración con LLMs populares

🆘 Obteniendo Ayuda

🔗 Enlaces

📄 Licencia

Licencia MIT - ver archivo LICENSE para detalles.

🙏 Agradecimientos

Creado por Olow304 y la comunidad de Memvid.

Construido con ❤️ usando:

  • sentence-transformers - Incrustaciones de última generación para búsqueda semántica
  • OpenCV - Visión por computadora y procesamiento de video
  • qrcode - Generación de códigos QR
  • FAISS - Búsqueda de similitud eficiente
  • PyPDF2 - Extracción de texto de PDF

¡Un agradecimiento especial a todos los contribuyentes que ayudan a mejorar Memvid!


¿Listo para revolucionar tu gestión de memoria en IA? ¡Instala Memvid y comienza a construir! 🚀