Amazon Bedrock は、AI21 Labs、Anthropic、Cohere、Stability AI、Amazon などの大手 AI 企業の高性能基盤モデル (FM) の選択肢を 1 つの API で提供するフルマネージド サービスです。運用の観点から見ると、単一の統合 API により、セキュリティ、スケーラビリティ、監視などの側面が標準化されるため、開発と展開の速度が向上します。
ただし、FM と対話するコードを作成する場合、開発者は各 FM の API の特性を手動で処理する必要があります。これは、各 FM のスキーマが固有であり、API リクエストを実行するには正しい本文ペイロードが提供される必要があるために発生します。
➡️ たとえば、次のプロンプトを考えてみましょう: When Christmas is celebrated?
AI21Labs Jurassic-2 Mid
FM を使用して Amazon Bedrock にこの質問をするには、次の API リクエストが必要です。
{
"modelId" : " ai21.j2-mid-v1 " ,
"contentType" : " application/json " ,
"accept" : " */* " ,
"body" : " { " prompt " : " When Christmas is celebrated? " , " maxTokens " :200, " temperature " :0.7, " topP " :1, " stopSequences " :[], " countPenalty " :{ " scale " :0}, " presencePenalty " :{ " scale " :0}, " frequencyPenalty " :{ " scale " :0}} "
}
Anthropic Claude V2
FM を使用してまったく同じ質問を Amazon Bedrock に行うには、別の API リクエストが必要です。
{
"modelId" : " anthropic.claude-v2 " ,
"contentType" : " application/json " ,
"accept" : " */* " ,
"body" : " { " prompt " : " Human: \ n \ nHuman: When Christmas is celebrated? \ n \ nAssistant: " , " max_tokens_to_sample " :300, " temperature " :1, " top_k " :250, " top_p " :0.999, " stop_sequences " :[ "\ n \ nHuman: " ], " anthropic_version " : " bedrock-2023-05-31 " } "
}
不協和音を軽減するために、このプロジェクトでは、各 FM から各スキーマを抽象化するためのシンプルかつ強力な実装を導入します。これは、複雑なオブジェクトの構築をその表現から分離する Builder デザイン パターンを使用することで可能になります。この場合、複合オブジェクトは Amazon Bedrock に送信する必要があるリクエスト本文です。さまざまな FM の使用を可能にするために、コマンド設計パターンも使用されました。各 FM にはコマンドの実装があります。このようにして、各 FM は独自の方法で固有のパラメータを処理できます。
実践的なチュートリアルでこのコードを操作する方法を学びたい場合は、以下の YouTube ビデオをご覧ください。
BedrockRequestBody 実装を使用するには、クラスからbuilder()
静的メソッドを呼び出し、必要なパラメーター (それぞれmodeId
とprompt
の提供を開始するだけです。 When Christmas is celebrated?
AI21Labs Jurassic-2 Mid
を使用する方法は次のとおりです。
String bedrockBody = BedrockRequestBody . builder ()
. withModelId ( "ai21.j2-mid-v1" )
. withPrompt ( "When Christmas is celebrated?" )
. build ();
同様に、 Anthropic Claude V2
FM を使用する場合は、次のように作業します。
String bedrockBody = BedrockRequestBody . builder ()
. withModelId ( "anthropic.claude-v2" )
. withPrompt ( "When Christmas is celebrated?" )
. build ();
もっと簡単ですよね? ?
詳細については、「貢献」を参照してください。
このプロジェクトは、MIT-0 ライセンスに基づいてライセンスされています。 LICENSE ファイルを参照してください。