Amazon Bedrock

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

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

此外,Spring AI 为所有客户端提供 Spring 自动配置和启动器,使其轻松启动和配置 Bedrock 模型。

# 开始使用 ## _getting_started

开始的几个步骤如下:

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

  • 获取 AWS 凭据:如果您还没有 AWS 帐户并且尚未配置 AWS CLI,请参考此视频指南: AWS CLI & SDK 在 4 分钟内设置完毕!。您应该能够获取到您的访问和安全密钥。

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

项目依赖

然后将 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=您的访问密钥
spring.ai.bedrock.aws.secret-key=您的安全密钥

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/credentials),由所有 AWS SDK 和 AWS CLI 共享。

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

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

启用选定的Bedrock模型

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

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

模型 聊天 聊天流 嵌入

llama2

cohere

anthropic

jurassic2 (WIP)

titan

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

例如,要启用Bedrock Llama2 Chat客户端,您需要设置 spring.ai.bedrock.llama2.chat.enabled=true

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

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