Amazon Bedrock

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

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

此外,Spring AI 為所有用戶端提供 Spring 自動組態和啟動器,讓 Bedrock 模型的引導和設定變得容易。

開始使用

開始使用需要幾個步驟

  • 將 Bedrock 的 Spring Boot 啟動器新增至您的專案。

  • 取得 AWS 憑證:如果您還沒有 AWS 帳戶和 AWS CLI 設定,此影片指南可以協助您設定:AWS CLI 與 SDK 設定在 4 分鐘內完成!。您應該能夠取得您的存取金鑰和安全金鑰。

  • 啟用要使用的模型:前往 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>.* 屬性來設定每個模型 (如提供)。

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