DocArray 开源项目教程
项目介绍
DocArray 是一个专门为多模态数据表示、传输、存储和检索而设计的 Python 库。它旨在支持多模态 AI 应用的开发,并保证与广泛的 Python 和机器学习生态系统的无缝集成。DocArray 提供了对 NumPy、PyTorch、TensorFlow 和 JAX 的原生支持,特别适用于模型训练场景。此外,它基于 Pydantic,并立即兼容 FastAPI 等 Web 和微服务框架。
项目快速启动
安装 DocArray
要安装 DocArray,请在命令行中运行以下命令:
pip install -U docarray
基本使用示例
以下是一个简单的示例,展示如何使用 DocArray 创建和查询文档:
from docarray import DocList, BaseDoc
from docarray.index import HnswDocumentIndex
import numpy as np
from docarray.typing import ImageUrl, ImageTensor, NdArray
class ImageDoc(BaseDoc):
url: ImageUrl
tensor: ImageTensor
embedding: NdArray[128]
# 创建一些数据
dl = DocList[ImageDoc](
[
ImageDoc(
url="https://upload.wikimedia.org/wikipedia/commons/2/2f/Alpamayo.jpg",
tensor=np.zeros((3, 224, 224)),
embedding=np.random.random((128,))
)
for _ in range(100)
]
)
# 创建一个文档索引
index = HnswDocumentIndex[ImageDoc](work_dir='/tmp/test_index2')
# 索引你的数据
index.index(dl)
# 查找相似的文档
query = np.random.random((128,))
results = index.find(query, search_field='embedding')
应用案例和最佳实践
多模态数据检索
DocArray 特别适用于多模态数据的检索。例如,你可以将图像、文本和其他类型的数据存储在同一个索引中,并使用向量相似性搜索来检索相关文档。
模型训练
DocArray 支持多种机器学习框架,如 PyTorch 和 TensorFlow,可以直接在模型训练中使用。你可以将数据加载到 DocArray 中,然后将其传递给训练循环。
典型生态项目
FastAPI 集成
DocArray 与 FastAPI 无缝集成,可以轻松构建支持多模态数据检索的 Web 服务。
向量数据库集成
DocArray 支持多种向量数据库,如 Weaviate、Qdrant、ElasticSearch 和 Redis。你可以选择最适合你应用的向量数据库后端。
通过以上内容,你可以快速了解并开始使用 DocArray 开源项目。希望这个教程对你有所帮助!