こんにちは、yokomachiです。
2024/7/11(日本時間)、AWS Summit New YorkでAmazon Bedrockの複数のアップデートが公開されました。
- Claude 3 Haikuでファインチューニングが可能に
- Prompt Management と Prompt Flows が追加
- Knowledge Basesで複数のデータソースのサポートが追加
- Knowledge BasesがAdvanced RAGのサポートを追加
- Agents for Bedrockでコードインタプリタが利用可能に
- Agents for Bedrockで会話の長期記憶が可能に
その中でもBedrockでLLMアプリを開発するツール「Prompt flows」について今回は実際に試しながら機能を見ていきたいと思います。
なお、2024/7/11時点でPrompt flowsはプレビュー版となります。
また、Azure AI StudioにもPrompt flow(末尾sがない)というツールがあるので、呼び分けには気をつけないとですね。
目次
Bedrock Prompt flowsとは?
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アプリを呼び出すことができるようになるようです。
おわりに
Amazon Bedrockの新機能「Prompt flows」を試してみました。
今回は非常に単純なチャットボットの作成しかしていませんが、Lambdaの連携などでより複雑なフローの作成も試してみたいところです。
また、他にも最初に紹介したような多数のアップデートも公開されているのできちんとキャッチアップしていきたいと思います。
- Remix SPAモードで静的WebサイトをGithub Pagesにデプロイする - 2024-11-05
- LangGraph入門!LLMアプリ開発ライブラリのQuick StartをAmazon Bedrockでやってみる - 2024-10-10
- AWS ChatbotでSlackからAmazon Bedrock Agentにアクセスしてみる - 2024-09-18
- Amazon Bedrockの新機能「Prompt flows」を試してみた - 2024-07-11
- Amazon ConnectのZero-ETLがGAされたので試してみた - 2024-06-03