链接: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 凭证的解析顺序如下:
-
Spring-AI基岩配置项
spring.ai.bedrock.aws.access-key
和spring.ai.bedrock.aws.secret-key
。 -
Java系统属性 -
aws.accessKeyId
和aws.secretAccessKey
。 -
环境变量 -
AWS_ACCESS_KEY_ID
和AWS_SECRET_ACCESS_KEY
。 -
从系统属性或环境变量获取Web身份令牌凭证。
-
凭证配置文件位于默认位置(
~/.aws/credentials
),由所有AWS SDK和AWS CLI共享。 -
如果设置了`AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`环境变量,并且安全管理器有权访问该变量,则通过亚马逊EC2容器服务传递凭据。
-
通过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>.*`属性来配置每个模型提供的设置。
有关更多信息,请参阅下面每个支持模型的文档。
-
Spring AI Bedrock Anthropic Chat: `spring.ai.bedrock.anthropic.chat.enabled=true
-
Spring AI Bedrock Llama2 Chat: `spring.ai.bedrock.llama2.chat.enabled=true
-
Spring AI Bedrock Cohere Chat: `spring.ai.bedrock.cohere.chat.enabled=true
-
Spring AI Bedrock Cohere Embeddings: `spring.ai.bedrock.cohere.embedding.enabled=true
-
Spring AI Bedrock Titan Chat: `spring.ai.bedrock.titan.chat.enabled=true
-
Spring AI Bedrock Titan Embeddings: `spring.ai.bedrock.titan.embedding.enabled=true
-
Spring AI Bedrock Ai21 Jurassic2 Chat: `spring.ai.bedrock.jurassic2.chat.enabled=true