31_Spring AI 干货笔记之嵌入模型 Amazon Bedrock

一、Amazon Bedrock

根据 Bedrock 的建议,Spring AI 已过渡到使用 Amazon Bedrock 的 Converse API 来实现 Spring AI 中的所有聊天对话功能。Bedrock Converse API 具有以下主要优势:

  • 统一接口: 编写一次代码,即可用于任何受支持的 Amazon Bedrock 模型

  • 模型灵活性: 无需更改代码即可在不同对话模型之间无缝切换

  • 扩展功能: 通过专用结构支持特定于模型的参数

  • 工具支持: 原生集成函数调用和工具使用能力

  • 多模态能力: 内置支持视觉和其他多模态功能

  • 面向未来: 符合 Amazon Bedrock 推荐的最佳实践

Converse API 不支持嵌入操作,因此这些操作将保留在当前 API 中,并且现有 InvokeModel API 中的嵌入模型功能将保持不变。

Amazon Bedrock 是一项托管服务,它通过统一的 API 提供来自多个 AI 提供商的基础模型。

Spring AI 通过实现 Spring EmbeddingModel 接口,支持可通过 Amazon Bedrock 使用的 嵌入 AI 模型

此外,Spring AI 为所有客户端提供 Spring 自动配置和 Boot Starter,使得为 Bedrock 模型进行引导和配置变得简单。

二、开始使用

开始使用有几个步骤:

  • 将适用于 Bedrock 的 Spring Boot starter 添加到您的项目中。

  • 获取 AWS 凭证:如果您还没有 AWS 账户和配置好的 AWS CLI,此视频指南 可以帮助您配置:在 4 分钟内完成 AWS CLI 和 SDK 设置!。您应该能够获取您的访问密钥和安全密钥。

  • 启用要使用的模型:转到 Amazon Bedrock,从左侧的 模型访问 菜单中,配置对您将使用的模型的访问权限。

2.1 项目依赖项

然后,将 Spring Boot Starter 依赖项添加到项目的 Maven pom.xml 构建文件中:

xml 复制代码
<dependency>
    <artifactId>spring-ai-starter-model-bedrock</artifactId>
    <groupId>org.springframework.ai</groupId>
</dependency>

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

groovy 复制代码
dependencies {
    implementation 'org.springframework.ai:spring-ai-starter-model-bedrock'
}

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

2.2 连接到 AWS Bedrock

使用 BedrockAwsConnectionProperties 来配置 AWS 凭证和区域:

yaml 复制代码
spring.ai.bedrock.aws.region=us-east-1

spring.ai.bedrock.aws.access-key=YOUR_ACCESS_KEY
spring.ai.bedrock.aws.secret-key=YOUR_SECRET_KEY

spring.ai.bedrock.aws.timeout=10m

region 属性是必需的。

AWS 凭证按以下顺序解析:

  • Spring-AI Bedrock 的 spring.ai.bedrock.aws.access-key 和 spring.ai.bedrock.aws.secret-key 属性。

  • Java 系统属性 - aws.accessKeyId 和 aws.secretAccessKey。

  • 环境变量 - AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY。

  • 来自系统属性或环境变量的 Web 身份令牌凭证。

  • 所有 AWS SDK 和 AWS CLI 共享的默认位置(~/.aws/credentials)的凭证配置文件。

  • 如果设置了 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI 环境变量并且安全管理器有权访问该变量,则通过 Amazon EC2 容器服务传递的凭证。

  • 通过 Amazon EC2 元数据服务传递的实例配置文件凭证或设置 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 环境变量。

AWS 区域按以下顺序解析:

  • Spring-AI Bedrock 的 spring.ai.bedrock.aws.region 属性。

  • Java 系统属性 - aws.region。

  • 环境变量 - AWS_REGION。

  • 所有 AWS SDK 和 AWS CLI 共享的默认位置(~/.aws/credentials)的凭证配置文件。

  • 通过 Amazon EC2 元数据服务传递的实例配置文件区域。

除了标准的 Spring-AI Bedrock 凭证和区域属性配置外,Spring-AI 还支持自定义的 AwsCredentialsProvider 和 AwsRegionProvider bean。

例如,同时使用 Spring-AI 和 Spring Cloud for Amazon Web Services。Spring-AI 与 Spring Cloud for Amazon Web Services 的凭证配置兼容。

2.3 启用选定的 Bedrock 模型

默认情况下,所有模型都是禁用的。您必须使用 spring.ai.bedrock..embedding.enabled=true 属性显式启用所选的 Bedrock 模型。

以下是支持的 值:

例如,要启用 Bedrock Cohere 嵌入模型,您需要设置 spring.ai.bedrock.cohere.embedding.enabled=true。

接下来,您可以使用 spring.ai.bedrock..embedding.* 属性来配置每个模型,如下所述。

更多信息,请参阅下面每个受支持模型的文档。

  • Spring AI Bedrock Cohere 嵌入:spring.ai.bedrock.cohere.embedding.enabled=true

  • Spring AI Bedrock Titan 嵌入:spring.ai.bedrock.titan.embedding.enabled=true

相关推荐
GuWenyue3 分钟前
Cursor黑盒拆解!1套LangChain.js手写Mini编程Agent,自动生成React项目,效率提升60%
前端·数据库·人工智能
GuWenyue3 分钟前
传统Agent工具两大痛点!300行代码落地MCP跨语言工具,彻底解耦LLM与工具
前端·人工智能·算法
老云讲算力市场14 分钟前
WAIC首日观察:国产算力与机器人加速落地,奇点算力迎来产业新机遇
人工智能·科技
小林ixn28 分钟前
大模型随机说话的秘密:Temperature 和 Top K 深度解析,LangChain 实战调优
人工智能·langchain
ALINX技术博客40 分钟前
ALINX 亮相 2026 WAIC 世界人工智能大会,展示 AI 视觉 FPGA+GPU 异构计算与电子后视镜解决方案
人工智能·ai·fpga·世界人工智能大会·电子后视镜
程序员老猫1 小时前
当 AI 能写 80% 的代码时,后端工程师的核心价值还剩什么?
人工智能
想会飞的蒲公英1 小时前
计算机怎样读取中文文本:编码、清洗与标准化
人工智能·python·自然语言处理
CIO_Alliance1 小时前
AI+iPaaS解决方案深度整合:让跨系统业务流程自动化一步到位
人工智能·ipaas·系统集成·ai+ipaas·企业cio联盟·企业级ai化转型
苏州IT威翰德1 小时前
算力资产“续命”专家:苏州威翰德科技赋能NVIDIA高端AI芯片芯片级维修
大数据·人工智能
天上路人2 小时前
A59P双波束语音模块:神经网络降噪在远场拾音中的工程实现分析
人工智能·深度学习·神经网络·ai降噪·ai语音·麦克风·回音消除