Amazon Bedrock

Amazon Bedrock は、さまざまな AI プロバイダーの基盤モデルを提供するマネージドサービスであり、統合 API を通じて利用できます。

Spring AI は、Spring インターフェース ChatModelStreamingChatModelEmbeddingModel を実装することにより、Amazon Bedrock を通じて利用可能なすべてのチャットおよび埋め込み AI モデル [Amazon] をサポートします。

さらに、Spring AI はすべてのクライアントに Spring 自動構成と Boot スターターを提供し、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-key および spring.ai.bedrock.aws.secret-key プロパティ。

  2. Java システムのプロパティ - aws.accessKeyId および aws.secretAccessKey

  3. 環境変数 - AWS_ACCESS_KEY_ID および AWS_SECRET_ACCESS_KEY

  4. システムプロパティまたは環境変数からの Web ID トークン資格情報。

  5. すべての AWS SDK と AWS CLI によって共有されるデフォルトの場所 (~/.aws/credentials) にある認証情報プロファイルファイル。

  6. AWS_CONTAINER_CREDENTIALS_RELATIVE_URI 環境変数が設定されており、セキュリティマネージャーがその変数にアクセスする権限を持っている場合、Amazon EC2 コンテナーサービスを通じて配信される認証情報。

  7. Amazon EC2 メタデータサービスを通じて配信されるプロファイル認証情報をインスタンス化するか、AWS_ACCESS_KEY_ID および AWS_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 メタデータサービスを通じて配信されるインスタンスプロファイルリージョン。

標準の Spring-AI Bedrock 資格情報とリージョンプロパティ構成に加えて、Spring-AI はカスタム AwsCredentialsProvider および AwsRegionProvider Bean のサポートも提供します。

例: Spring-AI と Spring Cloud for Amazon Web Services を同時に使用します。Spring-AI は、Amazon Web Services 資格情報構成の Spring Cloud と互換性があります。

選択した Bedrock モデルを有効にする

デフォルトでは、すべてのモデルが無効になっています。spring.ai.bedrock.<model>.<chat|embedding>.enabled=true プロパティを使用して、選択した Bedrock モデルを明示的に有効にする必要があります。

サポートされている <model> と <chat|embedding> の組み合わせは次のとおりです。

モデル チャット チャットストリーミング 埋め込み

llama

はい

はい

いいえ

jurassic2

はい

いいえ

いいえ

cohere

はい

はい

はい

人類学的 2

はい

はい

いいえ

人類学的 3

はい

はい

いいえ

jurassic2 (WIP)

はい

いいえ

いいえ

titan

はい

はい

はい (ただし、バッチはサポートされていません)

例: Bedrock Llama チャットモデルを有効にするには、spring.ai.bedrock.llama.chat.enabled=true を設定する必要があります。

次に、spring.ai.bedrock.<model>.<chat|embedding>.* プロパティを使用して、提供されているとおりに各モデルを構成できます。

詳細については、サポートされている各モデルの以下のドキュメントを参照してください。