大家好,我是小米。
今天我一定要和你们分享一个我最近“玩到停不下来”的东西:
Google Vertex AI 的多模态向量模型(Multimodal Embedding)整合进 SpringAI。
你有没有这种感觉:
明明我们已经用文本向量模型玩得飞起,做语义搜索、做相似度匹配、做推荐算法……结果这时候突然有人告诉你:
“兄弟,别只盯着文本了,世界是多模态的,图像、文本、音频、视频都能一起理解!”
这不就像你刚学会炒酸菜鱼,突然有人告诉你还能一锅端火锅、烤肉、炒粉丝一样震撼吗?
于是,我开始探索 Google 的多模态嵌入模型 Vertex AI Multimodal Embeddings,再配合 SpringAI 的自带自动配置……
简直不要太爽。今天我们就一起来把它彻底讲明白!
Vertex AI 多模态嵌入 API 是个啥?如果你用过 OpenAI 的 CLIP、Google 的 PaLM Embedding、或 Cohere 的 multimodal 模型,那你已经对“多模态 Embedding”不陌生了。
但 Google 的 Vertex AI Multimodal Embeddings 最大的特点是:
一个模型,同时支持文本 + 图像输入,生成统一向量空间 Embedding
也就是说:
你可以让模型把图片转成 embedding
也可以把文本转成 embedding
甚至可以让它把文本和图像一起输入,生成带语义理解的混合向量
比如:
给模型一张猫的图片,让它输出 1408 维向量
然后给它一句话 “一只窝在沙发上的橘猫”,也会输出 1408 维向量
你还能用向量相似度判断图片和文本是不是描述同一个东西(比如在图像搜索、内容检索中超常用)
这就是 统一模态向量空间(UNIFIED space) 的魅力。而 SpringAI 已经把它封装得非常丝滑,只需要几行配置即可调用。
先决条件(Prerequisites)要顺利使用 SpringAI + Vertex AI,你至少需要准备这些:
1. 一个 Google Cloud 项目
必须提前启用 Vertex AI API。
2. 在 Google Cloud 上创建服务账号
并下载 JSON 密钥文件。
3. 给这个服务账号绑定至少以下权限
Vertex AI User
Storage Object Viewer(如果你要从 GCS 读取图片)
4. 你的 Spring Boot 项目版本
建议:
Spring Boot >= 3.2
SpringAI >= 1.0+
因为 SpringAI 从 1.0 起就内置了 Vertex AI 支持。
5. 配置 GOOGLE_APPLICATION_CREDENTIALS
例如:
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/service-account.json
这些准备好后,下面就可以开干了!
添加存储库和 BOM在你的 pom.xml 中添加 SpringAI 的 BOM 和依赖:

加上这些,你就可以在 Spring 中用 VertexAiEmbeddingModel 和 VertexAiMultimodalEmbeddingModel。
自动配置(Auto Configuration)SpringAI 的精髓就在于 —— 自动配置!
当你把下面这些 application.yml 配好:

然后只要写:

它就能直接拿来用了!
不用你创建 client
不用你写 Builder
不用你写工厂方法
不用你管理 token
不用你处理 endpoint
是不是超级爽?
Embedding 属性SpringAI 对 Vertex AI 的 Embedding 相关属性做了一层非常贴心的封装,我们来看看有哪些配置可调。
1. vertex.ai.embedding 属性

这些是专门给“文本 embedding(Text Embedding)”用的。
2. vertex.ai.embedding.multimodal 属性
多模态版的配置更丰富:

配好这些,SpringAI 就会自动给你注入一个:
VertexAiMultimodalEmbeddingModel
这个模型能一次性处理文本和图像!
手动配置(VertexAiMultimodalEmbeddingModel)有时候你想完全控制模型,比如调整 Client、配置超时、修改 endpoint,那么就需要手动创建 Bean。
下面给你一个典型示例:

你只需要注入就能用了:

然后直接生成 embedding:

是不是非常丝滑?
写在最后:多模态未来已来为什么我这么兴奋地分享 Vertex AI 的多模态向量模型?因为这意味着:
图像搜索可以变得更聪明
内容审核更准确
以图搜文、以文搜图变得简单
推荐系统可以跨文本和图像理解用户喜好
私有化部署也可以使用多模态能力
和 Spring 配合之后真的开发效率爆表
以前我们做向量搜索还只能靠文本,现在我们终于可以拥抱:
“让模型理解世界的更多维度”
作为一个喜欢折腾的程序员,我觉得未来的系统不会只处理文本,一定会是:
文本
图像
视频
语音
结构化数据
而 SpringAI 把这种能力做得够优雅、够顺滑、够 Java,让人完全不想回头用原生 SDK。
END如果你是想在公司里构建私有向量库、图像检索系统、AI 搜索引擎、多模态知识库……
强烈建议马上试试 Vertex AI Multimodal Embedding + SpringAI。