Amazon Bedrock
根據 Bedrock 的建議,Spring AI 已過渡到使用 Amazon Bedrock 的 Converse API 來實現 Spring AI 中的所有 Chat 對話功能。Bedrock Converse API 具有以下主要優勢:
Converse API 不支援 embedding 操作,因此這些操作將保留在當前 API 中,並且現有 |
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 憑證按以下順序解析
-
Spring-AI Bedrock 的
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/credentials
) 下的憑證配置檔案,由所有 AWS SDK 和 AWS CLI 共享。 -
如果設定了
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
環境變數且安全管理器有權訪問該變數,則透過 Amazon EC2 容器服務提供的憑證。 -
透過 Amazon EC2 元資料服務提供的例項配置檔案憑證,或者設定
AWS_ACCESS_KEY_ID
和AWS_SECRET_ACCESS_KEY
環境變數。
AWS 區域按以下順序解析
-
Spring-AI Bedrock 的
spring.ai.bedrock.aws.region
屬性。 -
Java 系統屬性 -
aws.region
。 -
環境變數 -
AWS_REGION
。 -
預設位置 (
~/.aws/credentials
) 下的憑證配置檔案,由所有 AWS SDK 和 AWS CLI 共享。 -
透過 Amazon EC2 元資料服務提供的例項配置檔案區域。
除了標準的 Spring-AI Bedrock 憑證和區域屬性配置外,Spring-AI 還支援自定義的 AwsCredentialsProvider
和 AwsRegionProvider
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.*
屬性配置提供的每個模型。
有關更多資訊,請參閱下方針對每個支援的模型的文件。
-
Spring AI Bedrock Cohere Embeddings:
spring.ai.bedrock.cohere.embedding.enabled=true
-
Spring AI Bedrock Titan Embeddings:
spring.ai.bedrock.titan.embedding.enabled=true