故事的开始:我为什么会遇上 Vertex AI?
那天,是一个阳光明媚的周三下午。
我在公司写一个内部问答系统,需要用向量搜索来匹配语义最相近的答案。原本打算直接上 OpenAI Embeddings,但老李抬头看了我一眼:“小米,我们用 Google Cloud,全家桶用起来更香。”
于是我去翻了下 Google Cloud 的文档,才发现 Vertex AI 不只是能训练模型、部署模型,它还提供了文本向量模型(Text Embedding Model) 。
这意味着——我不用再训练自己的向量模型了!Google 已经帮我准备好了一切。
于是,开启了我和 Vertex AI Embeddings 的奇妙之旅。
认识一下:什么是 Vertex AI?
简单点讲,Vertex AI 是 Google Cloud 提供的一站式 AI 平台。
它的定位非常明确:
“统一机器学习生命周期,从数据准备、模型训练、部署到推理,统统搞定。”
它包含了以下几大模块:
而我们今天的主角,正是其中的 Embeddings API。
它能把一句话、一段文本变成一串数字,也就是向量,用于语义搜索、推荐、聚类等任务。
Google 文本向量模型:语义的魔法棒
Google 提供的文本向量模型,名字叫做:
textembedding-gecko@001
是不是听起来就有点可爱?
这个模型基于 Google 的大语言模型技术,可以把任意文本转成高维向量(通常是 768 或 1024 维),并且支持多语言。举个例子:
更厉害的是,它可以用来做:
- 语义搜索(semantic search)
- 相似文本检索
- 文本聚类
- 推荐系统
- 知识库匹配(QA 场景)
先决条件:准备好 Google Cloud 环境
要在 Spring AI 中使用 Vertex AI,你需要准备以下东西
下载的凭据文件长这样(部分内容)
添加存储库和 BOM
如果你使用 Spring Boot 3.x,只需要在 pom.xml 中添加 Spring AI 的依赖配置即可。
如果你是用 Gradle:
自动配置:就是这么丝滑!
Spring AI 对 Vertex AI 有完善的自动配置支持。
当你在 application.yml 中配置完必要参数后,它会自动创建 VertexAiTextEmbeddingModel Bean。
是的,不用写一行 Java 代码,Spring Boot 会帮你搞定。
Embedding 属性
下面是 spring.ai.vertex.ai.embedding 相关的主要配置项
embedding.text 属性
Spring AI 提供了 embedding.text 子配置项,方便进一步微调嵌入模型的行为。
示例控制器:从文本到向量只要一行代码
我写了一个简单的控制器,你可以直接拿来跑
运行后访问:
返回结果是一串漂亮的向量
是不是很治愈?
手动配置:如果你想要更细的控制
当然,Spring AI 也支持手动创建 VertexAiTextEmbeddingModel,适合对 Bean 初始化有自定义需求的同学。
这样,你就可以完全掌控模型加载、凭据、区域等配置。
从 Google 服务帐户加载凭据
别忘了,我们的凭据是整个访问的关键。加载方式有三种:
推荐用环境变量或配置文件方式,因为更安全、更容易在容器环境下部署。
结语:一行配置,拥抱 AI 世界
这次体验下来,我最大的感受是:
Spring AI 真的是 AI 工程师的福音。
它把复杂的模型接入、凭据管理、接口调用都封装得干干净净,只留给我们最舒服的“API 级快乐”。
从 Vertex AI 获取文本向量,只需要:
- 下载凭据
- 配置一行 YAML
- 写一行控制器
完事!
再也不用到处拼 URL、调 REST API、写请求签名。Google 提供了世界级的模型,Spring AI 帮你一键接入。
这大概就是所谓的——“站在巨人的肩膀上搞开发”。
END
我把今天讲的核心步骤整理成一句口诀,方便记:
开通 Vertex → 下载凭据 → 配置 YAML → 调用模型 → 输出向量。
希望你今天也能像我一样,在代码世界里,喝上一口“冰可乐般”的丝滑快乐。
如果你喜欢我的分享,记得点个 【在看】 或者 【分享】 吧~
我是小米,一个喜欢分享技术的31岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货!