无代码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的朋友,可以下载一个玩玩看了。
相关文章:
无代码DIY图像检索
软件环境准备 可参见《HuggingFists-低代码玩转LLM RAG-准备篇》中的HuggingFists安装及Milvus安装。 流程环境准备 图片准备 进入HuggingFists内置的文件系统,数据源->文件系统->sengee_fs_settings_201创建Image文件夹将事先准备的多张相同或不同种类的图…...
Elasticsearch--Master选举
角色 主节点(active master):一般指的是活跃的主节点,避免负载任务,主节点主要用来管理集群,专用master节点仍将充当协调节点 候选节点(master-eligible nodes):默认具备…...
微服务实战系列之Filter
前言 Filter,又名过滤器,当然不是我们日常中见到的,诸如此类构件: 而应该是微服务中常使用的,诸如此类(图片来自官网,点击可查看原图): 一般用于字符编码转换…...
使用GPT大模型调用工具链
本文特指openai使用sdk的方式调用工具链。 安装openai pip install openai export OPENAI_API_KEY"YOUR OPENAI KEY" 定义工具函数 from openai import OpenAI import jsonclient OpenAI() #工具函数 def get_current_weather(location, unit"fahrenheit&q…...
C语言实现bmp图像底层数据写入与创建
要用C语言实现bmp图像底层数据写入进而创建一张bmp图像,需要对bmp图像文件格式非常了解,如果不太熟悉bmp图像文件格式请先移步bmp图像文件格式超详解 创建bmp图像文件的方式有很多,比如用halcon,用qt,这些都是把已经画…...
基于BP神经网络的定位算法,基于BP神经网络定位预测
目录 摘要 BP神经网络参数设置及各种函数选择 参数设置 训练函数 传递函数 学习函数 性能函数 显示函数 前向网络创建函数 BP神经网络训练窗口详解 训练窗口例样 训练窗口四部详解 基于BP神经网络的定位算法,基于BP神经网络定位预测 代码下载:基于BP神经网络的定位算法,基于…...
Java Http各个请求类型详细介绍
1. 前言 在Spring Boot框架中,HTTP请求类型是构建Web应用程序的重要组成部分。常见的请求类型包括GET、POST、PUT和DELETE,每种类型都有其特定的用途和特点。本文将详细比较这四种请求类型,帮助您在开发过程中做出明智的选择。 2. GET请求…...
python函数装饰器参数统计调用时间和次数
1 python函数装饰器参数统计调用时间和次数 python在函数装饰器外层定义一个函数生成封闭作用域来保存装饰器入参,供装饰器使用。 1.1 装饰器统计调用时间和次数 描述 通过类的可调用实例装饰器来统计函数每次调用时间和总调用时间,以及调用次数。 …...
机器学习之集成学习AdaBoost
概念 AdaBoost(Adaptive Boosting)是一种迭代的集成学习算法,其主要目标是通过组合多个弱学习器来创建一个强大的模型。以下是AdaBoost算法的主要步骤: 初始化样本权重: 为每个训练样本分配相等的权重,通常设为 w i = 1 N w_i = \frac{1}{N} w...
行云部署成长之路 -- 慢 SQL 优化之旅 | 京东云技术团队
当项目的SQL查询慢得像蜗牛爬行时,用户的耐心也在一点点被消耗,作为研发,我们可不想看到这样的事。这篇文章将结合行云部署项目的实践经验,带你走进SQL优化的奇妙世界,一起探索如何让那些龟速的查询飞起来!…...
Windows权限提升
0x01 简介 提权可分为纵向提权与横向提权: 纵向提权:低权限角色获得高权限角色的权限; 横向提权:获取同级别角色的权限。 Windows常用的提权方法有:系统内核溢出漏洞提权、数据库提权、错误的系统配置提权、组策略首…...
win系统搭建Minecraft世界服务器,MC开服教程,小白开服教程
Windows系统搭建我的世界世界服务器,Minecraft开服教程,小白开服教程,MC 1.19.4版本服务器搭建教程。 此教程使用 Mohist 1.19.4 服务端,此服务端支持Forge模组和Bukkit/Spigot/Paper插件,如果需要开其他服务端也可参…...
word2vec中的CBOW和Skip-gram
word2cev简单介绍 Word2Vec是一种用于学习词嵌入(word embeddings)的技术,旨在将单词映射到具有语义关联的连续向量空间。Word2Vec由Google的研究员Tomas Mikolov等人于2013年提出,它通过无监督学习从大规模文本语料库中学习词汇…...
在ios上z-index不起作用问题的总结
最近在维护一个H5老项目时,遇到一个问题,就是在ios上z-index不起作用,在安卓上样式都是好的。 项目的架构组成是vue2.x vux vuex vue-router等 用的UI组件库是vux 在页面中有一个功能点,就是点选择公司列表的时候,会…...
力扣labuladong一刷day59天动态规划
力扣labuladong一刷day59天动态规划 文章目录 力扣labuladong一刷day59天动态规划一、509. 斐波那契数二、322. 零钱兑换 一、509. 斐波那契数 题目链接:https://leetcode.cn/problems/fibonacci-number/description/ 思路:这是非常典型的一道题&#x…...
pyenv环境找不到sqlite:No module named _sqlite3
前言 一般遇到这个问题都在python版本管理或者虚拟环境切换中遇到,主要有两个办法解决,如下: 解决方法1 如果使用的pyenv管理python环境时遇到没有_sqlite3 库,可以将当前pyenv的python环境卸载 pyenv uninstall xxx然后在系统…...
Histone H3K4me2 Antibody, SNAP-Certified™ for CUTRUN
EpiCypher是一家为表观遗传学和染色质生物学研究提供高质量试剂和工具的专业制造商。EpiCypher推出的CUT&RUN级别的Histone H3K4me2 Antibody符合EpiCypher的批次特异性SNAP-CertifiedTM标准,在CUT&RUN中具有特异性和高效的靶点富集。通过SNAP-CUTANA™K-Me…...
我用 Laf 开发了一个非常好用的密码管理工具
【KeePass 密码管理】是一款简单、安全简洁的账号密码管理工具,服务端使用 Laf 云开发,支持指纹验证、FaceID,N 重安全保障,可以随时随地记录我的账号和密码。 写这个小程序之前,在国内市场找了很多密码存储类的 App …...
windows项目部署
文章目录 一、项目部署1.1 先准备好文件1.2安装jdk1.3 配置环境1.4 安装tomcat1.5 MySQL安装本机测试的话:远程连接测试 1.6 项目部署 一、项目部署 1.1 先准备好文件 1.2安装jdk 下一步 下一步 下一步 1.3 配置环境 变量名:JAVA_HOME 变量值:jdk的…...
http首部
1. htttp 报文首部 报文结构为:首部 空行(CRLF)主体 在请求中 http报文首部由请求方法,URI,http版本,首部字段等构成 在响应中:状态码,http版本,首部字段3部分构成 2…...
VHD2VL:破解硬件描述语言转换难题的开源解决方案
VHD2VL:破解硬件描述语言转换难题的开源解决方案 【免费下载链接】vhd2vl 项目地址: https://gitcode.com/gh_mirrors/vh/vhd2vl 在FPGA和ASIC设计领域,技术团队常常面临VHDL与Verilog两种硬件描述语言之间的转换挑战。当项目需要跨语言协作、工…...
如何5分钟掌握N_m3u8DL-RE:流媒体下载终极解决方案
如何5分钟掌握N_m3u8DL-RE:流媒体下载终极解决方案 【免费下载链接】N_m3u8DL-RE Cross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文. 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE …...
从分布式到可分发:大规模软件制品分发架构设计与实践
1. 项目概述:从“分布式”到“可分发”的思维跃迁最近在梳理团队内部的基础设施时,又翻出了distr-sh/distr这个项目。说实话,第一次看到这个仓库名,我下意识地把它归类为又一个“分布式系统”框架。但当我真正点进去,花…...
量子控制中的动态校正门与SCQC几何方法
1. 量子控制中的噪声挑战与动态校正门在超导量子处理器上实现高保真度的量子门操作,最大的障碍来自环境噪声。这些噪声主要分为两类:失谐噪声(δz)和幅度噪声(ϵ)。失谐噪声源于量子比特频率的漂移…...
基于CircuitPython与NeoPixel打造可编程LED亚克力灯牌:从硬件选型到代码实现
1. 项目概述:打造你的专属可编程光之铭牌在创客和电子爱好者的世界里,总有一些项目能完美地融合软件编程的灵活性与硬件制作的实体成就感。今天要分享的,就是这样一个让我爱不释手的小玩意儿:一个基于CircuitPython和NeoPixel的可…...
Arduino与手机蓝牙通信:nRF8001 BLE模块硬件连接与软件配置全解析
1. 项目概述与核心价值如果你手头有一个Arduino项目,想让它和你的手机“说说话”,比如把传感器数据无线传到手机App上显示,或者用手机App远程控制几个LED灯,那么nRF8001这个蓝牙低功耗(BLE)模块绝对是你绕不…...
多智能体强化学习环境PettingZoo:从核心概念到工程实践
1. 项目概述:从零理解PettingZoo如果你正在寻找一个能让你快速上手、高效构建多智能体强化学习(Multi-Agent Reinforcement Learning, MARL)实验环境的工具,那么Farama Foundation旗下的PettingZoo项目,绝对是你绕不开…...
【Clickhouse从入门到精通】第08篇:揭秘ClickHouse为何如此之快——五大设计哲学
上一篇【第07篇】ClickHouse执行引擎架构——Parser、Interpreter与Function体系 下一篇【第09篇】ClickHouse安装部署全攻略——从环境准备到服务启动 摘要 ClickHouse能在十亿行级别数据的聚合查询中实现毫秒级响应,绝非偶然。这种极致性能的背后,是一…...
【最新 v2.7.1 版本安装包】5 分钟搞定 OpenClaw,零基础无需命令一键部署保姆级教学
OpenClaw(小龙虾)Windows 一键部署保姆级教程 | 10 分钟搭建专属数字员工【点击下载最新OpenClaw安装包】 前言 2026 年开源圈热门 AI 智能体 OpenClaw(昵称小龙虾),GitHub 星标突破 28 万,凭借本地运行 …...
如何用Kafka-King轻松管理Kafka集群:5分钟上手完整指南
如何用Kafka-King轻松管理Kafka集群:5分钟上手完整指南 【免费下载链接】Kafka-King A modern and practical kafka GUI client 💕🎉Kafka-King 是一款现代化、实用的 Kafka GUI 客户端,旨在通过直观的桌面界面简化 Apache Kafka …...
