Amazon Bedrock

根據 Bedrock 的建議,Spring AI 已過渡到使用 Amazon Bedrock 的 Converse API 來實現 Spring AI 中的所有 Chat 對話功能。Bedrock Converse API 具有以下主要優勢:

  • 統一介面:編寫一次程式碼,即可與任何支援的 Amazon Bedrock 模型一起使用

  • 模型靈活性:在不同對話模型之間無縫切換,無需更改程式碼

  • 擴充套件功能:透過專用結構支援模型特定引數

  • 工具支援:與函式呼叫和工具使用功能原生整合

  • 多模態能力:內建支援視覺及其他多模態功能

  • 面向未來:與 Amazon Bedrock 推薦的最佳實踐保持一致

Converse API 不支援 embedding 操作,因此這些操作將保留在當前 API 中,並且現有 InvokeModel API 中的 embedding 模型功能將得到維護。

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

Spring AI 透過實現 Spring 的 EmbeddingModel 介面來支援透過 Amazon Bedrock 提供的 Embedding 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,並在左側的“模型訪問”選單中,配置對您將使用的模型的訪問許可權。

專案依賴

然後將 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>s

模型

cohere

titan(暫不支援批次處理)

例如,要啟用 Bedrock Cohere embedding 模型,您需要設定 spring.ai.bedrock.cohere.embedding.enabled=true

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

有關更多資訊,請參閱下方針對每個支援的模型的文件。