Amazon Bedrock

Amazon Bedrock 是一款托管服务,它提供来自各种 AI 提供商的基础模型,可通过统一的 API 使用。

Spring AI 支持通过 Amazon Bedrock 提供的 所有聊天和嵌入式 AI 模型,方法是实现 Spring 接口 ChatModelStreamingChatModelEmbeddingModel

此外,Spring AI 为所有客户端提供 Spring 自动配置和 Boot 启动器,使启动和配置 Bedrock 模型变得容易。

入门

入门需要几个步骤

  • 添加 Boot 启动器:将 Bedrock 的 Spring Boot 启动器添加到您的项目中。

  • 获取 AWS 凭据:如果您还没有 AWS 帐户和 AWS CLI 配置,此视频指南可以帮助您配置它:AWS CLI & SDK 设置,不到 4 分钟!。您应该能够获取您的访问密钥和安全密钥。

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

项目依赖项

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

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

或您的 Gradle build.gradle 构建文件。

dependencies {
    implementation 'org.springframework.ai:spring-ai-bedrock-ai-spring-boot-starter'
}
请参阅 依赖项管理 部分,将 Spring AI BOM 添加到您的构建文件。

连接到 AWS Bedrock

使用 BedrockAwsConnectionProperties 配置 AWS 凭据和区域

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 Bedrock 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 身份令牌凭据。

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

  6. 如果设置了 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI 环境变量并且安全管理器有权访问该变量,则通过 Amazon EC2 容器服务提供的凭据。

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

AWS 区域按以下顺序解析

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

  2. Java 系统属性 - aws.region

  3. 环境变量 - AWS_REGION

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

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

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

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

启用选定的 Bedrock 模型

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

以下是支持的 <model><chat|embedding> 组合

模型 聊天 聊天流 嵌入

llama

jurassic2

cohere

anthropic 2

anthropic 3

jurassic2 (开发中)

titan

是(但是,不支持批处理)

例如,要启用 Bedrock Llama 聊天模型,您需要设置 spring.ai.bedrock.llama.chat.enabled=true

接下来,您可以使用 spring.ai.bedrock.<model>.<chat|embedding>.* 属性来配置每个模型,如提供的那样。

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