StarlightSearch/EmbedAnything
Highly Performant, Modular, Memory Safe and Production-ready Inference, Ingestion and Indexing built in Rust 🦀
What it solves
EmbedAnything 提供了一个高性能的本地嵌入流水线,简化了将各种数据源(文本、图像、音频、PDF、网站)转换为向量嵌入并流式写入向量数据库的过程。它消除了对 PyTorch 的沉重依赖,降低了内存占用,使云部署更加容易。
How it works
项目使用 Rust 编写,以实现速度和内存安全,采用模块化架构并支持多种后端(Candle、ONNX 和云模型)。它实现了 “Vector Streaming”,通过多线程(MPSC)将文档预处理与模型推理分离,降低延迟,并通过直接将嵌入保存到数据库来防止内存泄漏。
Who it’s for
适用于需要构建 RAG(检索增强生成)流水线的 AI 工程师,想要一种轻量、快速且本地化的方式来生成和索引跨多模态的嵌入,而无需大型机器学习框架的开销。
Highlights
- Multi-modal Support: 支持文本(PDF、MD、TXT)、图像(JPG)、音频(.WAV)和网站。
- Flexible Backends: 支持 Candle(无缝集成 Hugging Face 模型)、ONNX(更快推理)和云 API(如 Cohere)。
- Advanced Chunking: 内置语义分块和后期分块,以更好地保留上下文。
- Vector DB Integration: 提供 Elastic、Weaviate、Pinecone、Qdrant、Milvus、Chroma 等流行数据库的适配器。
- Hardware Acceleration: 支持 GPU 加速以提升性能。