Amazon Bedrock

Bedrock の推奨事項に従い、Spring AI は、Spring AI のすべてのチャット会話実装に Amazon Bedrock の Converse API を使用するように移行しました。Bedrock Converse API には、次の主な利点があります。

  • 統一インターフェース: 一度コードを書いて、サポートされている Amazon Bedrock モデルで使用できます。

  • モデルの柔軟性: コードを変更せずに、さまざまな会話モデルをシームレスに切り替える

  • 拡張機能: 専用構造によるモデル固有のパラメーターのサポート

  • ツールサポート: 関数呼び出しとツール使用機能を備えたネイティブ統合

  • マルチモーダル機能: ビジョンやその他のマルチモーダル機能の組み込みサポート

  • 将来を見据えた: Amazon Bedrock の推奨ベストプラクティスに準拠

Converse API は埋め込み操作をサポートしていないため、これらは現在の API に残り、既存の InvokeModel API の埋め込みモデル機能は維持されます。

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

Spring AI は、Spring EmbeddingModel インターフェースを実装することにより、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>.embedding.enabled=true プロパティを使用して、選択した Bedrock モデルを明示的に有効にする必要があります。

サポートされている `<model>` は次のとおりです。

モデル

cohere

タイタン (バッチサポートはまだありません)

例: Bedrock Cohere 埋め込みモデルを有効にするには、spring.ai.bedrock.cohere.embedding.enabled=true を設定する必要があります。

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

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