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 - 비디오 기반 AI 메모리 🧠📹

대규모 AI 메모리를 위한 가벼우면서 혁신적인 솔루션

PyPI 버전 라이선스: MIT Python 3.8+ 코드 스타일: black

Memvid는 텍스트 데이터를 비디오로 인코딩하여 초고속 의미 검색을 가능하게 함으로써 AI 메모리 관리를 혁신합니다. 수백만 개의 텍스트 청크에 대해 1초 미만의 검색 시간을 제공합니다. 대량의 RAM과 저장 공간을 소모하는 기존 벡터 데이터베이스와 달리, Memvid는 지식 베이스를 컴팩트한 비디오 파일로 압축하면서도 모든 정보에 즉시 접근할 수 있습니다.

🎥 데모

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

✨ 주요 기능

  • 🎥 비디오 데이터베이스: 수백만 개의 텍스트 청크를 단일 MP4 파일에 저장
  • 🔍 의미 검색: 자연어 쿼리를 사용하여 관련 콘텐츠 찾기
  • 💬 내장 채팅: 컨텍스트 인식 응답이 가능한 대화형 인터페이스
  • 📚 PDF 지원: PDF 문서 직접 임포트 및 인덱싱
  • 🚀 빠른 검색: 대규모 데이터셋에서 1초 미만의 검색 속도
  • 💾 효율적인 저장: 기존 데이터베이스 대비 10배 압축
  • 🔌 플러그형 LLM: OpenAI, Anthropic 또는 로컬 모델과 호환
  • 🌐 오프라인 우선: 비디오 생성 후 인터넷 불필요
  • 🔧 간단한 API: 단 3줄의 코드로 시작 가능

🎯 사용 사례

  • 📖 디지털 도서관: 수천 권의 책을 단일 비디오 파일로 인덱싱
  • 🎓 교육 콘텐츠: 강의 자료를 검색 가능한 비디오 메모리로 변환
  • 📰 뉴스 아카이브: 수년간의 기사를 관리 가능한 비디오 데이터베이스로 압축
  • 💼 기업 지식: 회사 전체 검색 가능한 지식 베이스 구축
  • 🔬 연구 논문: 과학 문헌 전체에 걸친 빠른 의미 검색
  • 📝 개인 노트: 노트를 검색 가능한 AI 어시스턴트로 변환

🚀 Memvid를 선택해야 하는 이유?

혁신적인 기술

  • 비디오 데이터베이스: 수백만 개의 텍스트 청크를 단일 MP4 파일에 저장
  • 즉시 검색: 대규모 데이터셋에서 1초 미만의 의미 검색
  • 10배 저장 효율: 비디오 압축으로 메모리 사용량 극적으로 감소
  • 제로 인프라: 데이터베이스 서버 불필요, 어디든 복사 가능한 파일
  • 오프라인 우선: 비디오 생성 후 완전히 오프라인에서 작동

가벼운 아키텍처

  • 최소 의존성: 핵심 기능을 약 1000줄의 Python 코드로 구현
  • CPU 친화적: GPU 없이도 효율적으로 실행
  • 휴대성: 단일 비디오 파일에 전체 지식 베이스 포함
  • 스트리밍 가능: 클라우드 저장소에서 비디오 스트리밍 가능

📦 설치

빠른 설치

pip install memvid

PDF 지원을 위한 설치

pip install memvid PyPDF2

권장 설정 (가상 환경)

# 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

🎯 빠른 시작

기본 사용법

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)

문서에서 메모리 구축

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
)

고급 검색 및 검색

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)

대화형 채팅 인터페이스

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

file_chat.py로 테스트하기

examples/file_chat.py 스크립트는 Memvid를 자신의 문서로 테스트할 수 있는 포괄적인 방법을 제공합니다:

# 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

완전한 예제: 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

🛠️ 고급 구성

커스텀 임베딩

from sentence_transformers import SentenceTransformer

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

비디오 최적화

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

분산 처리

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

🐛 문제 해결

일반적인 문제

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

LLM API 키 문제

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

대용량 PDF 처리

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

🤝 기여

기여를 환영합니다! 자세한 내용은 기여 가이드를 참조하세요.

# Run tests
pytest tests/

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

# Format code
black memvid/

🆚 기존 솔루션과 비교

기능Memvid벡터 DB전통적 DB
저장 효율성⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
설정 복잡도간단복잡복잡
의미 검색
오프라인 사용
휴대성파일 기반서버 기반서버 기반
확장성수백만수백만수십억
비용무료$$$$$$$

📚 예제

examples/ 디렉토리에서 확인하세요:

  • Wikipedia 덤프에서 메모리 구축
  • 개인 지식 베이스 생성
  • 다국어 지원
  • 실시간 메모리 업데이트
  • 인기 LLM과의 통합

🆘 도움 받기

🔗 링크

📄 라이선스

MIT 라이선스 - 자세한 내용은 LICENSE 파일을 참조하세요.

🙏 감사의 말

Olow304와 Memvid 커뮤니티가 만들었습니다.

다음 기술로 제작되었습니다 ❤️:

Memvid를 더 좋게 만드는 데 기여한 모든 분들께 특별한 감사를 드립니다!


AI 메모리 관리 혁신을 준비하셨나요? Memvid를 설치하고 구축을 시작하세요! 🚀