无代码DIY图像检索

软件环境准备

    可参见《HuggingFists-低代码玩转LLM RAG-准备篇》中的HuggingFists安装及Milvus安装。

流程环境准备

图片准备

  • 进入HuggingFists内置的文件系统,数据源->文件系统->sengee_fs_settings_201
  • 创建Image文件夹
  • 将事先准备的多张相同或不同种类的图片上传到Image目录下。如下图:

HuggingFace账号准备

    HuggingFists系统没有提供内置的Hugging Face账号,所以用户需要先去申请一个Hugging Face账号。用户可通过链接https://Hugging Face.co/join注册账号。注册成功后,通过界面右上角的个人信息->Settings->Access Tokens申请一个专属的访问令牌。

    其次,在HuggingFists右上角的个人信息->个人设置->资源账号中添加一个Hugging Face访问账号。进入资源账号界面后,选择添加资源账号,弹出如下的界面:

    选中Hugging Face类型,并将申请到的访问令牌填充进“访问token”输入框,填充完成后提交,创建成功。

Embedding算法准备

    在HuggingFace网站中搜索支持Image Embedding的模型,如下图。本文选中的模型为radames/blip_image_embeddings。该模型生成的向量的长度为1024,使用Milvus创建向量集合时需将向量字段的长度设置为1024。

向量环境准备

    可参见《HuggingFists-低代码玩转LLM RAG-准备篇》中的添加Milvus数据源何创建Milvus表的相关章节。

图像入库流程构建

    进入流程管理,新建Image-Writer流程。拖拽并配置文件输入、Milvus写出及HuggingFaceImageEmbedding算子构建图像入库流程。

文件输入

    如下图所示,将流程准备阶段创建的存放图片的image文件夹加入文件输入配置。

HuggingFaceImageEmbedding

    为HuggingFace图像嵌入算子设置访问代理、访问账号以及我们在环境准备阶段选好的图嵌入模型。设置内容如下:

Milvus写出

    为Milvus写出算子指定通过前序准备环节创建的数据源milvus和数据表image02。设置HuggingFace图像嵌入算子与image02表字段的映射关系。streamName字段写入image02的name字段;embeddings字段写入image02的embedding字段。

流程执行

    流程构建完毕,点击执行流程。执行结果如下:

    环境准备时,我们准备了3张图片。执行结果看,流程读入了3张图片,并且写入Milvus3条记录,流程被正确运行了。为了验证这种插入检索到有效性,下面我们在构建一个图检索流程。

图像检索流程构建

    新建Image-Reader流程。拖拽并配置文件输入、HuggingFaceImageEmbedding及Milvus读取算子。

文件输入

    配置方式与图像入库流程中的文件输入相同,唯一差别是,这次我们只选择一张图片作为输入。这张图片是以图01作为基础截取了一部分构成的图。我们打算以这张图作为检索条件。

HuggingFaceImageEmbedding

    配置同上

Milvus读取

    为Milvus读取算子指定数据源milvus。编写如下查询语句:

select  *  from image02 where vMatch(embedding, 'L2', '[@{embeddings}]') and consistencyLevel('STRONG') and nProbe(10) limit 5

     由于Milvus本身不支持SQL的访问方式,所以这里使用的是基于开源项目MOQL对Milvus支持的语法格式。上面的SQL语句中使用了@{embeddings}变量,该变量表示上下文变量,上下文变量可以与算子的输入列做绑定映射。HuggingFaceImageEmbedding算子有一个名为embeddings的列输出到Milvus读取算子,故从配置中可以看到,变量embeddings与输入的embeddings列做了映射绑定。运行时,变量会被输入列的值替换掉,从而生成可运行的SQL语句。当输入为多条记录时,每条记录都会驱动一次SQL的生成与检索。

流程执行

    流程构建完毕,点击执行流程。执行结果如下:

    结果我们可以看到,我们插入的3个图片都返回了。这是因为我们的SQL语句写的条件是limit 5,这表示查回与输入图片相似的5张图片。因为数据库就3张图片,所以查询时就都返回了。但我们可以通过结果的idScore列看到,01.png的分值最低,这表示其与输入的图片最相似,而其它图片的相似程度就差了很多。为了能够得到更精准的结果,我们可以在流程里加一个过滤算子,设置一个过滤条件,过滤掉那些明显不相似的图片。比如我们将过滤条件设置为idScore < 100,那么只有01.png这个图片会被筛选到了。

总结

    本文介绍了如何使用HuggingFists工具,一行代码不写,迅速搭建起图片检索系统。除文中介绍的几个算子外,HuggingFists还内置了很多其它功能的算子,对于喜欢DIY的朋友,可以下载一个玩玩看了。

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

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

相关文章

那么多编程语言,我为什么选择了Python?

我为什么选择了Python 目前&#xff0c;Python语言的发展势头在国内国外都是不可阻挡的&#xff0c;Python凭借其简单优雅的语法&#xff0c;强大的生态圈从众多语言中脱颖而出&#xff0c;如今已经是稳坐编程语言排行榜前三的位置&#xff0c;而且在GitHub和IEEE发布的最受欢…

Jenkins使用随笔

1、如果要部署的springboot程序和jenkins在同一台linux上&#xff0c;需要增加一条 export BUILD_IDtomcat_mobile_build_id 如下图&#xff1a; 原因是&#xff1a;jenkins在执行sh脚本的时候&#xff0c;如果脚本中有启动后台进程的情况&#xff0c;例如tomcat的关闭和启动…

C#上位机与欧姆龙PLC的通信11----【再爆肝】上位机应用开发(WPF版)

1、先上图 继上节完成winform版的应用后&#xff0c;今天再爆肝wpf版的&#xff0c;看看看。 可以看到&#xff0c;wpf的确实还是漂亮很多&#xff0c;现在人都喜欢漂亮的&#xff0c;颜值高的&#xff0c;现在是看脸时代&#xff0c;作为软件来说&#xff0c;是交给用户使用的…

Linux之Iptables简易应用

文档形成时期&#xff1a;2009-2024年 和iptables打交道有15年了&#xff0c;经过无数实践后&#xff0c;形成一个简易应用文档。 文档主题是简易应用&#xff0c;所以其原理不详述了。 因软件世界之复杂和个人能力之限&#xff0c;难免疏漏和错误&#xff0c;欢迎指正。 文章目…

C语言理解

目录 计算机语言算法C项目创建C程序框架经典实例 计算机语言 程序是用特殊的编程语言&#xff08;这里是C语言&#xff09;写出来表达如何解决问题的不是用编程语言来和计算机交谈&#xff0c;而是描述要求它如何做事情的过程或方法程序是问题的载体&#xff0c;程序的执行就是…

[足式机器人]Part2 Dr. CAN学习笔记-Advanced控制理论 Ch04-6 线性控制器设计Linear Controller Design

本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-Advanced控制理论 Ch04-6 线性控制器设计Linear Controller Design

跨平台的文件传输协议@windows端服务器的配置@smb协议共享方案@ftp服务器设置

文章目录 abstractrefs ftp server下面是核心步骤FAQ smb server设置方法右键设置共享文件夹查看所有已经共享的文件夹停止某个文件的共享 共享文件夹的访问控制补充匿名访问问题协议相关信息参考android客户端推荐FAQ不同用户文件无法访问 比较和总结其他用户访问smb服务器共享…

【LV12 DAY15 WDT】

WDT简介 看门狗定时器&#xff0c;其主要作用是发生软件故障时可产生复位信号使SOC复位&#xff0c;其本质上是一个计数器。 #include "exynos_4412.h"void delay(unsigned int time){while(time--);}int main(){//设置一级分频//WDT.WTCONWDT.WTCON | (0X4e<&l…

优惠券兑换码生成需求——事务同步回调问题分析

前段时间收到一个优惠券兑换码的需求&#xff1a;管理后台针对一个优惠券发起批量生成兑换码&#xff0c;这些兑换码可以导出分发到各个合作渠道&#xff08;比如&#xff1a;抖音、京东等&#xff09;&#xff0c;用户通过这些渠道获取到兑换码之后&#xff0c;再登录到我司研…

鸿鹄云商B2B2C:JAVA实现的商家间直播带货商城系统概览

【saas云平台】打造全行业全渠道全场景的saas产品&#xff0c;为经营场景提供一体化解决方案&#xff1b;门店经营区域化、网店经营一体化&#xff0c;本地化、全方位、一站式服务&#xff0c;为多门店提供统一运营解决方案&#xff1b;提供丰富多样的营销玩法覆盖所有经营场景…

数据库与低代码:加速开发,提升效率的完美结合

随着技术的不断进步&#xff0c;数据库和低代码开发成为了现代应用程序开发中的两大关键要素。本文将探讨如何通过结合数据库和低代码开发&#xff0c;加速应用程序的开发过程&#xff0c;并提高开发效率和质量。 在过去的几十年中&#xff0c;数据库一直被视为应用程序开发中不…

使用srs_librtmp实现RTMP推流

1、背景 由于项目有需求在一个现有的产品上增加RTMP推流的功能&#xff0c;目前只推视频流。 2、方案选择 由于是在现有的产品上新增功能&#xff0c;那么为了减少总的成本&#xff0c;故选择只动应用软件的来实现需求。 现有的产品中的第三方库比较有限&#xff0c;连个ffmp…

Linux CentOS 7.6安装nginx详细保姆级教程

一、通过wget下载nginx压缩包 1、进入home文件并创建nginx文件夹用来存放nginx压缩包 cd /home //进入home文件夹 mkdir nginx //创建nginx文件夹 cd nginx //进入nginx文件夹2、下载nginx,我这里下载的是Nginx 1.24.0版本&#xff0c;如果要下载新版本可以去官网进行下载:…

回归预测 | Matlab基于SMA+WOA+SFO-LSSVM多输入单输出回归预测

回归预测 | Matlab基于SMAWOASFO-LSSVM多输入单输出回归预测 目录 回归预测 | Matlab基于SMAWOASFO-LSSVM多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 SMAWOASFO-LSSVM回归预测 基于黏菌算法鲸鱼算法向日葵算法优化LSSVM回归预测 其中包含三种改进…

RSIC-V“一芯”学习笔记(一)——概述

考研的文章和资料之后想写的时候再写怕趴 文章目录 一、阶段设计二、环境、开发语言和工具三、最重要的两个观念四、处理器芯片设计五、处理器芯片设计包含很多软件问题六、处理器芯片的评价指标七、复杂系统的构建和维护八、专业世界观九&#xff0c;提问的艺术(提问模板)十、…

Ubuntu下使用Virtual Box中显示没有可用的USB设备

Ubuntu中使用Virtual Box&#xff0c;但是使用到USB时只有USB1.1可以使用&#xff0c;并且提示没有可以使用的USB设备&#xff0c;解决方法如下 下载并安装Vitrual Box提供的功能扩展包 分别点击帮助->关于&#xff0c;查看当前使用的版本进入到Virtual Box官网下载链接根…

vue前端开发自学练习,Props数据传递-类型校验,默认值的设置!

vue前端开发自学练习,Props数据传递-类型校验,默认值的设置&#xff01; 实际上&#xff0c;vue开发框架的时候&#xff0c;充分考虑到了前端开发人员可能会遇到的各种各样的情况&#xff0c;比如大家经常遇到的&#xff0c;数据类型的校验&#xff0c;再比如&#xff0c;默认…

Spring之整合Mybatis底层源码

文章目录 一、整体核心思路1 . 简介2. 整合思路 二、源码分析1. 环境准备2. 源码分析 一、整体核心思路 1 . 简介 有很多框架需要与Spring进行整合&#xff0c;而整合的核心思路就是把其他框架所产生的对象放到Spring容器中&#xff0c;让其成为一个bean。比如Mybatis&#x…

在Colab上测试Mamba

我们在前面的文章介绍了研究人员推出了一种挑战Transformer的新架构Mamba 他们的研究表明&#xff0c;Mamba是一种状态空间模型(SSM)&#xff0c;在不同的模式(如语言、音频和时间序列)中表现出卓越的性能。为了说明这一点&#xff0c;研究人员使用Mamba-3B模型进行了语言建模…

Oladance、南卡、Cleer开放式耳机怎么样?全方位测评大PK!

​开放式耳机作为新兴的音频设备领域中备受欢迎的选择&#xff0c;但市场上琳琅满目的产品汇集了质量千差万别的耳机&#xff0c;其中存在着一些粗制滥造的产品。身为一位音频设备测评博主&#xff0c;我经常收到有关哪个品牌的开放式耳机质量好的疑问。面对市面上众多选择&…