はじめに
今回はAmazon Bedrockの新機能「Prompt Flows」におけるノードの説明と、
旅行したい場所と期間を入力するだけで、おすすめの旅行プランを提示してくれるアプリケーションを作成しました。
「Prompt Flows」は、ノードを配置して生成AIのワークフローを開発・管理できるサービスです。
「Prompt Flows」におけるノードの説明
以下のサイトを参考にしました。
・開始と終了
Flow input
フローのスタート地点です。
Flow output
フローの処理結果の出力です。
・Logic
Collector
複数の入力を収集し、配列として返します。arrayItem入力に複数の項目を接続することができ、入力として配列のサイズを指定することもできます。出力は、配列項目が配列に追加された配列です。
Condition
フロー内のさまざまなパスにつながる条件を定義します。ノードに入力を提供し、評価する条件を追加します。条件が満たされない場合のデフォルト ブランチを含む各条件を、入力を送信するノードに接続します。
Iterator
配列を受け取り、配列のサイズとともに出力内の各項目を反復的に反復して次のノードに返します。配列内の各項目は、フローの出力で個別の応答を生成します。1 つの応答を生成するには、下流のコレクターノードを使用して項目を 1 つの配列に収集します。
・Orchestration
Agents
エージェント ノードは、入力と付随するセッションおよびプロンプト セッション属性を使用してエージェントを呼び出します。エージェントとそのエイリアスを選択します。次に、エージェントを呼び出すためのプロンプトとして使用する入力の部分と、オプションでセッションおよびプロンプト セッション属性を定義します。
Prompts
使用するLLMのモデルと、プロンプトを定義します。
生成された応答が出力部分に出力されます。
・Code
Lambda function
Lambda 関数を呼び出して、ビジネスロジックを実行するコードを定義できます。
・Data
Knowledge base
独自の情報を生成AIアプリケーションに統合することができます。
検索拡張生成(RAG)技術を用いて、ナレッジベースはあなたのデータを検索し、最も有用な情報を見つけ出し、それを使って自然言語の質問に答えます。
S3 Retrieval
Amazon S3 の場所からデータを取得し、フローに導入できます。
設定では、データを取得する S3 バケットを指定し、ノードは S3 ロケーション内のコンテンツを出力として返します。
※注記
現在、S3 の場所のデータは UTF-8 でエンコードされた文字列である必要があるようです。
S3 Storage
S3ストレージノードを使用すると、フロー内のデータを、Amazon S3 の場所に保存できます。
データを保存する S3 バケットを選択し、オブジェクトキーに加えて、保存前に入力データを変更する方法を指定します。
・AI Services
Lex
Lexノードを使用すると、Amazon Lexボットを呼び出して、自然言語処理を使用して発話を処理し、ボット定義に基づいてインテントを識別できます。
導入
Flow inputは、フローのスタート地点です。
Promptsの部分では、
LLMのモデルの設定と、プロンプトの定義をおこないます。
Define in node を選択し、使いたいLLMのモデルを設定してください。
今回は、Claude 3 Haiku を使用しています。
今回プロンプトは以下のように定義します。
{{place}} に{{day}}日間、旅行に行きます。 良い旅のプランを紹介してください。
Flow outputは、フローの処理結果の出力です。
LLMの実行結果
{"place": "京都", "day": 3}
と入力してみたところ、以下のような出力結果を得ました。
まとめ
今回はAmazon Bedrockの新機能「Prompt Flows」におけるノードの説明と、
おすすめの旅行プランを提示してくれるアプリケーションを作成しました。
この新しい機能を使いこなすためにも、今後様々なアプリケーションを作成できればなと思います。