超初心者向け！Prompt flowの始め方を徹底解説してみた

## はじめに
「Prompt flow」とは、Azure Machine Learning（AzureML）の機能の一つで、プロンプトエンジニアリングプロジェクトの開発、評価、デプロイ等をワークフローに変えることがツールです。

今回の記事ではPrompt flowの使用のための手順として、アカウントの作成からPrompt flowの作成、実行までを詳細に説明していきます。

:::note 
備忘録として、Azure特有の似たような言葉(Azure AI StudioとAzure Machine Learning Studio)についても軽く触れています。
:::


## step1.アカウントの作成とAPIの準備
まずMicrosoftとAzureのアカウントの２つを作成します。

Azureのアカウント作成にはクレジットカードの情報が必要です。

https://account.microsoft.com/account?lang=ja-jp

https://azure.microsoft.com/ja-jp/free/search/?ef_id=_k_CjwKCAiAk9itBhASEiwA1my_6zbsxxtQtWIFlcBsWGBWrw2VcA-sKqISO4yTo6-Cy6cKMvjaRyPnvRoCowAQAvD_BwE_k_&OCID=AIDcmmve823aza_SEM__k_CjwKCAiAk9itBhASEiwA1my_6zbsxxtQtWIFlcBsWGBWrw2VcA-sKqISO4yTo6-Cy6cKMvjaRyPnvRoCowAQAvD_BwE_k_&gad_source=1&gclid=CjwKCAiAk9itBhASEiwA1my_6zbsxxtQtWIFlcBsWGBWrw2VcA-sKqISO4yTo6-Cy6cKMvjaRyPnvRoCowAQAvD_BwE

:::note
2024年1月現在では、Azureの無料クレジットが$200もらえます:tada:
なので無料でモデルまで使いたい人は、以下で紹介するAzure OpenAIでのモデルAPIの設定をすると良いです。
:::

次にPrompt flowで用いるモデルのAPIを使える状態にします。プロバイダーはAzure OpenAIやOpenAI等、設定することができます。

Azure OpenAIを使いたい場合は以下の記事を参考にすると良いです。

https://www.desknets.com/neo/download/doc/chatgpt/chatgpt_azure.html

## step2.Azure Machine Learingのワークスペースの作成
Azureサービスからリソースの作成->Azure Machine Learningを選択します。


![ 2024-01-28 23.12.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/487820/6d4ad702-0776-6967-5d79-cebb2f12d752.png)

:::note warn
Azure AI Studioと名前を間違いにくいので注意してください。Azure AI StudioでもPrompt flowを作成できますが、今回はAzure Machine Learningを使います。
:::

次にAzure Machine Learningから「+作成」->「新しいワークスペース」を選択してワークスペースを作ります。

![ 2024-01-28 23.14.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/487820/529be34c-92c3-cad1-6374-b7cfe98c26ed.png)


ワークスペースの作成において、「ネットワーク」ではアクセスの制限ができるので、要件に合わせて選択してください。

![ 2024-01-28 23.19.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/487820/532fd9be-8e29-5132-d5ec-cebf79a726a6.png)

## step3. ワークスペースからAzure Machine Learning Studioを起動
step2で作成したワークスペースを右クリックすると、ワークスペースの詳細が表示されます。
以下の「スタジオの起動」ボタンを押してAzure Machine Learning Studioを起動します。


![ 2024-01-28 23.35.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/487820/627e6a19-688d-e429-d285-eeb7e8f9d1a9.png)

:::note warn 
ちなみに今回起動するAzure Machine Learning Studioは、Azure Machine Learning Studio(クラシック)とは別物です。
:::

## step4. Prompt flowの作成
step3で起動したAzure Machine Learning Studioのサイドバーから「プロンプト　フロー」を選択します。

![ 2024-01-28 23.38.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/487820/992a43a5-ae6f-70c7-1519-8441e0963820.png)

次にフローの作成->作成したいフローを選択します。今回は簡単のため、標準フローを選択して作成します。

![ 2024-01-28 23.40.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/487820/655b16d7-dd52-81bb-018f-f7022fc004fb.png)

作成が成功すると以下のような「llmがjokeを出力する」というフローが作成されます。(202４年1月現在)

![ 2024-01-28 23.42.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/487820/3fd9b317-f81b-a89e-9dc5-bb66f9a44271.png)

## step5. Prompt flowのモデルの設定
次に作成したフローにモデルの情報を紐づけます。フローのllmの「接続の追加」から該当プロバイダー(ex.Open AI)を選択し、API Keyなどの情報を入力してください。

![ 2024-01-28 23.47.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/487820/4d174baf-f314-faaa-541d-9447698ff23c.png)

筆者はOpenAIのAPIを用いて以下のように設定しました。(ここは個人の自由です。)

![ 2024-01-29 0.01.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/487820/b4a14ef2-1dd9-2961-455c-bb515361646e.png)

## step6. Prompt flowの実行
最後にランタイムの設定をし、入力を入れて実行していきます。

フローの上部の「ランタイム」からランタイムを選択します。ここでは簡単のため「自動ランタイム」の開始を選択します。
ランタイムの開始には数分かかります。

![ 2024-01-29 0.19.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/487820/e3932b9e-2ee0-2e66-edbc-b937ab112477.png)

入力欄にテキストを入力して、実行ボタンを押すと実行できます。

実行が完了したら、出力表示のポップアップが出現します。
出力欄には入力と出力が保存されています。

![ 2024-01-29 0.26.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/487820/a687c529-b34d-0171-656b-1f1ccdd52985.png)

実行が終わったら、ランタイムを停止することを忘れずに。

![ 2024-01-29 0.28.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/487820/c1d91740-c2fc-1c9c-3ec0-344a76523538.png)



## おわりに
いかがだったでしょうか。

記事通り進めれば問題なく実行できるはずなので、皆さんもPrompt flowを試してみてください。(前述の通り、今なら全て無料でできます!)

## 補足

- （ワークスペース作成時の）ストレージアカウントのアクセス

https://learn.microsoft.com/ja-jp/azure/machine-learning/how-to-datastore?view=azureml-api-2&WT.mc_id=Portal-Microsoft_Azure_MLTeamAccounts&tabs=sdk-identity-based-access%2Csdk-adls-identity-access%2Csdk-azfiles-accountkey%2Csdk-adlsgen1-identity-access%2Csdk-onelake-identity-access


- (Prompt flowの)ランタイムの作成

https://learn.microsoft.com/ja-jp/azure/machine-learning/prompt-flow/how-to-create-manage-runtime?view=azureml-api-2#create-automatic-runtime-preview-in-flow-page