Skip to content
Spring AI 文档版本 2.1.0-SNAPSHOT 源快照 1706ee27 更新于 2026-10-16

Amazon Bedrock

NOTE

遵循 Bedrock 的建议,Spring AI 已转向为 Spring AI 中所有 Chat 对话实现使用 Amazon Bedrock 的 Converse API。 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,这个视频指南能帮你配置:AWS CLI & SDK Setup in Less Than 4 Minutes!。你应能获取到你的访问密钥和安全密钥。
  • 启用要使用的模型:前往 Amazon Bedrock,从左侧的 Model Access 菜单,为你将要使用的模型配置访问。

项目依赖

然后把 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'
}

TIP

参见 依赖管理 一节,把 Spring AI BOM 添加到你的构建文件。

连接到 AWS Bedrock

用 BedrockAwsConnectionProperties 配置 AWS 凭据和区域:

shell
spring.ai.bedrock.aws.region=eu-north-1

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

spring.ai.bedrock.aws.profile.name=YOUR_PROFILE_NAME
spring.ai.bedrock.aws.profile.credentials-path=YOUR_CREDENTIALS_PATH
spring.ai.bedrock.aws.profile.configuration-path=YOUR_CONFIGURATION_PATH

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

AWS 凭据按以下顺序解析:

  1. Spring AI Bedrock 的 spring.ai.bedrock.aws.access-key 和 spring.ai.bedrock.aws.secret-key 属性。
  2. Spring AI Bedrock 的 spring.ai.bedrock.aws.profile.name,若未指定 spring.ai.bedrock.aws.profile.credentials-path 和 spring.ai.bedrock.aws.profile.configuration-path,Spring AI 会使用标准的 AWS 共享文件:凭据用 ~/.aws/credentials,配置用 ~/.aws/config。
  3. Java 系统属性 - aws.accessKeyId 和 aws.secretAccessKey。
  4. 环境变量 - AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY。
  5. 来自系统属性或环境变量的 Web Identity Token 凭据。
  6. 位于默认位置(~/.aws/credentials)、由所有 AWS SDK 和 AWS CLI 共享的凭据配置档文件。
  7. 若设置了 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI 环境变量且安全管理器有权访问该变量,则通过 Amazon EC2 容器服务交付的凭据。
  8. 通过 Amazon EC2 元数据服务交付的实例配置档凭据,或设置 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 环境变量。

AWS 区域按以下顺序解析:

  1. Spring AI Bedrock 的 spring.ai.bedrock.aws.region 属性。
  2. Java 系统属性 - aws.region。
  3. 环境变量 - AWS_REGION。
  4. 位于默认位置(~/.aws/credentials)、由所有 AWS SDK 和 AWS CLI 共享的凭据配置档文件。
  5. 通过 Amazon EC2 元数据服务交付的实例配置档区域。
  6. 若未定义区域,默认取 US_EAST_1

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

NOTE

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

启用所选的 Bedrock 模型

NOTE

默认情况下所有模型都被禁用。你必须用 spring.ai.model.embedding=<model-name> 属性显式启用所选的 Bedrock 模型。

以下是受支持的 <model-name>:

| Model | bedrock-cohere | bedrock-titan (no batch support yet) | | --- | --- | --- | ---

例如,要启用 Bedrock Cohere 嵌入模型,你需要设置 spring.ai.model.embedding=bedrock-cohere。

接下来,你可以用 spring.ai.bedrock.<model>.embedding.* 属性按所提供的方式配置每个模型。

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

BytesRouter 是社区翻译站点,所有译文仅供参考,一切以官方英文原文为准。