Amazon Bedrockの新機能「Prompt flows」を試してみた

こんにちは、yokomachiです。

2024/7/11(日本時間)、AWS Summit New YorkでAmazon Bedrockの複数のアップデートが公開されました。

その中でもBedrockでLLMアプリを開発するツール「Prompt flows」について今回は実際に試しながら機能を見ていきたいと思います。

なお、2024/7/11時点でPrompt flowsはプレビュー版となります。

また、Azure AI StudioにもPrompt flow(末尾sがない)というツールがあるので、呼び分けには気をつけないとですね。

Bedrock Prompt flowsとは?

Streamline generative AI development in Amazon Bedrock with Prompt Management and Prompt Flows (preview) | AWS Machine Learning Blog

Bedrock Prompt flowsはLLMを利用したワークフローの開発をビジュアルエディタにより簡素化したものです。

ノーコード・ローコードでLLMアプリの開発ができ、Bedrockで提供されている複数のモデルの利用や、

デプロイのためのバージョン・エイリアスの管理なども可能です。

また、複雑なワークフローを組む場合はLambda関数によるコードフックの追加やLexなどのAIサービスとの統合なども可能なようです。

ノーコード・ローコードでLLMアプリを開発するツールとしてはDifyなどが人気ですが、

Bedrockでも同じようにノードを配置してLLMアプリ開発ができるようになりました。

さっそくLLMアプリを作ってみる

事前準備

LLMの有効化

あらかじめPrompt flowsで利用するLLMへのアクセスを有効化しておきます。

今回はClaude 3 Haikuを使います。

 

Knowledge baseの作成

また今回はKnowledge baseとの連携も試してみるので、事前にKnowledge baseの準備をしておきます。

データソースにはPrompt flowsの公開記事をPDFとしてS3に保存して使用します。

?Knowledge baseで回答を生成できるところまで確認

 

Prompt flowsの作成

素のLLMチャットボットを作ってみる

ではPrompt flowsでボットを作成していきます。

BedrockのオーケストレーションカテゴリにPrompt flowsページが追加されているので、そこから「Create prompt flow」を選択します。

名前やIAMロールの設定ダイアログが開くので設定します。

 

初期表示では以下のようにInputとOutputのノードのみが存在するフロー画面が開きます。

ここから任意のノードを配置してワークフローを作成していきます。

 

まずはごく単純に、インプットとして質問文を渡し、素のLLMに回答を生成してもらうチャットボットを作成します。

「Prompts」ノードを追加し、「Define in node」を選択してこのノード内にプロンプトの設定を行います。

初期状態では他のノードからのInputが受け取れませんが、

Messageの中に{{hogehoge}}の形式で変数名を入れると、Inputに変数が設定されます。

あとは以下のようにFlow InputとFlow outputを繋いであげれば完成です。

 

アプリのテストもこの画面上で可能です。

 

無事、素のLLMチャットボットが作成できました。

 

Knowledge baseと連携したLLMチャットボットを作ってみる

続いてKnowledge baseとの連携を試してみます。

まずは先ほど追加した「Prompts」ノードを削除します。

ノードの削除ボタンは結構わかりづらいところにあるのでご注意を。

 

「Knowledge base」ノードを追加します。

事前に作成しておいたKnowledge baseを紐づけて、「Generate responses based on retrieved results」を選択します。

Flow inputとFlow outputを前後に繋いでテストしてみます。

 

無事Knowledge baseからの回答を返すことができました。

 

デプロイ

作成したLLMアプリはエイリアスを指定してデプロイできます。

Prompt flowsの「Publish version」でバージョンを作成したあと、「Create alias」でバージョンに紐づくエイリアスを設定します。

 

これにより設定したエイリアスやPrompt flowsのIDなどを指定して、

以下のAPIからこのLLMアプリを呼び出すことができるようになるようです。

InvokeFlow – Amazon Bedrock

おわりに

Amazon Bedrockの新機能「Prompt flows」を試してみました。

今回は非常に単純なチャットボットの作成しかしていませんが、Lambdaの連携などでより複雑なフローの作成も試してみたいところです。

また、他にも最初に紹介したような多数のアップデートも公開されているのできちんとキャッチアップしていきたいと思います。

この記事が気に入ったら
いいね ! しよう

Twitter で

【採用情報】一緒に働く仲間を募集しています

採用情報
ページトップへ