DocArray 0.20.0 发布!新增 Milvus 后端支持,更好地嵌套数据搜索,新增 RGB-D 格式的 3D 模型表示...

news2025/1/20 5:53:56

16a0208befb6adcb219324b8368f8f1d.png

DocArray 是一个用于处理、传输和存储多模态数据的 Python 工具包。DocArray 提供便捷的多模态数据处理功能,具备基于 Protobuf 提供高性能的网络传输性能,同时也为多种向量存储方案提供统一的 API 接口。

GitHub:github.com/docarray/docarray

文档:docarray.jina.ai

DocArray 基于 Apache 2.0 License 协议,于 2022 年 1 月正式发布,目前是 LF AI & Data 基金会的沙盒项目。同时,DocArray 也是 Jina 生态使用的通用数据结构。

本次发布新增了对 Milvus 向量数据库的支持,现在可以将 Milvus 作为 DocArray 后端存储;新增了支持在嵌套级别检索 Root document;DocArray 现已支持不同格式的 3D 模型表示,此版本新增了 RGB-D 格式表示的支持;同时新增了对 Qdrant 基于关键字的文本过滤的支持,以及支持加载多页 tiff 图像到chunk等等。

重要新功能

1. 新增 Milvus 后端存储支持

DocArray 现在支持 Milvus 向量数据库作为后端存储。Milvus 提供了高性能的向量搜索和分析功能,并支持大规模地添加、删除、更新和近乎实时的搜索向量。有了 Milvus,DocArray 可以提供更快、更准确的搜索结果。

DocArray 和 Milvus 的集成使得用户可以通过统一熟悉的 DocArray API 就能享受 Milvus 所有的优势。与其他后端存储一样,配置起来非常简单:

da = DocumentArray(storage='milvus', config={'n_dim': 3))

2. 通过 root_id 更好地支持嵌套搜索

在处理嵌套数据时,我们通常在给定的嵌套级别上比较数据,例如视频中的帧,但我们实际需要的返回结果是整个视频。

也就是说,在使用向量数据库时,即使在嵌套级别(例如在 chunk 级别)使用 sub-indices(子索引)进行搜索时,也可以检索 root-document(根文档)。在存储配置中设置root_id=True,就可以启用此功能。

top_level_matches = da.find(query=np.random.rand(512), on='@.[image]', return_root=True)3. 新增 RGB-D 格式的 3D 模型表示

3. 新增 RGB-D 格式的 3D 模型表示

DocArray 已经支持不同格式的 3D 模型表示,这个版本增加了对 RGB-D 格式表示的支持。

doc.load_uris_to_rgbd_tensor()

其它新增功能

 将多页 tiff 文件加载到 Chunk 中

现在通过load_uri_to_image_tensor()可以加载多页 tiff 图像。

d = Document(uri="foo.tiff")
d.load_uri_to_image_tensor()
print(d)
<Document ('id', 'uri', 'chunks') at 7f907d786d6c11ec840a1e008a366d49>
  └─ chunks
     ├─ <Document ('id', 'parent_id', 'granularity', 'tensor') at 7aa4c0ba66cf6c300b7f07fdcbc2fdc8>
     ├─ <Document ('id', 'parent_id', 'granularity', 'tensor') at bc94a3e3ca60352f2e4c9ab1b1bb9c22>
     └─ <Document ('id', 'parent_id', 'granularity', 'tensor') at 36fe0d1daf4442ad6461c619f8bb25b7>

 基于 Qdrant 的文本关键字过滤

filter = {
    'must': [
        {"key": "info", "match": {"text": "shoes"}}
    ]
}

results = da.find(np.random.rand(n_dim), filter=filter)

上面的代码将在所有包含 "shoes" 关键字的 Document 中进行搜索,并返回相应的结果。

 从 uri 加载视频向量时存储关键帧索引

当从 uri 加载视频向量时,会在 Document 的 tags 中存储 key_frame_indices。这样,就可以提取视频中关键帧之间的部分。

d = Document(uri="video.mp4").load_uri_to_video_tensor()
print(d.tags['keyframe_indices'])
[0, 25, 196, ...]

 更好地绘制嵌套和复杂数据的 embedding 图

您现在可以选择在调用 DocumentArray 的方法 plot_embedding()排除哪些元字段,这使得绘制复杂和嵌套数据的 embedding 图变得更加容易。

docs.plot_embeddings(exclude_fields_metas=['chunks'])

 更好地支持信息检索评估

此版本向评估函数增加了 max_rel_per_label 参数,它提供了每个标签的相关文档数,即集合中具有该标签的文档数。

metrics = da.evaluate(['recall_at_k'], max_rel_per_label={i: 1 for i in range(3)})

🐞 bug 修复

 支持独立于类列表行为的长度计算

本次发布中,我们修复了在 DocArray 0.19 版本里引入的 Redis 后端存储的长度计算,使其独立于类列表行为。

 删除有错误赋值的余弦相似度字段

在 Weaviate 的后端存储中,余弦距离不会g再被错误地分配给 cosine_similarity 字段。

 清除存储后重建索引

当调用 _clear_storage 时,就可以重建 Redis 和 Elasticsearch 文档存储的索引。

更多详细信息请点击 https://jina.ai/news/docarray-0-20-update/

📗 文档更新

这一部分主要涉及文档的改进,包括更正文档中的错误描述、修复文档中的链接、修改逻辑顺序以符合博客文章,以及将云支持移动到整合部分。这些更新旨在让文档更加清晰易读,帮助用户更好地了解 DocArray。更多详细信息请访问文档 docarray.jina.ai

🤘 贡献者

在此感谢本次发布的所有贡献者:

  • Delgermurun

  • 杨小燕

  • Anna-charlotte

  • Johannes Messner 

  • Alex Cureton-Griffiths 

  • AlaeddineAbdessalem 

  • 相栋

  • coolmian 

  • Joan Fontanals 

  • 王楠

  • Sami Jaghouar

  • Michael Günther

更多技术文章

📖 Jina AI创始人肖涵博士解读多模态AI的范式变革

🎨 语音生成图像任务|🚀 模型微调神器Finetuner

💨 DocArray + Redis:快到飞起来的推荐系统

😎 Jina AI正式将DocArray捐赠给Linux基金会

05813d1315c600a8e3636c9e4f4e7e0b.png

点击“阅读原文”,即刻了解 DocArray

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/84639.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AU如何为你的人声增加空旷感?

你知道怎么使用AU给你的声音添加延迟效果&#xff0c;让你的声音具有空旷感和弱回声的效果。在这里我们可以使用插件达到这个目的。 在使用模拟延迟插件之前呢&#xff0c;我们可以去创建一个立体声总音轨&#xff0c;创建方式如图&#xff0c;跟着序号走&#xff0c;我们就可以…

CSS -- 06. CSS高阶技巧总结

文章目录CSS高阶技巧1 精灵图(sprites)1.1 为什么使用精灵图1.2 精灵图的使用2 字体图标2.1 字体图标的产生2.2 字体图标的优点2.3 字体图标的下载2.4 字体图标的引入2.5 字体图标的追加3 CSS三角形4 CSS用户界面样式4.1 鼠标样式 cursor4.2 表单的轮廓线4.3 防止拖拽文本域 re…

JAVA毕业设计——基于Springboot+vue的心理咨询管理系统(源代码+数据库)

github代码地址 https://github.com/ynwynw/psychlolgyhealth-public 毕业设计所有选题地址 https://github.com/ynwynw/allProject 基于Springbootvue的心理咨询管理系统(源代码数据库) 一、系统介绍 本项目分为管理员与普通用户两种角色 管理员角色包含以下功能&#xff…

[附源码]Python计算机毕业设计SSM基于Web美食网站设计(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Kotlin标准库函数

Kotlin标准库中包含了几个函数&#xff0c;它们的目的就是可以在对象的上下文中执行代码块。当我们调用该Lambda表达式时&#xff0c;它会形成一个临时的作用域。在该范围内&#xff0c;可以访问不带名称的对象&#xff0c;此类函数称为作用域函数。包括: apply函数let函数run…

Java开发才不到3年,来面试开口要25K,面完连10K都不想给

前言 我的好朋友兼大学同学老左家庭经济情况不错&#xff0c;毕业之后没两年自己存了点钱加上家里的支持&#xff0c;自己在杭州开了一家网络公司。由于公司不是很大所以公司大部分的开发人员都是自己面试的&#xff0c;近期公司发展的不错&#xff0c;打算扩招也面试了不少人。…

[l论文解析]Classifier-Free Diffusion Guidance

paper link&#xff1a;https://openreview.net/pdf?idqw8AKxfYbI 文章目录OverviewWhat problem is addressed in the paper?What is the key to the solution?What is the main contribution?Potential fundamental flaws; how this work can be improved?Content关于 c…

Java 字符串 split 的一个反直觉陷阱

最近生产环境遇到一个奇怪的数组下标越界报错&#xff0c;如下图代码所示&#xff0c;我们可以肯定的是 fieldName 变量不为空&#xff08;不是空字符串&#xff0c;也不是 null&#xff09;&#xff0c;但是代码执行到读取 names[0] 变量的时候&#xff0c;抛出了一个 数组下标…

5G无线技术基础自学系列 | 抗衰落技术

素材来源&#xff1a;《5G无线网络规划与优化》 一边学习一边整理内容&#xff0c;并与大家分享&#xff0c;侵权即删&#xff0c;谢谢支持&#xff01; 附上汇总贴&#xff1a;5G无线技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 无线信道是随机时变信道&#xff0c;信…

【云计算与大数据技术】文件存储格式行式、列式、GFS、HDFS的讲解(图文解释 超详细)

一、分布式文件系统 文件系统最后都需要以一定的格式存储数据文件&#xff0c;常见的文件存储布局有行式存储、列式存储以及混合式存储三种&#xff0c;不同的类别各有其优缺点和适用的场景&#xff0c;在目前的大数据分析系统中&#xff0c;列式存储和混合式存储方案因其特殊…

mysql 数据库设计三大范式

1. 什么是设计范式 设计表的依据&#xff0c;按照范式设计出来的表&#xff0c;不会出现数据的冗余 数据库的设计范式是数据库设计所需要满足的规范&#xff0c;满足这些规范的数据库是简洁的、结构清晰的&#xff1b;反之则是乱七八糟&#xff0c;不仅会给开发人员制造麻烦&a…

大数据面试之Hive常见题目

大数据面试之Hive常见题目 1. Hive的架构 1、重点四个器&#xff1a;解释器&#xff08;SQL Parser&#xff09;、Driver&#xff1a;编译器&#xff08;Compiler&#xff09;&#xff0c;优化器&#xff08;Optimizer&#xff09;&#xff0c;执行器&#xff08;Executor&…

基于Python+Django的在线学习交流平台

在各学校的教学过程中&#xff0c;直播授课管理是一项非常重要的事情。随着计算机多媒体技术的发展和网络的普及&#xff0c;“基于网络的学习模式”正悄无声息的改变着传统的直播学习模式&#xff0c;“基于网络的直播教学平台”的研究和设计也成为教育技术领域的热点课题。采…

BEPUphysicsint定点数3D物理引擎介绍

帧同步的游戏中如果用物理引擎&#xff0c;为了保证不同设备上的结果一致,需要采用定点数来计算迭代游戏过程中的物理运算。也就是我们通常说的定点数物理引擎(确定性物理引擎)。本系列教程给大家详细的讲解如何在你的项目中内置一个确定性物理引擎。确定性物理引擎我们使用git…

es入门(中)

目录 6.Java api 实现es中的文档管理&#xff08;增删改&#xff09; 6.1 java 客户端简单获取数据 6.2结合spring-boot测试文档查询 配置环境 配置类 测试代码结构 简单的查询 对查询的请求设置参数 异步查询 6.4 结合spring-boot测试文档新增 6.5结合spring-boot…

C语言的预处理器无法先展开宏再拼接符号?可以!

背景 最近接到一个需求&#xff0c;要实现一个脚本&#xff0c;能提取.h文件里定义的所有全局变量的值&#xff0c;这些全局变量都是结构体变量&#xff0c;名字是结构体类型名加场景后缀——每个.h对应的场景都是唯一的&#xff0c;所以.h内所有变量名的后缀一致。 我的解决…

线段树详解(包含加法线段树、乘法线段树及区间根号线段树,简单易懂)

同步发表于洛谷梦回江南 这一篇文章我们将对线段树中的常规操作进行详细的讨论。 以下所提到的复杂度如无特殊说明均为时间复杂度。log⁡\loglog 的底数均为 222。 不开 long long 见祖宗&#xff01; 文章目录第一部 普通线段树一、引入二、优化方案三、懒标记&#xff08;l…

[附源码]Python计算机毕业设计电影网站系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

什么是编程的设计模式,史上最全面Java设计模式总结,看完再也不会忘记

文章目录**9.1 工厂方法模式与抽象工厂模式对比#****9.2 简单工厂模式与单例模式对比#****9.3 简单工厂模式与建造者模式对比#****10.1 装饰器模式与代理模式对比#****10.2 装饰器模式与门面模式对比#****10.3 装饰器模式与适配器模式对比#****10.4 适配器模式与代理模式…

人事管理系统--低代码课程的教学实验/实训教学 (①招聘管理)

人事管理系统是信息系统课程中最为常见的教学场景&#xff0c;对于非计算机专业的学生来说&#xff0c;如何使用低代码&#xff0c;甚至是零代码的方式搭建该系统呢&#xff1f;简道云「人事OA管理」应用包含招聘管理、人员入离职管理、考勤管理、会议室预约、物资进销存管理等…