跳到主要内容

Amazon Bedrock

DeepSeek V3 中英对照 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 提供的 Embedding AI 模型

此外,Spring AI 为所有客户端提供了 Spring 自动配置和 Boot Starter,使得为 Bedrock 模型进行初始化和配置变得非常容易。

入门指南

以下是入门的几个步骤

  • 将 Spring Boot 的 Bedrock starter 添加到你的项目中。

  • 获取 AWS 凭证:如果你还没有 AWS 账户并且没有配置 AWS CLI,这个视频指南可以帮助你进行配置:AWS CLI & SDK 在 4 分钟内完成设置!。你应该能够获取到你的访问密钥和安全密钥。

  • 启用要使用的模型:前往 Amazon Bedrock,并从左侧的 Model Access 菜单中,配置你要使用的模型的访问权限。

项目依赖

然后,将 Spring Boot Starter 依赖项添加到你的项目的 Maven pom.xml 构建文件中:

<dependency>
<artifactId>spring-ai-bedrock-ai-spring-boot-starter</artifactId>
<groupId>org.springframework.ai</groupId>
</dependency>
xml

或添加到你的 Gradle build.gradle 构建文件中。

dependencies {
implementation 'org.springframework.ai:spring-ai-bedrock-ai-spring-boot-starter'
}
groovy
提示

请参考依赖管理部分,将 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
shell

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 region 按以下顺序解析:

  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.* 属性来配置每个提供的模型。

更多信息,请参考以下每个受支持模型的文档。

章节小结