Amazon Bedrock

Amazon Bedrock 是一項託管服務,透過統一的 API 提供來自各種 AI 提供者的基礎模型。

Spring AI 透過實作 Spring 介面 ChatModelStreamingChatModelEmbeddingModel,支援 所有透過 Amazon Bedrock 提供的聊天和嵌入 AI 模型

此外,Spring AI 為所有客戶端提供 Spring 自動配置和 Boot Starter,讓 Bedrock 模型的引導和配置變得容易。

開始使用

開始使用需要幾個步驟

  • 將 Bedrock 的 Spring Boot starter 新增至您的專案。

  • 取得 AWS 憑證:如果您還沒有 AWS 帳戶和 AWS CLI 配置,這個影片指南可以幫助您配置:AWS CLI & SDK Setup in Less Than 4 Minutes!。您應該能夠取得您的存取金鑰和安全金鑰。

  • 啟用要使用的模型:前往 Amazon Bedrock,並從左側的 模型存取 選單中,配置您將要使用的模型的存取權。

專案依賴性

然後將 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'
}
請參閱 依賴性管理 章節,將 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 身分令牌憑證。

  5. 所有 AWS SDK 和 AWS CLI 共用的預設位置 (~/.aws/credentials) 的憑證設定檔。

  6. 如果設定了 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI 環境變數,且安全性管理器有權限存取該變數,則透過 Amazon EC2 容器服務交付的憑證。

  7. 透過 Amazon EC2 metadata 服務交付的執行個體設定檔憑證,或設定 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 SDK 和 AWS CLI 共用的預設位置 (~/.aws/credentials) 的憑證設定檔。

  5. 透過 Amazon EC2 metadata 服務交付的執行個體設定檔區域。

除了標準的 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>.<chat|embedding>.enabled=true 屬性明確啟用選定的 Bedrock 模型。

以下是支援的 <model><chat|embedding> 組合

模型 聊天 串流聊天 嵌入

llama

jurassic2

cohere

anthropic 2

anthropic 3

jurassic2 (WIP)

titan

是 (但是,不支援批次處理)

例如,若要啟用 Bedrock Llama 聊天模型,您需要設定 spring.ai.bedrock.llama.chat.enabled=true

接下來,您可以使用 spring.ai.bedrock.<model>.<chat|embedding>.* 屬性來配置每個模型。

如需更多資訊,請參閱以下每個支援模型的說明文件。