Amazon Bedrock

本站(springdoc.cn)中的内容来源于 spring.io ,原始版权归属于 spring.io。由 springdoc.cn 进行翻译,整理。可供个人学习、研究,未经许可,不得进行任何转载、商用或与之相关的行为。 商标声明:Spring 是 Pivotal Software, Inc. 在美国以及其他国家的商标。

遵循 Bedrock 最佳实践,Spring AI 现已全面采用 Amazon Bedrock 的 Converse API 实现聊天对话功能。该 API 具备以下核心优势:

  • 统一接口:编写一次代码即可适配所有支持的 Amazon Bedrock 模型

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

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

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

  • 多模态能力:内置视觉等多模态功能支持

  • 面向未来:与亚马逊 Bedrock 推荐的最佳实践保持一致

由于 Converse API 不支持嵌入操作,现有 API 中的嵌入模型功能将继续通过 InvokeModel API 维护。

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

Spring AI 通过实现 Spring EmbeddingModel 接口,支持 Amazon Bedrock 提供的嵌入 AI 模型

此外,Spring AI 为所有 Bedrock 模型提供 Spring 自动配置和 Boot Starter 支持,简化了初始化和配置流程。

入门

入门需完成以下几个步骤:

  • 在项目中添加 Bedrock 的 Spring Boot Starter 依赖。

  • 获取 AWS 凭证:若你尚未配置 AWS 账户和 AWS CLI,可通过视频指南 4分钟快速配置AWS CLI & SDK 完成设置。你将能获取访问密钥和安全密钥。

  • 启用需使用的模型:登录 Amazon Bedrock,通过左侧 Model Access 菜单配置目标模型的访问权限。

项目依赖

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

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

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

dependencies {
    implementation 'org.springframework.ai:spring-ai-starter-model-bedrock'
}
参考 依赖管理 章节,将 Spring AI BOM 添加到构建文件。

连接到 AWS Bedrock

通过 BedrockAwsConnectionProperties 配置 AWS 凭证及区域(region):

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 凭证按以下优先级解析:

  1. Spring-AI 专属配置:通过 spring.ai.bedrock.aws.access-keyspring.ai.bedrock.aws.secret-key 属性设置。

  2. Java 系统属性:aws.accessKeyIdaws.secretAccessKey

  3. 环境变量:AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY

  4. 系统属性或环境变量中的 Web Identity Token 凭证。

  5. CAWS SDK 与 CLI 共享的默认凭证文件(~/.aws/credentials)。

  6. AWS_CONTAINER_CREDENTIALS_RELATIVE_URI 环境变量已设置且安全管理器(Security Manager)有权访问时,通过 Amazon EC2 容器服务交付的凭证。

  7. 通过 Amazon EC2 元数据服务提供的实例配置文件凭证,或设置 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 环境变量。

AWS region(区域)按以下优先级解析:

  1. Spring-AI 专属配置:spring.ai.bedrock.aws.region 属性。

  2. Java 系统属性 - aws.region

  3. 环境变量 - AWS_REGION

  4. AWS SDK 与 CLI 共享的默认凭证文件(~/.aws/credentials)。

  5. 通过 Amazon EC2 元数据服务交付的实例配置文件区域。

除标准 Spring-AI Bedrock 凭证与 region 属性配置外,还支持自定义 AwsCredentialsProviderAwsRegionProvider Bean。

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

启用选定的 Bedrock 模型

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

以下是支持的模型:

模型

cohere

titan (暂不支持批处理)

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

接下来,可通过 spring.ai.bedrock.<model>.embedding.* 属性分别配置各模型参数。

更多细节请参阅下文各支持模型的专属文档。