欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > 基于视频的 AI 内存库,极速语义检索

基于视频的 AI 内存库,极速语义检索

2025/6/18 16:34:26 来源:https://blog.csdn.net/weixin_62828995/article/details/148684780  浏览:    关键词:基于视频的 AI 内存库,极速语义检索

简介

在大模型应用里,将文本数据分块嵌入存储在向量数据库已经是标准做法。然而,传统向量数据库虽然功能强大,但其高昂的RAM和存储需求,以及复杂的部署运维,常常让开发者望而却步。今天,介绍一个名为 Memvid 的开源项目,它提出了一个有趣的思路将文本数据巧妙地“存入”视频文件,完成信息的高效检索。

Memvid是一种革命性的视频化AI记忆库,它通过将文本数据压缩成MP4格式的视频,实现在数百万文本块中进行极速语义搜索。传统的向量数据库需要大量的RAM和存储空间,而Memvid则通过视频文件高效压缩数据,极大地降低了存储需求,同时保留了秒级检索速度。它将AI的记忆管理从传统的数据库模式转变为视频化存储,改变了大规模AI记忆管理的方式。这意味着,你不再需要依赖庞大而昂贵的数据库服务器,只需管理普通的视频文件即可,并且这也让离线部署更轻量化。


它一次性解决传统文本存储的三大痛点:存储冗余、检索延迟和网络依赖,具备以下的显著优势:

  • 极致存储效率 :利用视频压缩技术,存储空间可比传统方案节省高达10倍。
  • 闪电语义搜索 :归功于预计算的语义索引和视频帧的快速跳转能力。
  • 零基建,离线优先 :知识库就是视频和索引文件,易于分发,生成后即可完全离线运行。

📦 安装

安装需先安装 zbar 依赖,提供了编码、聊天、检索等功能,性能方面随数据集增大,编码时间增长,搜索时间和存储占用合理,还支持自定义嵌入、视频优化等高级配置。

快速安装

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 secondframe_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 进行测试

该脚本提供了一种使用您自己的文档测试 Memvid 的全面方法:examples/file_chat.py

# 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 secondframe_size=256,  # Smaller framesvideo_codec='h265',  # Better compressioncrf=28  # Compression quality (lower = better quality)
)

分布式处理

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

🐛 故障 排除

常见问题

ModuleNotFoundError:没有名为 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: PDF 支持需要 PyPDF2

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)

参考文章

Olow304/memvid: 基于视频的 AI 内存库。通过闪电般的快速语义搜索将数百万个文本块存储在 MP4 文件中。无需数据库。
Memvid - Video-Based AI Memory ,使用视频代替数据库,Memvid让AI记忆更高效、存储更节省
Memvid:把你的文档库变成一个小巧的视频,还能瞬间搜出你想要的! - 文章 - 开发者社区 - 火山引擎
GitHub 1.5k Star!视频秒变数据库:你的AI视频记忆库,知识不再丢失! - 知乎

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词