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 version License: MIT Python 3.8+ Code style: black

Memvidは、テキストデータをビデオにエンコードすることでAIメモリ管理を革新し、数百万のテキストチャンクをサブ秒で検索可能な超高速セマンティック検索を実現します。大量のRAMとストレージを消費する従来のベクトルデータベースとは異なり、Memvidは知識ベースをコンパクトな動画ファイルに圧縮しながら、あらゆる情報への即時アクセスを維持します。

🎥 デモ

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

✨ 主な特徴

  • 🎥 ビデオをデータベースとして利用: 数百万のテキストチャンクを単一のMP4ファイルに保存
  • 🔍 セマンティック検索: 自然言語クエリを使用して関連コンテンツを検索
  • 💬 組み込みチャット機能: コンテキストを理解した会話型インターフェース
  • 📚 PDFサポート: PDFドキュメントの直接インポートとインデックス作成
  • 🚀 高速検索: 大規模データセットでのサブ秒検索
  • 💾 効率的なストレージ: 従来のデータベース比10倍の圧縮率
  • 🔌 プラグ可能なLLM: OpenAI、Anthropic、ローカルモデルと連携可能
  • 🌐 オフラインファースト: ビデオ生成後はインターネット不要
  • 🔧 シンプルなAPI: たった3行のコードで開始可能

🎯 ユースケース

  • 📖 デジタルライブラリ: 数千冊の本を単一の動画ファイルにインデックス化
  • 🎓 教育コンテンツ: 教材の検索可能なビデオメモリを作成
  • 📰 ニュースアーカイブ: 数年分の記事を管理可能なビデオデータベースに圧縮
  • 💼 企業ナレッジ: 社内全体の検索可能なナレッジベースを構築
  • 🔬 研究論文: 科学文献全体の迅速なセマンティック検索
  • 📝 個人メモ: メモを検索可能なAIアシスタントに変換

🚀 Memvidを選ぶ理由

革新的な技術

  • ビデオをデータベースとして利用: 数百万のテキストチャンクを単一のMP4ファイルに保存
  • 即時検索: 大規模データセットでのサブ秒セマンティック検索
  • 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コミュニティによって作成されました。

❤️を使用して構築:

  • sentence-transformers - セマンティック検索のための最先端エンベディング
  • OpenCV - コンピュータビジョンとビデオ処理
  • qrcode - QRコード生成
  • FAISS - 効率的な類似性検索
  • PyPDF2 - PDFテキスト抽出

Memvidをより良くするために貢献してくださったすべての方々に特別な感謝を!


AIメモリ管理を革新する準備はできましたか?Memvidをインストールして構築を始めましょう! 🚀