Share via


プロンプト フローの開発

Note

Azure AI Studio は、現在、パブリック プレビュー段階です。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。

プロンプト フローは、大規模言語モデル (LLM) によって動作する AI アプリケーションの開発サイクル全体を合理化するために設計された開発ツールです。 プロンプト フローは、AI アプリケーションのプロトタイプ作成、実験、反復、デプロイのプロセスを簡素化する包括的なソリューションを提供します。

プロンプト フローを使用すると、次のことが可能になります。

  • 視覚化されたグラフを介して LLM、プロンプト、Python ツールを使用する実行可能フローを調整する。
  • フローを簡単にテスト、デバッグ、反復処理する。
  • プロンプト バリアントを作成し、そのパフォーマンスを比較する。

この記事では、Azure AI Studio で最初のプロンプト フローを作成して開発する方法について説明します。

前提条件

プロンプト フローを作成して開発する

フローを作成するには、ギャラリーで使用可能なサンプルを複製するか、最初からフローを作成します。 ローカルまたはファイル共有にフロー ファイルが既にある場合は、ファイルをインポートしてフローを作成することもできます。

次の手順で Azure AI Studio のギャラリーでプロンプト フローを作成します。

  1. Azure AI Studio にサインインし、[ビルド] ページからプロジェクトを選択します。

  2. 折りたたみ可能な左側のメニューから [プロンプト フロー] を選びます。

  3. [+ 作成] を選択します。

  4. [標準フロー] タイルで、[作成] を選びます。

  5. [新しいフローを作成する] ページでフォルダー名を入力し、[作成] を選択します。

    Screenshot of selecting and creating a standard flow.

  6. プロンプト フローの作成ページが開きます。 今すぐフローを作成できます。 既定では、サンプル フローが表示されます。 このフロー例には、LLM と Python ツール用のノードがあります。

    Screenshot of flow input and output on the edit prompt flow page.

    Note

    視覚化専用のグラフ ビュー。 これは、開発中のフロー構造を示しています。 グラフ ビューを直接編集することはできませんが、ズームイン、ズームアウト、スクロールはできます。 グラフ ビューでノードを選択すると、そのノードが強調表示され、ツール編集ビューでそのノードに移動できます。

  7. オプションで、フローにツールを追加することもできます。 表示されるツール オプションは、LLMプロンプトPython です。 その他のツールを表示するには、[+その他のツール] を選択します。

    Screenshot of where you can find more tools on the edit prompt flow page.

  8. LLM ツール エディターで接続とデプロイを選択します。

    Screenshot of the selected connection and deployment in the LLM tool on the edit prompt flow page.

  9. 実行を選択してフローを実行します。

    Screenshot of where to select run on the edit prompt flow page.

  10. フロー実行の状態は、[実行中] と表示されます。

    Screenshot of the flow in the running state on the edit prompt flow page.

  11. フローの実行が完了したら、[出力内容を表示する] を選択してフロー結果を表示します。

    Screenshot of where you can select to view flow results from the edit prompt flow page.

  12. [出力] セクションでフローの実行状態と出力を表示できます。

    Screenshot of the output details.

フローの作成

各フローは、flow.dag.yaml ファイル、ソース コード ファイル、システム フォルダーを含むフォルダーで表されます。 新しいファイルの追加、既存のファイルの編集、ファイルの削除を行うことができます。 ファイルをローカルにエクスポートしたり、ローカルからファイルをインポートしたりすることもできます。

フラット化ビューでノードをインライン編集するだけでなく、[生ファイル モード ] トグルをオンにし、ファイル名を選択して開いているファイル タブでファイルを編集することもできます。

フロー入力とフロー出力

フロー入力は、全体としてフローに渡されるデータです。 名前と型を指定して、入力スキーマを定義します。 各入力の入力値を設定して、フローをテストします。 ${input.[input name]} 構文を使用して、フローノードのフロー入力を後で参照できます。

フロー出力は、全体としてフローによって生成されるデータであり、フロー実行の結果が要約されています。 フロー実行またはバッチ実行の完了後に、出力テーブルを表示してエクスポートできます。 構文 ${[node name].output} または ${[node name].output.[field name]}を使用して、フローの単一ノード出力を参照してフロー出力値を定義します。

ノード出力を参照することで、ノードを互いにリンクできます。 たとえば、Python ノード入力で LLM ノード出力を参照して、Python ノードで LLM ノード出力を消費できるようにし、グラフ ビューで 2 つのノードが互いにリンクされていることを確認できます。

フローに対する条件付き制御を有効にする

プロンプト フローでは、フローを効率的に実行する方法だけでなく、開発者向けの強力な機能である条件付き制御も提供されており、この機能により、ユーザーはフロー内の任意のノードを実行するための条件を設定できます。

条件付き制御では、その中核として、フロー内の各ノードをアクティブ化構成に関連付ける機能が提供されます。この構成は基本的に、ノードを実行するタイミングを決定する "when" ステートメントです。 この機能の能力が認識できるのは、特定のタスクの実行が前のタスクの結果に依存する複雑なフローがある場合です。 条件付き制御を使用することで、指定した条件が満たされた場合にのみ実行するように特定のノードを構成できます。

具体的には、ノード カードの [Activate config] \(構成のアクティブ化\) ボタンを選択して、ノードのアクティブ化構成を設定できます。 "when" ステートメントを追加し、条件を設定できます。 フロー入力またはノード出力を参照することで、条件を設定できます。 たとえば、条件 ${input.[input name]} を特定の値として設定したり、${[node name].output} を特定の値として設定したりできます。

条件が満たされていない場合、ノードはスキップされます。 ノードの状態は "バイパス" と表示されます。

フローをテストする

フローは 2 つの方法でテストできます。つまり、1 つのノードを実行するか、フロー全体を実行します。

単一ノードを実行するには、フラット ビューのノードで [実行] アイコンを選択します。 実行が完了したら、ノード出力セクションで出力を確認します。

フロー全体を実行するには、右上にある [実行] ボタンを選択します。 その後、各ノードの実行状態と出力、およびフローで定義されたフロー出力の結果を確認できます。 フローの入力値をいつでも変更して、フローを再実行できます。

チャット フローを開発する

チャット フローは会話型アプリケーション開発用に設計されており、標準フローの機能に基づいて構築され、チャットの入力/出力とチャット履歴管理の高度なサポートを提供します。 チャット フローを使用すると、チャットの入力と出力を処理するチャットボットを簡単に作成できます。

チャット フローの作成ページでは、チャット フローは、標準フローや評価フローと区別するために "チャット" ラベルでタグ付けされています。 チャット フローをテストするには、[チャット] ボタンを選択して会話用のチャット ボックスをトリガーします。

チャットの入力/出力とチャット履歴

チャット フローを標準フローと区別する最も重要な要素は、チャット入力チャット履歴チャット出力です。

  • チャット入力: チャット入力とは、ユーザーによってチャットボットに送信されたメッセージまたはクエリを指します。 チャット入力を効果的に処理することは会話を成功させるために重要で、これにはユーザーの意図の理解、関連情報の抽出、適切な応答のトリガーが含まれます。
  • チャット履歴: チャット履歴は、ユーザー入力と AI によって生成された出力の両方を含む、ユーザーとチャットボットの間のすべてのやり取りの記録です。 チャット履歴の保持は、会話コンテキストを追跡し、AI がコンテキストに関連する応答を生成できるようにするために不可欠です。
  • チャット出力: チャット出力とは、ユーザーの入力に応答してユーザーに送信される AI によって生成されたメッセージを指します。 コンテキスト的に適切で人を引きつけるチャット出力を生成することは、肯定的なユーザー エクスペリエンスに不可欠です。

チャット フローには複数の入力を含めることができ、チャット フローではチャット履歴とチャット入力が必要です。

  • チャット フロー入力セクションでは、フロー入力をチャット入力としてマークできます。 その後、チャット ボックスに入力してチャット入力値を入力できます。

  • プロンプト フローは、ユーザーがチャット履歴を管理するのに役立ちます。 [入力] セクションの chat_history は、チャット履歴を表すために予約されています。 ユーザー チャット入力、生成されたチャット出力、その他のフロー入力と出力など、チャット ボックス内のすべてのやり取りは、チャット履歴に自動的に保存されます。 ユーザーは、[入力] セクションで chat_history の値を手動で設定することはできません。 これは次のような入力と出力の一覧として構造化されています。

    [
    {
        "inputs": {
        "<flow input 1>": "xxxxxxxxxxxxxxx",
        "<flow input 2>": "xxxxxxxxxxxxxxx",
        "<flow input N>""xxxxxxxxxxxxxxx"
        },
        "outputs": {
        "<flow output 1>": "xxxxxxxxxxxx",
        "<flow output 2>": "xxxxxxxxxxxxx",
        "<flow output M>": "xxxxxxxxxxxxx"
        }
    },
    {
        "inputs": {
        "<flow input 1>": "xxxxxxxxxxxxxxx",
        "<flow input 2>": "xxxxxxxxxxxxxxx",
        "<flow input N>""xxxxxxxxxxxxxxx"
        },
        "outputs": {
        "<flow output 1>": "xxxxxxxxxxxx",
        "<flow output 2>": "xxxxxxxxxxxxx",
        "<flow output M>": "xxxxxxxxxxxxx"
        }
    }
    ]
    

Note

チャット履歴を自動的に保存または管理する機能は、チャット ボックスでテストを行うときの作成ページの機能です。 バッチ実行の場合、ユーザーはバッチ実行データセット内にチャット履歴を含める必要があります。 テストに使用できるチャット履歴がない場合は、バッチ実行データセット内で chat_history を空のリスト [] に設定します。

チャット履歴を使用してプロンプトを作成する

チャット履歴をプロンプトに組み込むことは、コンテキストを認識し人を引きつけるチャットボット応答を作成するために不可欠です。 プロンプトでは、chat_history を参照して過去のやり取りを取得できます。 これにより、前の入力と出力を参照して、コンテキストに関連する応答を作成できます。

Jinja 言語の for ループ構文を使用して、chat_history から入力と出力の一覧を表示します。

{% for item in chat_history %}
user:
{{item.inputs.question}}
assistant:
{{item.outputs.answer}}
{% endfor %}

チャット ボックスを使用してテストする

チャット ボックスには、チャットボットとの会話をシミュレートすることで、チャット フローをテストする対話型の方法が用意されています。 チャット ボックスを使用してチャット フローをテストするには、次の手順に従います。

  1. [チャット] ボタンを選択して、チャット ボックスを開きます。
  2. テスト入力をチャット ボックスに入力し、Enter キーを押してチャットボットに送信します。
  3. チャットボットの応答を確認して、コンテキスト的に適切で正確であることを確認します。

次のステップ