Amazon Bedrock
遵循 Bedrock 的建议,Spring AI 已将所有聊天对话实现过渡为使用 Amazon Bedrock 的 Converse API。Bedrock Converse API 具有以下关键优势:
-
统一接口:编写一次代码,即可用于任何受支持的 Amazon Bedrock 模型
-
模型灵活性:无需更改代码即可在不同对话模型之间无缝切换
-
扩展功能:通过专用结构支持特定于模型的参数
-
工具支持:原生集成函数调用和工具使用能力
-
多模态能力:内置支持视觉和其他多模态功能
-
面向未来:符合 Amazon Bedrock 推荐的最佳实践
Converse API 不支持嵌入操作,因此这些功能将保留在当前 API 中,现有 InvokeModel API 中的嵌入模型功能将得到保留
Amazon Bedrock 是一项托管服务,提供来自多个 AI 供应商的基础模型,通过统一的 API 即可使用。
Spring AI 通过实现 Spring 的 EmbeddingModel 接口,支持通过 Amazon Bedrock 提供的Embedding AI 模型。
此外,Spring AI 为所有客户端提供了 Spring 自动配置和 Boot Starters,使得为 Bedrock 模型进行引导和配置变得非常容易。
快速开始
开始使用有几个步骤
-
将Spring Boot的Bedrock启动器添加到你的项目中。
-
获取AWS凭证:如果你还没有AWS账户且未配置AWS CLI,这个视频指南可以帮助你完成配置:在不到4分钟内设置AWS CLI & SDK!。你应该能够获取到你的访问密钥和安全密钥。
-
启用要使用的模型:前往 Amazon Bedrock,并从左侧的 模型访问 菜单,配置对你将要使用的模型的访问权限。
项目依赖
然后将 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 SDK 和 AWS CLI 共享的默认位置 (
~/.aws/credentials) 的凭证配置文件。 -
如果设置了
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI环境变量且安全管理器有权访问该变量,则通过 Amazon EC2 容器服务传递的凭证。 -
通过 Amazon EC2 元数据服务传递的实例配置文件凭证,或设置的
AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY环境变量。
AWS region 按以下顺序解析:
-
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>`s:
| 模型 |
|---|
| 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
章节小结
📄️ Cohere
提供 Bedrock Cohere Embedding 模型。将生成式 AI 能力集成到提升业务成果的核心应用与工作流程中。
📄️ 泰坦
提供Bedrock Titan嵌入模型。Amazon Titan基础模型(FMs)通过完全托管的API,为客户提供一系列高性能的图像、多模态嵌入和文本模型选择。Amazon Titan模型由AWS创建,并在大型数据集上进行预训练,使其成为强大的通用模型,旨在支持各种使用场景,同时也支持AI的负责任使用。您可以直接使用它们,或者使用您自己的数据进行私有化定制。