news 2026/7/7 19:00:59

44_Spring AI 干货笔记之 Google VertexAI 文本嵌入模型

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
44_Spring AI 干货笔记之 Google VertexAI 文本嵌入模型

一、Google VertexAI 文本嵌入模型

Vertex AI 支持两种类型的嵌入模型:文本嵌入和多模态嵌入。本文档介绍如何使用 Vertex AI 文本嵌入 API 创建文本嵌入。

Vertex AI 文本嵌入 API 使用稠密向量表示。与直接映射单词到数字的稀疏向量不同,稠密向量旨在更好地表示文本的含义。在生成式 AI 中使用稠密向量嵌入的优点是,您可以更好地搜索与查询含义相符的段落,而不仅仅是搜索直接的单词或语法匹配,即使这些段落使用的语言不同。

二、先决条件

安装适用于您操作系统的 gcloud CLI。

通过运行以下命令进行身份验证。请将 <PROJECT_ID> 替换为您的 Google Cloud 项目 ID,将 替换为您的 Google Cloud 用户名。

gcloud configsetproject<PROJECT_ID>&&gcloud auth application-default login<ACCOUNT>

添加仓库和 BOM

Spring AI 的构件发布在 Maven Central 和 Spring Snapshot 仓库中。请参阅 构件仓库 部分,将这些仓库添加到您的构建系统中。

为便于依赖管理,Spring AI 提供了 BOM(物料清单),以确保在整个项目中使用统一版本的 Spring AI。请参阅 依赖管理 部分,将 Spring AI BOM 添加到您的构建系统中。

三、自动配置

Spring AI 的自动配置和启动器模块的构件名称发生了重大变化。更多信息请参阅升级说明。

Spring AI 为 VertexAI 嵌入模型提供了 Spring Boot 自动配置。要启用它,请在项目的 Maven pom.xml 文件中添加以下依赖:

<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-model-vertex-ai-embedding</artifactId></dependency>

或在您的 Gradle build.gradle 构建文件中添加:

dependencies{implementation'org.springframework.ai:spring-ai-starter-model-vertex-ai-embedding'}

请参阅 依赖管理 部分,将 Spring AI BOM 添加到您的构建文件中。

嵌入属性

前缀 spring.ai.vertex.ai.embedding 用作属性前缀,用于连接到 VertexAI 嵌入 API。

现在通过前缀为 spring.ai.model.embedding 的顶级属性来配置嵌入自动配置的启用和禁用。

  • 启用:spring.ai.model.embedding.text=vertexai(默认已启用)

  • 禁用:spring.ai.model.embedding.text=none(或任何与 vertexai 不匹配的值)

此项更改是为了支持配置多个模型。

前缀 spring.ai.vertex.ai.embedding.text 是用于配置 VertexAI 文本嵌入的嵌入模型实现的属性前缀。

四、示例控制器

创建一个新的 Spring Boot 项目,并将 spring-ai-starter-model-vertex-ai-embedding 添加到您的 pom(或 gradle)依赖中。

在 src/main/resources 目录下添加一个 application.properties 文件,以启用和配置 VertexAi 聊天模型:

spring.ai.vertex.ai.embedding.project-id=<YOUR_PROJECT_ID>spring.ai.vertex.ai.embedding.location=<YOUR_PROJECT_LOCATION>spring.ai.vertex.ai.embedding.text.options.model=text-embedding-004

这将创建一个 VertexAiTextEmbeddingModel 实现,您可以将其注入到您的类中。以下是一个使用嵌入模型生成嵌入的简单 @Controller 类示例。

@RestControllerpublicclassEmbeddingController{privatefinalEmbeddingModelembeddingModel;@AutowiredpublicEmbeddingController(EmbeddingModelembeddingModel){this.embeddingModel=embeddingModel;}@GetMapping("/ai/embedding")publicMapembed(@RequestParam(value="message",defaultValue="Tell me a joke")Stringmessage){EmbeddingResponseembeddingResponse=this.embeddingModel.embedForResponse(List.of(message));returnMap.of("embedding",embeddingResponse);}}

五、手动配置

VertexAiTextEmbeddingModel 实现了 EmbeddingModel 接口。

在项目的 Maven pom.xml 文件中添加 spring-ai-vertex-ai-embedding 依赖:

<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-vertex-ai-embedding</artifactId></dependency>

或在您的 Gradle build.gradle 构建文件中添加:

dependencies{implementation'org.springframework.ai:spring-ai-vertex-ai-embedding'}

请参阅依赖管理部分,将 Spring AI BOM 添加到您的构建文件中。

接下来,创建一个 VertexAiTextEmbeddingModel 并使用它进行文本生成:

VertexAiEmbeddingConnectionDetailsconnectionDetails=VertexAiEmbeddingConnectionDetails.builder().projectId(System.getenv(<VERTEX_AI_GEMINI_PROJECT_ID>)).location(System.getenv(<VERTEX_AI_GEMINI_LOCATION>)).build();VertexAiTextEmbeddingOptionsoptions=VertexAiTextEmbeddingOptions.builder().model(VertexAiTextEmbeddingOptions.DEFAULT_MODEL_NAME).build();varembeddingModel=newVertexAiTextEmbeddingModel(this.connectionDetails,this.options);EmbeddingResponseembeddingResponse=this.embeddingModel.embedForResponse(List.of("Hello World","World is big and salvation is near"));

从 Google 服务账户加载凭据

要以编程方式从服务账户 JSON 文件加载 GoogleCredentials,您可以使用以下代码:

GoogleCredentialscredentials=GoogleCredentials.fromStream(<INPUT_STREAM_TO_CREDENTIALS_JSON>).createScoped("https://www.googleapis.com/auth/cloud-platform");credentials.refreshIfExpired();VertexAiEmbeddingConnectionDetailsconnectionDetails=VertexAiEmbeddingConnectionDetails.builder().projectId(System.getenv(<VERTEX_AI_GEMINI_PROJECT_ID>)).location(System.getenv(<VERTEX_AI_GEMINI_LOCATION>)).apiEndpoint(endpoint).predictionServiceSettings(PredictionServiceSettings.newBuilder().setEndpoint(endpoint).setCredentialsProvider(FixedCredentialsProvider.create(credentials)).build());
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 6:46:18

消费级硬件微调210亿参数GPT-20b指南

消费级硬件微调210亿参数GPT-20b指南&#xff1a;开源可控的高性能语言模型实践 在一台只有16GB内存的笔记本上训练一个“类GPT-4”级别的大模型&#xff0c;听起来像天方夜谭&#xff1f;但随着 GPT-OSS-20B 的出现&#xff0c;这已经成为现实。这款由OpenAI开源权重构建的轻…

作者头像 李华
网站建设 2026/7/7 8:20:16

金相显微术诊断PCB三大结构缺陷:微裂纹、孔壁撕裂与镀层空洞

PCB&#xff08;印刷电路板&#xff09;作为电子设备的“骨架”&#xff0c;其内部微观结构的完整性直接决定了电子设备的可靠性与使用寿命。微裂纹、孔壁撕裂、镀层空洞等微观缺陷&#xff0c;往往因尺寸微小&#xff08;多在微米级&#xff09;、隐藏于基材或孔壁内部&#x…

作者头像 李华
网站建设 2026/7/7 11:17:48

MiniCPM-V2.5微调CUDA依赖缺失问题解决

MiniCPM-V2.5微调CUDA依赖缺失问题解决 在使用MiniCPM-V2.5这类基于PyTorch的视觉语言大模型进行微调时&#xff0c;不少开发者会突然被一个看似低级却极其棘手的问题拦住去路&#xff1a;编译失败。尤其是当你启用了DeepSpeed、FusedAdam这类高性能优化器后&#xff0c;终端上…

作者头像 李华
网站建设 2026/7/7 11:58:28

DeepSeek-V2.5本地部署与性能优化全指南

DeepSeek-V2.5本地部署与性能优化全指南&#xff1a;基于PyTorch-CUDA基础镜像的工程化实践 在生成式AI加速落地的今天&#xff0c;大模型正从“能用”走向“好用”。然而&#xff0c;许多团队在尝试将DeepSeek-V2.5这类高性能开源语言模型投入生产环境时&#xff0c;常常遭遇显…

作者头像 李华
网站建设 2026/7/7 18:05:37

Miniconda:轻量级Python环境管理利器

Miniconda&#xff1a;轻量级Python环境管理利器 在人工智能和数据科学项目中&#xff0c;你是否曾遇到这样的场景&#xff1f;运行一个刚从GitHub拉下的模型代码时&#xff0c;报出一连串ModuleNotFoundError&#xff1b;或是升级某个库后&#xff0c;原本正常的项目突然崩溃…

作者头像 李华
网站建设 2026/7/6 17:22:11

必看!2025年AI视频制作优秀服务商推荐

在2025年&#xff0c;AI视频制作的市场蓬勃发展&#xff0c;众多服务商脱颖而出。本文将为您推荐三家值得信赖的顶级AI商业视频服务商&#xff0c;帮助您轻松选择适合的制作方案。通过对比它们的优势和服务特点&#xff0c;无论是企业宣传还是个人项目&#xff0c;都能找到最优…

作者头像 李华