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 - Memória Baseada em Vídeo para IA 🧠📹

A solução leve e revolucionária para memória de IA em escala

PyPI version License: MIT Python 3.8+ Code style: black

O Memvid revoluciona o gerenciamento de memória em IA ao codificar dados de texto em vídeos, permitindo busca semântica ultrarrápida em milhões de fragmentos de texto com tempos de recuperação inferiores a um segundo. Ao contrário dos bancos de dados vetoriais tradicionais que consomem grandes quantidades de RAM e armazenamento, o Memvid compacta sua base de conhecimento em arquivos de vídeo compactos, mantendo acesso instantâneo a qualquer informação.

🎥 Demonstração

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

✨ Principais Recursos

  • 🎥 Vídeo como Banco de Dados: Armazene milhões de fragmentos de texto em um único arquivo MP4
  • 🔍 Busca Semântica: Encontre conteúdo relevante usando consultas em linguagem natural
  • 💬 Chat Integrado: Interface conversacional com respostas contextualizadas
  • 📚 Suporte a PDF: Importação e indexação direta de documentos PDF
  • 🚀 Recuperação Rápida: Busca em menos de um segundo em conjuntos de dados massivos
  • 💾 Armazenamento Eficiente: Compressão 10x comparada a bancos de dados tradicionais
  • 🔌 LLMs Plugáveis: Funciona com OpenAI, Anthropic ou modelos locais
  • 🌐 Offline-First: Não requer internet após a geração do vídeo
  • 🔧 API Simples: Comece com apenas 3 linhas de código

🎯 Casos de Uso

  • 📖 Bibliotecas Digitais: Indexe milhares de livros em um único arquivo de vídeo
  • 🎓 Conteúdo Educacional: Crie memórias de vídeo pesquisáveis de materiais didáticos
  • 📰 Arquivos de Notícias: Comprima anos de artigos em bancos de dados de vídeo gerenciáveis
  • 💼 Conhecimento Corporativo: Construa bases de conhecimento pesquisáveis em toda a empresa
  • 🔬 Artigos Científicos: Busca semântica rápida em literatura científica
  • 📝 Notas Pessoais: Transforme suas anotações em um assistente de IA pesquisável

🚀 Por que Memvid?

Inovação Revolucionária

  • Vídeo como Banco de Dados: Armazene milhões de fragmentos de texto em um único arquivo MP4
  • Recuperação Instantânea: Busca semântica em menos de um segundo em conjuntos de dados massivos
  • Eficiência 10x em Armazenamento: Compressão de vídeo reduz drasticamente o uso de memória
  • Infraestrutura Zero: Sem servidores de banco de dados, apenas arquivos que podem ser copiados para qualquer lugar
  • Offline-First: Funciona completamente offline após a geração dos vídeos

Arquitetura Leve

  • Mínimo de Dependências: Funcionalidade principal em ~1000 linhas de Python
  • Amigável à CPU: Executa eficientemente sem requisitos de GPU
  • Portátil: Um único arquivo de vídeo contém toda sua base de conhecimento
  • Streamável: Vídeos podem ser transmitidos a partir de armazenamento em nuvem

📦 Instalação

Instalação Rápida

pip install memvid

Para Suporte a PDF

pip install memvid PyPDF2

Configuração Recomendada (Ambiente 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

🎯 Início 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)

Construindo Memória a partir de 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
)

Busca e Recuperação Avançadas

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)

Interface de Chat Interativa

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

Testando com file_chat.py

O script examples/file_chat.py fornece uma maneira abrangente de testar o Memvid com seus próprios 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

Exemplo Completo: Chat com um Livro em 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

🛠️ Configuração Avançada

Embeddings Personalizados

from sentence_transformers import SentenceTransformer

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

Otimização de Vídeo

# 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)
)

Processamento Distribuído

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

🐛 Solução de Problemas

Problemas Comuns

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 com Chave de API 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-...

Processamento de PDFs Grandes

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

🤝 Contribuindo

Aceitamos contribuições! Consulte nosso Guia de Contribuição para detalhes.

# Run tests
pytest tests/

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

# Format code
black memvid/

🆚 Comparação com Soluções Tradicionais

RecursoMemvidBancos VetoriaisBancos Tradicionais
Eficiência de Armazenamento⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Complexidade de ConfiguraçãoSimplesComplexaComplexa
Busca Semântica
Uso Offline
PortabilidadeBaseada em arquivoBaseada em servidorBaseada em servidor
EscalabilidadeMilhõesMilhõesBilhões
CustoGrátis$$$$$$$

📚 Exemplos

Confira o diretório examples/ para:

  • Construir memória a partir de dumps da Wikipedia
  • Criar uma base de conhecimento pessoal
  • Suporte a múltiplos idiomas
  • Atualizações de memória em tempo real
  • Integração com LLMs populares

🆘 Obtendo Ajuda

🔗 Links

📄 Licença

Licença MIT - consulte o arquivo LICENSE para detalhes.

🙏 Agradecimentos

Criado por Olow304 e pela comunidade Memvid.

Construído com ❤️ usando:

  • sentence-transformers - Embeddings state-of-the-art para busca semântica
  • OpenCV - Visão computacional e processamento de vídeo
  • qrcode - Geração de QR code
  • FAISS - Busca de similaridade eficiente
  • PyPDF2 - Extração de texto de PDF

Agradecimentos especiais a todos os contribuidores que ajudam a melhorar o Memvid!


Pronto para revolucionar seu gerenciamento de memória em IA? Instale o Memvid e comece a construir! 🚀