DocArray 开源项目教程

DocArray 开源项目教程

docarrayRepresent, send, store and search multimodal data项目地址:https://gitcode.com/gh_mirrors/do/docarray

项目介绍

DocArray 是一个专门为多模态数据表示、传输、存储和检索而设计的 Python 库。它旨在支持多模态 AI 应用的开发,并保证与广泛的 Python 和机器学习生态系统的无缝集成。DocArray 基于 Pydantic,并立即兼容 FastAPI 等 Web 和微服务框架。它提供对 NumPy、PyTorch、TensorFlow 和 JAX 的原生支持,特别适用于模型训练场景。

项目快速启动

安装 DocArray

首先,你需要安装 DocArray。你可以通过以下命令从命令行安装:

pip install -U 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)

应用案例和最佳实践

多模态数据检索

DocArray 的一个典型应用是多模态数据检索。以下是一个示例,展示如何使用 DocArray 进行向量相似度搜索和过滤:

from docarray import DocumentIndex
import numpy as np

# 创建一个文档索引
doc_index = DocumentIndex(index_file_path='/path/to/index')

# 构建查询
query = (
    doc_index.build_query()  # 获取空查询对象
    .find(query=np.ones(128), search_field='embedding')  # 添加向量相似度搜索
    .filter(filter_query={'price': {'$gte': 2}})  # 添加过滤搜索
    .build()  # 构建查询
)

# 执行查询
retrieved_docs, scores = doc_index.execute_query(query)

典型生态项目

FastAPI 集成

DocArray 可以与 FastAPI 无缝集成,用于构建高性能的 Web 服务。以下是一个简单的 FastAPI 应用示例:

from fastapi import FastAPI
from docarray import DocList, BaseDoc
from docarray.typing import ImageUrl, ImageTensor, NdArray

app = FastAPI()

class ImageDoc(BaseDoc):
    url: ImageUrl
    tensor: ImageTensor
    embedding: NdArray[128]

@app.post("/index")
async def index_documents(docs: DocList[ImageDoc]):
    # 索引文档
    pass

@app.get("/search")
async def search_documents(query: str):
    # 搜索文档
    pass

向量数据库集成

DocArray 支持多种向量数据库,如 Weaviate、Qdrant、ElasticSearch、Redis 和 HNSWLib。以下是一个与 Weaviate 集成的示例:

from docarray import DocumentIndex
from docarray.index import WeaviateDocumentIndex

# 创建一个 Weaviate 文档索引
index = WeaviateDocumentIndex(host='localhost', port=8080)

# 索引和搜索文档
pass

通过这些示例,你可以看到 DocArray 在多模态数据处理和向量数据库集成方面的强大功能。希望这些内容能帮助你快速上手并充分利用 DocArray 的潜力。

docarrayRepresent, send, store and search multimodal data项目地址:https://gitcode.com/gh_mirrors/do/docarray

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈革牧Perry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值