Amazon Bedrock
Amazon Bedrock 是一項託管服務,透過統一的 API 提供來自各種 AI 提供者的基礎模型。
Spring AI 透過實作 Spring 介面 ChatModel
、StreamingChatModel
和 EmbeddingModel
,支援 所有透過 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 憑證會依以下順序解析
-
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 身分令牌憑證。
-
所有 AWS SDK 和 AWS CLI 共用的預設位置 (
~/.aws/credentials
) 的憑證設定檔。 -
如果設定了
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
環境變數,且安全性管理器有權限存取該變數,則透過 Amazon EC2 容器服務交付的憑證。 -
透過 Amazon EC2 metadata 服務交付的執行個體設定檔憑證,或設定
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 metadata 服務交付的執行個體設定檔區域。
除了標準的 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>.<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>.*
屬性來配置每個模型。
如需更多資訊,請參閱以下每個支援模型的說明文件。
-
Spring AI Bedrock Anthropic 2 聊天:
spring.ai.bedrock.anthropic.chat.enabled=true
-
Spring AI Bedrock Anthropic 3 聊天:
spring.ai.bedrock.anthropic3.chat.enabled=true
-
Spring AI Bedrock Llama 聊天:
spring.ai.bedrock.llama.chat.enabled=true
-
Spring AI Bedrock Cohere 聊天:
spring.ai.bedrock.cohere.chat.enabled=true
-
Spring AI Bedrock Cohere 嵌入:
spring.ai.bedrock.cohere.embedding.enabled=true
-
Spring AI Bedrock Titan 聊天:
spring.ai.bedrock.titan.chat.enabled=true
-
Spring AI Bedrock Titan 嵌入:
spring.ai.bedrock.titan.embedding.enabled=true
-
Spring AI Bedrock Ai21 Jurassic2 聊天:
spring.ai.bedrock.jurassic2.chat.enabled=true