此版本仍在开发中,尚未被视为稳定版本。最新的快照版本请使用 Spring AI 1.0.0-SNAPSHOT! |
Amazon Bedrock
Amazon Bedrock 是一项托管服务,提供来自各种 AI 提供商的基础模型,可通过统一的 API 使用。
Spring AI 通过实现 Spring 接口、 和 ,支持通过 Amazon Bedrock 提供的所有聊天和嵌入 AI 模型。ChatModel
StreamingChatModel
EmbeddingModel
此外,Spring AI 为所有客户端提供 Spring 自动配置和引导Starters,从而可以轻松引导和配置 Bedrock 模型。
开始
有几个步骤可以开始
-
将 Spring Boot starter for Bedrock 添加到您的项目中。
-
获取AWS凭证:如果您还没有配置AWS账户和AWS CLI,此视频指南可以帮助您配置它:AWS CLI和SDK设置在不到4分钟的时间内,只需不到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>
或您的 Gradle 构建文件。build.gradle
dependencies {
implementation 'org.springframework.ai:spring-ai-bedrock-ai-spring-boot-starter'
}
请参阅 Dependency Management 部分,将 Spring AI BOM 添加到您的构建文件中。 |
连接到 AWS Bedrock
使用 配置 AWS 凭证和区域:BedrockAwsConnectionProperties
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 基岩和属性。
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 开发工具包和 AWS CLI 共享)。
~/.aws/credentials
-
通过 Amazon EC2 容器服务提供的凭证(如果设置了环境变量并且安全管理器有权访问该变量)。
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
-
通过 Amazon EC2 元数据服务交付的实例配置文件凭证,或设置 and 环境变量。
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS 区域按以下顺序解析:
-
Spring-AI Bedrock 属性。
spring.ai.bedrock.aws.region
-
Java 系统属性 - .
aws.region
-
环境变量 - .
AWS_REGION
-
凭证配置文件文件(由所有 AWS 开发工具包和 AWS CLI 共享)。
~/.aws/credentials
-
通过 Amazon EC2 元数据服务交付的实例配置文件区域。
除了标准的 Spring-AI Bedrock 凭证和区域属性配置外,Spring-AI 还提供对自定义和 bean 的支持。AwsCredentialsProvider
AwsRegionProvider
例如,同时使用 Spring-AI 和 Spring Cloud for Amazon Web Services。Spring-AI 与 Spring Cloud for Amazon Web Services 凭证配置兼容。 |
启用选定的 Bedrock 模型
默认情况下,所有模型都处于禁用状态。您必须使用该属性显式启用所选的 Bedrock 模型。spring.ai.bedrock.<model>.<chat|embedding>.enabled=true |
以下是支持的和组合:<model>
<chat|embedding>
型 | 聊天 | 聊天流 | 嵌入 |
---|---|---|---|
骆马 |
是的 |
是的 |
不 |
侏罗纪 2 |
是的 |
不 |
不 |
凝聚 |
是的 |
是的 |
是的 |
人类学 2 |
是的 |
是的 |
不 |
人类学 3 |
是的 |
是的 |
不 |
侏罗纪 2 (WIP) |
是的 |
不 |
不 |
巨人 |
是的 |
是的 |
是(但是,不支持批处理) |
例如,要启用 Bedrock Llama 聊天模型,您需要将 .spring.ai.bedrock.llama.chat.enabled=true
接下来,您可以使用属性按提供的方式配置每个模型。spring.ai.bedrock.<model>.<chat|embedding>.*
有关更多信息,请参阅以下文档,了解每个受支持的型号。
-
Spring AI Bedrock Anthropic 2 聊天:
spring.ai.bedrock.anthropic.chat.enabled=true
-
Spring AI Bedrock Anthropic 3 聊天:
spring.ai.bedrock.anthropic3.chat.enabled=true
-
Spring AI 基岩骆驼聊天:
spring.ai.bedrock.llama.chat.enabled=true
-
Spring AI Bedrock Cohere 聊天:
spring.ai.bedrock.cohere.chat.enabled=true
-
Spring AI Bedrock Cohere 嵌入:
spring.ai.bedrock.cohere.embedding.enabled=true
-
Spring AI Bedrock Titan 聊天室:
spring.ai.bedrock.titan.chat.enabled=true
-
Spring AI Bedrock Titan 嵌入:
spring.ai.bedrock.titan.embedding.enabled=true
-
Spring AI 基岩 Ai21 Jurassic2 聊天:
spring.ai.bedrock.jurassic2.chat.enabled=true