链接:https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html[Amazon Bedrock] 是一个托管服务,它提供来自多个AI供应商的基础模型,并通过统一的API提供服务。

春季AI通过实现Spring接口`ChatClient`、StreamingChatClient`和`EmbeddingClient,支持通过Amazon Bedrock提供的[所有聊天和嵌入式AI模型](https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids-arns.html)。

此外,Spring AI提供了针对所有客户端的Spring自动配置和启动器,使得为Bedrock模型的引导和配置变得简单。

入门指南

有几个步骤来开始

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

  • 获取AWS凭据:如果您还没有AWS账户和配置好的AWS CLI,这个视频指南可以帮助您进行配置:链接:https://youtu.be/gswVHTrRX8I?si=buaY7aeI0l3-bBVb[AWS CLI & SDK在不到4分钟内的设置!]。您应该能够获得您的访问和安全密钥。

  • 启用Bedrock模型的方式:访问链接:https://us-east-1.console.aws.amazon.com/bedrock/home[亚马逊Bedrock],然后从左侧的链接:https://us-east-1.console.aws.amazon.com/bedrock/home?region=us-east-1#/modelaccess[模型访问]菜单中,配置对您计划使用的模型的访问权限。

项目依赖

那么将Spring Boot Starter依赖添加到您项目的Maven pom.xml 构建文件中:

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'
}
Tip
请参阅依赖管理部分,以将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基岩配置项 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`环境变量,并且安全管理器有权访问该变量,则通过亚马逊EC2容器服务传递凭据。

  7. 通过Amazon EC2元数据服务交付的实例配置文件凭证,或者设置`AWS_ACCESS_KEY_ID`和`AWS_SECRET_ACCESS_KEY`环境变量。

启用选定的基岩模型

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

这里是支持的`<model>`与`<chat|embedding>`组合:

模型 聊天 流式聊天 嵌入式支持

llama2

jurassic2

cohere

anthropic

jurassic2 (进行中)

titan

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

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

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

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