Amazon Bedrock

根据 Bedrock 的建议,Spring AI 已过渡到使用 Amazon Bedrock 的 Converse API 来实现 Spring AI 中的所有聊天对话。 Bedrock Converse API 具有以下主要优势:

  • 统一接口:编写一次代码,即可与任何支持的 Amazon Bedrock 模型一起使用

  • 模型灵活性:无缝切换不同的对话模型,无需更改代码

  • 扩展功能:通过专用结构支持模型特定参数

  • 工具支持:原生集成函数调用和工具使用功能

  • 多模态功能:内置支持视觉和其他多模态功能

  • 面向未来:符合 Amazon Bedrock 推荐的最佳实践

Converse API 不支持嵌入操作,因此这些操作将保留在当前 API 中,并且现有 InvokeModel 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 凭证按以下顺序解析:

  1. Spring-AI Bedrock spring.ai.bedrock.aws.access-keyspring.ai.bedrock.aws.secret-key 属性。

  2. Java 系统属性 - aws.accessKeyIdaws.secretAccessKey

  3. 环境变量 - AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY

  4. 来自系统属性或环境变量的 Web Identity Token 凭证。

  5. 位于默认位置(~/.aws/credentials)的凭证配置文件,由所有 AWS SDK 和 AWS CLI 共享。

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

  7. 通过 Amazon EC2 元数据服务提供的实例配置文件凭证或设置 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 环境变量。

AWS 区域按以下顺序解析:

  1. Spring-AI Bedrock spring.ai.bedrock.aws.region 属性。

  2. Java 系统属性 - aws.region

  3. 环境变量 - AWS_REGION

  4. 位于默认位置(~/.aws/credentials)的凭证配置文件,由所有 AWS SDK 和 AWS CLI 共享。

  5. 通过 Amazon EC2 元数据服务提供的实例配置文件区域。

除了标准的 Spring-AI Bedrock 凭证和区域属性配置外,Spring-AI 还支持自定义 AwsCredentialsProviderAwsRegionProvider 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.* 属性来配置每个模型。

有关更多信息,请参阅下面每个支持的模型的文档。