亚马逊基岩

亚马逊基岩是一个受管服务,通过统一的API提供来自各种AI提供商的基础模型。

Spring AI通过实现Spring接口ChatClientStreamingChatClientEmbeddingClient,支持通过亚马逊基岩提供的所有聊天和嵌入式AI模型

此外,Spring AI为所有客户端提供了Spring自动配置和启动器,使其可以轻松引导和配置基岩模型。

开始使用

开始使用需要进行一些步骤

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

  • 获取 AWS 凭证:如果您还没有 AWS 账户和 AWS CLI 配置,可以参考这个视频指南进行配置:在不到 4 分钟内配置 AWS CLI 和 SDK!。您应该能够获取到您的访问密钥和安全密钥。

  • 启用 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=YOUR_ACCESS_KEY
spring.ai.bedrock.aws.secret-key=YOUR_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. 如果设置了 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI 环境变量,并且安全管理器有权限访问该变量,则通过 Amazon EC2 容器服务传递的凭证。

  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>.*属性来配置每个模型,如所提供的。

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