0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Azure AI Foundry プロンプトフロー(Prompt Flow) ことはじめ

Last updated at Posted at 2025-05-04

Azure AI Foundryのプロンプトフロー(Prompt Flow)を利用した処理実行やフローの作成方法について、とりまとめます。

image.png

前提として、以下投稿内のAzure OpenAI Serviceの作成と生成AIモデルのデプロイについて完了していることが必要となります。
https://qiita.com/Higemal/items/704a245125b71994b563

流れ

  1. プロンプトフローの機能有効化
  2. デフォルトのプロンプトフローを使用した動作確認
    2.1 プロンプトフローの作成
    2.2 プロンプトフローの画面とデフォルト処理の説明
    2.3 処理準備(inputおよびLLM)
    2.4 処理準備(コンピューティングセッション)
    2.5 処理実行と実行結果確認
  3. 処理の分割/分岐/結合について
  4. その他注意事項
    4.1 課金要素について
    4.2 処理連結について

1. プロンプトフローの機能有効化

デフォルト状態ではプロンプトフローが利用できません。まずはAzure OpenAIプロジェクトを作成し、プロンプトフローを利用できる状態にします。

まず、Azure OpenAI ServiceからAI Foundryポータル画面に移動し、ホーム - プロジェクトで最適化するを押下します。
image.png


プロジェクトの作成画面で、プロジェクト名を入力し、カスタマイズを押下します。
image.png


プロジェクトの詳細画面で各種情報を入力します。ハブ名については任意の名称を付与し、それ以外は先に作成してあるAzure OpenAI Serviceの作成情報と同じ内容を入力しています。
image.png


確認画面にて作成を押下します。しばらく作成に時間がかかります。
image.png


その後、プロジェクト画面に遷移し、プロンプトフローが表示されるようになりました。
image.png

2. デフォルトのプロンプトフローを使用した動作確認

利用可能になったプロンプトフローについて、デフォルトテンプレートを利用して動作確認を行います。

2.1 プロンプトフローの作成

まず、プロンプトフローの画面から作成を押下します。
image.png


標準フローについて作成を押下します。
右ペインが表示されるので、フォルダー名について任意で命名付与し、作成`を押下します。
image.png

以下エラーが表示される場合、Azure側で内部的にプロンプトフローの利用準備が完了していないため、時間をあけてリトライすれば問題なく利用開始できます。
image.png


プロンプトフローのデフォルト画面が開設しました。
image.png


2.2 プロンプトフローの画面とデフォルト処理の説明

画面内の情報量が多いので、以下で各要素について分解します。

項番 画面名 内容
入力 処理のインプット情報を入力する部分で、テキストや数値等を名前,種類(型),として入力します。
出力 処理の出力結果を受け取る部分になります。処理により、複数の出力結果(変数)を設けることができます。
処理部 LLM/Prompt/Pythonなどの処理を記述するところになります。
クローン/保存 状況の保存およびクローンして新規プロンプトフローを作成することができます。
コンピューティングセッション管理 処理に利用するコンピュートリソースとセッションを管理します。
実行 プロンプトフローの処理実行ボタンになります。
グラフ 処理の連環が表現されています。この画面で処理間の連携/解除は操作できません。

image.png


続いて、処理内容について概説します。

処理 内容
input string型の変数topicに ユーザ入力のテキスト内容を格納
joke OpenAI Serviceを利用し、 Inputとなる変数topicのテキストから ジョーク文をテキストとして生成
echo Python処理を実行し、 Inputとなる処理Jokeのアウトプットテキストを 無加工でアウトプット
outputs 処理echoのアウトプットを受け取り、 変数jokeに格納

image.png


2.3 処理準備(inputおよびLLM)

処理実行準備として、まずはinput部にテキスト入力を行います。
こちらの入力内容をトリガーとしてLLMが実行されるため、適当な単語等を入力しておきます。
image.png


また、LLM処理部は使用するAOAIサービスや生成AIモデルを事前選択しておく必要があるため選択しておきます。
image.png


2.4 処理準備(コンピューティングセッション)

最後の準備事項として、python処理や処理間連携に使用するコンピュートリソースのセッション接続を行います。

特に設定しない場合、コンピューティングセッションの開始を押下するだけでサーバレス型のコンピュートリソースが起動しますが、理解と制御のために詳細設定から始めるを押下します。
image.png


コンピューティング設定画面が起動します。

コンピューティングの種類にて、サーバーレスとコンピューティングインスタンスが利用可能です。コンピューティングリソースを利用する場合、プロンプトフロー用のインスタンス作成と管理が必要になるため、単純な動作確認レベルであればサーバレスで問題ありません。 サーバレスのなかで、費用がかからないもの/なるべく低いものを選択すればよいでしょう。
アイドリングからのシャットダウンを有効にする場合、コンピュートリソースについて所定時間経過後に自動で停止してくれます(逆に、この設定を無効化すると手動停止するまで課金継続となります)。最低で20分経過したらリソース停止するよう設定できますため、20分を設定しておくとよいでしょう。
image.png


ベースイメージの設定画面では、起動するコンテナイメージの選択が可能ですが、最新のイメージを使用するで問題ありません。
image.png


コンピューティングセッションを適用して開始を押下します。
image.png


おおよそ1~5分程度でコンピューティングセッション実行中になります。
image.png

2.5 処理実行と実行結果確認

それでは処理を実行します。
青い実行ボタンを押下すると処理が実行されます。
image.png


少し待つと処理完了と表示されます。
処理の結果については出力の表示を押下します。
image.png


出力結果について、出力変数ごとに内容が表示されます。
image.png


また、処理実行後には処理単位の入出力結果を確認することが可能です。
LLM処理のような冪等性が高くない処理の内容確認や、処理フロー内の想定外混入などに利用できるものと思われます。

joke処理
image.png
image.png

echo処理
image.png
image.png

3. 処理の分割/分岐/結合について

内容が長くなるため、以下記事に別掲します。

4. その他注意事項

4.1 課金要素について

課金要素は主に以下の2つです。
・コンピューティングセッションにおけるインスタンス使用料金
・LLM利用におけるAzure OpenAI Service使用料金

特に前者のインスタンス使用料金については、デフォルトの場合で作業時間課金/設定次第では手動停止しない限り継続課金となるため、セッション接続時間を最低限度にすることで費用を抑えることが可能です。

OpenAI Service使用料はトークン課金形態のため、大量のトークン消費や複数LLM処理配置などを意識して避けることで費用低減につなげられます。

4.2 処理連結について

処理と処理の連結については、各処理の入力項目を設定することで定義します。
(出力部については、最終処理のアウトプットを記載することで矢印が描画)

プルダウンで候補が表示されるため手打ち入力することは必要ありませんが、グラフペインで矢印のつなぎかえなどの操作はできないため、処理分岐や複数入出力の際は注意して設定するようにしましょう。

image.png

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?