跳到主要内容

Amazon Bedrock

Maven依存関係

<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-bedrock</artifactId>
<version>1.0.0-beta4</version>
</dependency>

AWS認証情報

Amazon Bedrockモデルを使用するには、AWS認証情報を設定する必要があります。 オプションの1つは、AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY環境変数を設定することです。 詳細はこちらで確認できます。

InvokeAPIとConverseAPIの違い

Amazon Bedrockは推論のための2つの主要なモデル呼び出しAPI操作を提供しています:

  • Converse – AmazonはメッセージをサポートするすべてのAmazon Bedrockモデルで動作する一貫したAPIを提供するConverseAPIの使用を推奨しています。
  • InvokeModel – 元々は単一のプロンプトに対する応答を得るための単一の呼び出しを目的としていました。

ConverseAPIを使用したChatModel

現在の実装ではガードレールはサポートされていません。

サポートされているモデルとその機能はこちらで確認できます。

モデルIDはこちらで確認できます。

設定

ChatModel model = BedrockChatModel.builder()
.modelId("us.amazon.nova-lite-v1:0")
.region(...)
.maxRetries(...)
.timeout(...)
.logRequests(...)
.logResponses(...)
.listeners(...)
.defaultRequestParameters(BedrockChatRequestParameters.builder()
.topP(...)
.temperature(...)
.maxOutputTokens(...)
.stopSequences(...)
.toolSpecifications(...)
.additionalModelRequestFields(...)
.build())
.build();

additionalModelRequestFieldsフィールドはMap<String, Object>です。こちらで説明されているように、 共通のinferenceConfigでカバーされていない特定のモデルの推論パラメータを追加することができます。 BedrockChatRequestParametersには、additionalModelRequestFieldsに推論パラメータを追加することでClaude 3.7の思考プロセスを有効にする便利なメソッドがあります。

ConverseAPIを使用したStreamingChatModel

現在の実装ではガードレールはサポートされていません。

サポートされているモデルとその機能はこちらで確認できます。

モデルIDはこちらで確認できます。

設定

StreamingChatModel model = BedrockStreamingChatModel.builder()
.modelId("us.amazon.nova-lite-v1:0")
.region(...)
.maxRetries(...)
.timeout(...)
.logRequests(...)
.logResponses(...)
.listeners(...)
.defaultRequestParameters(BedrockChatRequestParameters.builder()
.topP(...)
.temperature(...)
.maxOutputTokens(...)
.stopSequences(...)
.toolSpecifications(...)
.additionalModelRequestFields(...)
.build())
.build();

additionalModelRequestFieldsフィールドはMap<String, Object>です。こちらで説明されているように、 共通のinferenceConfigでカバーされていない特定のモデルの推論パラメータを追加することができます。 BedrockChatRequestParametersには、additionalModelRequestFieldsに推論パラメータを追加することでClaude 3.7の思考プロセスを有効にする便利なメソッドがあります。

InvokeAPIを使用したChatModel

AI21モデル

  • BedrockAI21LabsChatModel(非推奨、BedrockChatModelを使用してください)

Anthropicモデル

  • BedrockAnthropicMessageChatModel:(非推奨、BedrockChatModelを使用してください)新しいMessages APIをサポート
  • BedrockAnthropicCompletionChatModel:(非推奨、BedrockChatModelを使用してください)古いText Completions APIをサポート
  • BedrockAnthropicStreamingChatModel

例:

ChatModel model = BedrockAnthropicMessageChatModel.builder()
.model("anthropic.claude-3-sonnet-20240229-v1:0")
.build();

Cohereモデル

  • BedrockCohereChatModel(非推奨、BedrockChatModelを使用してください)

Meta Llamaモデル

  • BedrockLlamaChatModel(非推奨、BedrockChatModelを使用してください)

Mistralモデル

  • BedrockMistralAiChatModel(非推奨、BedrockChatModelを使用してください)

Titanモデル

  • BedrockTitanChatModel(非推奨、BedrockChatModelを使用してください)
  • BedrockTitanEmbeddingModel