使用springAI实现图片相识度搜索

embedded/2025/2/12 15:25:49/

类似的功能:淘宝拍照识别商品。图片相识度匹配

实现方式:其实很简单,用springai 将图片转换为向量数据,然后搜索就是先把需要搜索的图片转位向量再用向量数据去向量数据库搜索

但是springai现在不支持多模态嵌入数据库。做了一些小扩展

直接上代码:lancabbage/spring-ai-image-search

重写嵌入模型转向量方法

MutimodeDashScopeApi:重写嵌入模型

 核心方法:

参考文档如何使用Multimodal-Embedding API_大模型服务平台百炼(Model Studio)-阿里云帮助中心

MutimodeDocument: 由于目前springai Document不支持多模态数据,源码中只取了content

MutimodelEmbeddingRequest:请求参数

MutimodeMilvusVectorStore:也是Document 只取content,MutimodeDocument重写了content方法所以这里只能调用另外一个方法


 

效果:

现在大模型的接入大大降低了,AI应用开发上的门槛。像自然语言对话、图片文档的理解总结、自然语言调用。这些看似简单的功能如果让我们这种普通的程序员想要开发出来简直太难了

现在有了大模型,这些都是最基础的功能。

而现在使用嵌入模型可以把私有数据转成向量数据,这个向量数据可以说是AI数据结构,你可以把你自己私有化的数据转成向量数据,像图片检索、文本相识度检索(这可就不是关键字匹配了)


http://www.ppmy.cn/embedded/161623.html

相关文章

(14)gdb 笔记(7):以日志记录的方式来调试多进程多线程程序,linux 命令 tail -f 实时跟踪日志

(44)以日志记录的方式来调试多进程多线程程序 : 这是老师的日志文件,可以用来模仿的模板: (45)实时追踪日志的 tail -f 命令: (46) 多种调试方法结合起来用 …

Ajax:重塑Web交互体验的人性化探索

在数字化时代,网页的交互性和响应速度已成为衡量用户体验的关键指标。Ajax(Asynchronous JavaScript and XML),作为前端与后端沟通的桥梁,凭借其异步通信的能力,极大地提升了网页的动态性和用户友好度&…

使用 DeepSeek 进行图像描述:多模态 AI 技术实践

使用 DeepSeek 进行图像描述:多模态 AI 技术实践 背景介绍 在当今的人工智能领域,多模态技术正在rapidly发展,为图像理解和描述提供了前所未有的可能性。本文将详细介绍如何使用 DeepSeek 的多模态模型来实现图像智能描述。 技术原理 多模…

【Spring】什么是Spring?

什么是Spring? Spring是一个开源的轻量级框架,是为了简化企业级开发而设计的。我们通常讲的Spring一般指的是Spring Framework。Spring的核心是控制反转(IoC-Inversion of Control)和面向切面编程(AOP-Aspect-Oriented Programming)。这些功能使得开发者…

洛谷P9584 「MXOI Round 1」城市

洛谷题目传送门 题目描述 小 C 是 F 国的总统,尽管这个国家仅存在于网络游戏中,但他确实是这个国家的总统。 F 国由 n 个城市构成,这 n 个城市之间由 n−1 条双向道路互相连接。保证从任意一个城市出发,都能通过这 n−1 条双向…

kbengine服务器和 数据库 系统路径配置

一、服务器 系统路径配置 二、mysql5.7.44 系统路径配置 mysql 压缩包安装方式 解压压缩包,将解压路径加入 系统环境。 或者 系统变量新增 变量名:MYSQL_HOME 变量值:C:\MyPrograms\mysql-8.0.12-winx64修改系统变量的 path 变量&#xff…

数据结构——红黑树的实现

目录 1 红黑树的概念 1.1 红黑树的规则 1.2 红黑树是如何确保最长路径不超过最短路径的2倍的? 1.3 红黑树的效率 2 红黑树的实现 2.1 红黑树的结构 2.2 红黑树的插入 2.2.1 红黑树插入节点的大概过程 2.2.2 情况1:只变色,不旋转 2.2.3 情况…

Linux:线程的互斥与同步

一、买票的线程安全 大部分情况,线程使用的数据都是局部变量,变量的地址空间在线程栈空间内,这种情况,变量归属单个线程,其他线程无法获得这种变量。 但有时候,很多变量都需要在线程间共享,这样…