收藏本站,收获最前沿的人工智能与编程资讯!!

Spring AI Amazon Bedrock API

技术文档 12℃ 0

遵循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模型。

快速入门

入门需完成以下步骤:

  1. 将Bedrock对应的Spring Boot启动器添加至项目中。

  2. 获取AWS凭证:若你尚未拥有AWS账户且未配置AWS CLI,可参考该视频指南完成配置:4分钟内完成AWS CLI与SDK配置!你将获取到访问密钥和安全密钥。

  3. 启用目标模型:进入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凭证的加载优先级如下:

  1. Spring-AI Bedrock的 spring.ai.bedrock.aws.access-key 和 spring.ai.bedrock.aws.secret-key 配置项

  2. Java系统属性 - aws.accessKeyId 和 aws.secretAccessKey

  3. 环境变量 - AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY

  4. 来自系统属性或环境变量的网络身份令牌凭证

  5. 所有AWS SDK和AWS CLI共享的默认路径凭证配置文件(~/.aws/credentials)

  6. 若设置了AWS_CONTAINER_CREDENTIALS_RELATIVE_URI环境变量且安全管理器拥有访问权限,通过Amazon EC2容器服务提供的凭证

  7. 通过Amazon EC2元数据服务提供的实例配置文件凭证,或直接设置AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY环境变量

AWS区域的加载优先级如下:

  1. Spring-AI Bedrock的 spring.ai.bedrock.aws.region 配置项

  2. Java系统属性 - aws.region

  3. 环境变量 - AWS_REGION

  4. 所有AWS SDK和AWS CLI共享的默认路径凭证配置文件(~/.aws/credentials)

  5. 通过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

相关推荐