DocArray 是一个用于解决、传输和存储多模态数据的 Python 工具包。DocArray 提供便捷的多模态数据处理性能,具备基于 Protobuf 提供高性能的网络传输性能,同时也为多种向量存储计划提供对立的 API 接口。
💡 DocArray 于 2022 年 1 月在开源 Apache 许可证 2.0 下公布。目前,它是 LF AI \& Data Foundation 下的沙盒我的项目。
🌟 GitHub: https://github.com/docarray
🧑🤝🧑 Discord 社区: https://discord.gg/WaMp6PVPgR
📖 官网文档:https://docarray.jina.ai/
此版本蕴含 3 项新性能,7 项谬误修改和 5 项文档改良。
新性能
📦 OpenSearch 后端存储(#853)
当初 DocArray 减少了一个新的后端存储:OpenSearch!您能够应用 OpenSearch 后端存储对 Document 进行索引,并对它们进行 ANN 搜寻。
from docarray import Document, DocumentArray
import numpy as np
# Connect to OpenSearch instance
n_dim = 3
da = DocumentArray(
storage='opensearch',
config={'n_dim': n_dim},
)
# Index Documents
with da:
da.extend(
[Document(id=f'r{i}', embedding=i * np.ones(n_dim))
for i in range(10)
]
)
# Perform ANN search
np_query = np.ones(n_dim) * 8
results = da.find(np_query, limit=10)
此外,OpenSearch 后端存储还反对 过滤查问 , 按文本搜寻 和 按标签搜寻。无关其用法的更多信息,请参阅 官网文档。
🎨 减少 Point Cloud 显示的色彩(#961)
当初您能够在 point cloud 数据中蕴含色彩信息,能够应用 display_point_cloud_tensor()
可视化:
`coords = np.load(‘a_red_motorbike/coords.npy’)
colors = np.load(‘a_red_motorbike/coord_colors.npy’)
doc = Document(
tensor=coords,
chunks=DocumentArray([Document(tensor=colors, name=’point_cloud_colors’)])
)
doc.display()
`
🌎 反对 Redis 后端存储的多语言文本搜寻(#953)
Redis 后端存储当初反对各种反对的语言的文本搜寻。要设置所需语言,请在 Redis 配置中更改语言参数:
da = DocumentArray(
storage='redis',
config={
'n_dim': 128,
'index_text': True,
'language': 'chinese',
},
)
谬误修改 🐞
1. 用空格替换换行符来修复图像中的显示(#963)
当文档字段中蕴含字符串 '\n'
时,doc.plot()
会导致渲染谬误。这次修复了这些谬误,将 '\n'
渲染为空格。
2. 修改 to_pydantic_model()
中不须要的强制转换(#949)
此谬误导致当调用 to_pydantic_model()
或 to_dict()
时,所有模式为 'Infinity'
的字符串都会被强制转换为字符串 'inf'
。当初曾经修复,这些字符串将保留不变。
3. 在索引上而不是查问上计算相干文档(#950)
在 embed_and_evaluate()
办法中,每个标签的相干文档数量原先是基于 document 本身计算的。这不个别正确,因而在此修复之后,依据索引数据中的文档计算量。
4. 删除列表类型偏移索引创立(#936)
当文档存储禁用了列表行为的性能时,它不再创立 id 映射的偏移量,这进步了性能。
5. 增加对近程音频文件的反对(#933)
从近程 URL 加载音频文件会导致 FileNotFoundError
,当初曾经修复。
6. 查问运算符 $exists
与标签不正确(#911)(#923)
在修复之前,$exists
会将 false-y 值 (如 0
或 []
) 视为不存在。当初曾经修复。
7. 从单例列表中的数据类获取文档(#1018)
当应用 dataclass 创立多模态 Document 时,即便相应字段被正文为 List[...]
,单例的列表也被视为单个元素。当初咱们曾经思考了这种状况,即便对于繁多输出,拜访这样的字段也将是产生 DocumentArray。
文档改良 📗
- 新增 DocArray Discord 社区链接(#1010)
- 缩小版本以防止部署超时(#977)
- 修改数据管理局部在文档中未呈现(#967)
- 在侧边栏中链接到 OpenSearch 文档(#960)
- 将“多模态”批改为“数据类型”(#934)
贡献者 🤟
咱们要感激本次公布的所有贡献者!
- Jay Bhambhani (@jay-bhambhani)
- Alvin Prayuda (@alphinside)
- Johannes Messner (@JohannesMessne)
- samsja (@samsja)
- Marco Luca Sbodio (@marcosbodio)
- Anne Yang (@AnneYang720)
- AlaeddineAbdessalem (@alaeddine-13)
- Han Xiao (@hanxiao)
- Alex Cureton-Griffiths (@alexcg1)
- Charlotte Gerhaher (@anna-charlotte)