Amazon Bedrock
Spring AI 支持通过 Amazon Bedrock 获得各种 AI 提供者的基础模型,从而简化了基于 AI 的应用程序开发。通过 Spring 自动配置和引导启动器,Spring AI 使得引导和配置 Bedrock 模型变得更加容易,从而使开发者能够快速轻松地集成 AI 功能。此外,本文还为在 Spring Boot 项目中连接和启用 Bedrock 模型提供了分步指南,包括设置 AWS 凭据和配置特定模型。
Amazon Bedrock 是一项托管服务,它提供来自各种 AI 提供商的基础模型,可通过统一的 API 获得。
Spring AI 支持通过实现 Spring 接口 ChatClient
、StreamingChatClient
和 EmbeddingClient
在 Amazon Bedrock 中提供的 all the Chat and Embedding AI models。
此外,Spring AI 为所有客户端提供 Spring 自动配置和引导启动器,从而可以轻松地引导和配置 Bedrock 模型。
Getting Started
开始有几个步骤:
-
Add Boot Starter:将 Bedrock 的 Spring Boot starter 添加到你的项目中。
-
Obtain AWS credentials:如果你还没有 AWS 账户并配置 AWS CLI,本视频指南可以帮助你配置它: AWS CLI & SDK Setup in Less Than 4 Minutes!.你应该能够获得你的访问和安全密钥。
-
Enable Bedrock models to use: 进入 Amazon Bedrock,并从左侧的 Model Access 菜单配置对你要使用的模型的访问。
Project Dependencies
然后将 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'
}
|
Connect to 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 Identity Token 凭证。
-
位于默认位置 (
~/.aws/credentials
) 的凭证配置文件,由所有 AWS SDK 和 AWS CLI 共享。 -
如果
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
环境变量已设置,并且安全管理器有权限访问该变量,则通过 Amazon EC2 容器服务传递的凭证。 -
通过 Amazon EC2 元数据服务传递的实例配置文件凭证或者设置
AWS_ACCESS_KEY_ID
和AWS_SECRET_ACCESS_KEY
环境变量。
Enable selected Bedrock model
默认情况下,所有模型都处于禁用状态。您必须使用 |
以下是支持的 <model>
和 <chat|embedding>
组合:
Model | Chat | Chat Streaming | Embedding |
---|---|---|---|
llama2 |
Yes |
Yes |
No |
cohere |
Yes |
Yes |
Yes |
anthropic |
Yes |
Yes |
No |
jurassic2 (WIP) |
Yes |
No |
No |
titan |
Yes |
Yes |
是(但是,不支持批量处理) |
例如,要启用 Bedrock Llama2 聊天客户端,您需要设置 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