遵循Bedrock的推荐规范,Spring AI已在所有聊天对话实现中全面切换为使用Amazon Bedrock的Converse API。Bedrock Converse API具备以下核心优势:
统一接口:编写一次代码,即可适配Amazon Bedrock支持的任意模型
模型灵活性:无需修改代码,即可在不同对话模型之间无缝切换
扩展功能:通过专用结构支持模型专属参数配置
工具支持:原生集成函数调用和工具使用能力
多模态能力:内置支持视觉及其他多模态特性
面向未来:与Amazon Bedrock官方推荐的最佳实践保持一致
Converse API不支持嵌入操作,因此该功能将保留在现有API中,且基于InvokeModel API的嵌入模型功能会持续维护。
Amazon Bedrock是一项托管式服务,可通过统一API提供来自多家AI厂商的基础模型。
Spring AI通过实现Spring EmbeddingModel接口,支持Amazon Bedrock提供的嵌入AI模型。
此外,Spring AI为所有客户端提供了Spring自动配置和启动器,可快速初始化并配置Bedrock模型。
快速入门
入门需完成以下步骤:
将Bedrock对应的Spring Boot启动器添加至项目中。
获取AWS凭证:若你尚未拥有AWS账户且未配置AWS CLI,可参考该视频指南完成配置:4分钟内完成AWS CLI与SDK配置!你将获取到访问密钥和安全密钥。
启用目标模型:进入Amazon Bedrock控制台,通过左侧的模型访问菜单,为你计划使用的模型配置访问权限。
项目依赖
将Spring Boot启动器依赖添加至项目的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
区域属性为必填项。
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
来自系统属性或环境变量的网络身份令牌凭证
所有AWS SDK和AWS CLI共享的默认路径凭证配置文件(~/.aws/credentials)
若设置了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 SDK和AWS CLI共享的默认路径凭证配置文件(~/.aws/credentials)
通过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嵌入模型:spring.ai.bedrock.cohere.embedding.enabled=true
Spring AI Bedrock Titan嵌入模型:spring.ai.bedrock.titan.embedding.enabled=true