Amazon Bedrock
遵循 Bedrock 的建議,Spring AI 已將所有聊天對話的實現在 Spring AI 中遷移到使用 Amazon Bedrock 的 Converse API。Bedrock Converse API 具有以下主要優勢:
Converse API 不支援嵌入操作,因此這些操作將保留在當前 API 中,並且現有 InvokeModel API 中的嵌入模型功能將得以維護。 |
Amazon Bedrock 是一項託管服務,提供來自各種 AI 提供商的基礎模型,可透過統一的 API 訪問。
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,然後從左側的 Model Access 選單配置您將要使用的模型的訪問許可權。
專案依賴
然後將 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'
}
請參考Dependency Management 部分將 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 SDK 和 AWS CLI 共享的預設位置 (
~/.aws/credentials
) 中的憑證配置檔案。 -
如果設定了
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 SDK 和 AWS CLI 共享的預設位置 (
~/.aws/credentials
) 中的憑證配置檔案。 -
透過 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 模型。 |
以下是支援的 `
模型 |
cohere |
titan (暫不支援批次處理) |
例如,要啟用 Bedrock Cohere 嵌入模型,您需要設定 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