亚马逊基岩
亚马逊基岩是一个受管服务,通过统一的API提供来自各种AI提供商的基础模型。
Spring AI通过实现Spring接口ChatClient
、StreamingChatClient
和EmbeddingClient
,支持通过亚马逊基岩提供的所有聊天和嵌入式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 凭证会按照以下顺序进行解析:
-
Spring-AI Bedrock
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
环境变量,并且安全管理器有权限访问该变量,则通过 Amazon EC2 容器服务传递的凭证。 -
通过 Amazon EC2 元数据服务传递的实例配置文件凭证,或者设置
AWS_ACCESS_KEY_ID
和AWS_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>.*
属性来配置每个模型,如所提供的。
有关更多信息,请参阅下面每个支持模型的文档。
-
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