Amazon Bedrock
根据 Bedrock 的建议,Spring AI 已过渡到使用 Amazon Bedrock 的 Converse API 来实现 Spring AI 中的所有聊天对话。 Bedrock Converse API 具有以下主要优势:
Converse API 不支持嵌入操作,因此这些操作将保留在当前 API 中,并且现有 |
Amazon Bedrock 是一个托管服务,提供来自各种 AI 提供商的基础模型,通过统一的 API 可用。
Spring AI 通过实现 Spring EmbeddingModel
接口支持 通过 Amazon Bedrock 可用的嵌入 AI 模型。
此外,Spring AI 为所有客户端提供 Spring 自动配置和 Boot Starters,使为 Bedrock 模型进行引导和配置变得容易。
开始使用
开始使用需要几个步骤
-
将 Bedrock 的 Spring Boot starter 添加到您的项目中。
-
获取 AWS 凭证:如果您还没有 AWS 账户和配置好的 AWS CLI,这个视频指南可以帮助您配置:AWS CLI & SDK Setup in Less Than 4 Minutes!。您应该能够获取您的访问和安全密钥。
-
启用要使用的模型:转到 Amazon Bedrock 并从左侧的 Model Access 菜单配置对您将要使用的模型的访问权限。
项目依赖
然后将 Spring Boot Starter 依赖项添加到您项目的 Maven pom.xml
构建文件中:
<dependency>
<artifactId>spring-ai-starter-model-bedrock</artifactId>
<groupId>org.springframework.ai</groupId>
</dependency>
或添加到您的 Gradle build.gradle
构建文件中。
dependencies {
implementation 'org.springframework.ai:spring-ai-starter-model-bedrock'
}
提示:请参阅 依赖管理 部分,将 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
spring.ai.bedrock.aws.timeout=10m
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
环境变量。
AWS 区域按以下顺序解析:
-
Spring-AI Bedrock
spring.ai.bedrock.aws.region
属性。 -
Java 系统属性 -
aws.region
。 -
环境变量 -
AWS_REGION
。 -
位于默认位置(
~/.aws/credentials
)的凭证配置文件,由所有 AWS SDK 和 AWS CLI 共享。 -
通过 Amazon EC2 元数据服务提供的实例配置文件区域。
除了标准的 Spring-AI Bedrock 凭证和区域属性配置外,Spring-AI 还支持自定义 AwsCredentialsProvider
和 AwsRegionProvider
bean。
注意:例如,同时使用 Spring-AI 和 Spring Cloud for Amazon Web Services。Spring-AI 与 Spring Cloud for Amazon Web Services 凭证配置兼容。
启用选定的 Bedrock 模型
注意:默认情况下,所有模型都被禁用。您必须使用 spring.ai.bedrock.<model>.embedding.enabled=true
属性显式启用所选的 Bedrock 模型。
以下是支持的 <model>
:
模型 |
cohere |
titan(尚不支持批处理) |
例如,要启用 Bedrock Cohere 嵌入模型,您需要设置 spring.ai.bedrock.cohere.embedding.enabled=true
。
接下来,您可以使用 spring.ai.bedrock.<model>.embedding.*
属性来配置每个模型。
有关更多信息,请参阅下面每个支持的模型的文档。
-
Spring AI Bedrock Cohere Embeddings:
spring.ai.bedrock.cohere.embedding.enabled=true
-
Spring AI Bedrock Titan Embeddings:
spring.ai.bedrock.titan.embedding.enabled=true