適用対象: Azure Logic Apps (Standard)
注
この機能はプレビュー段階にあり、「Microsoft Azure プレビューの追加使用条件」が適用されます。
たとえば、企業や組織が従業員、顧客、投資家、メディアなど、さまざまなグループの質問に答える方法を自動化したいとします。 [プロンプト テンプレートを使用してチャットの完了を取得する] という名前の Azure OpenAI サービス アクションと、企業または組織のデータを使用して、質問に応答するチャット操作を追加できます。
Azure OpenAI Service のモデルで独自のデータを使用する場合は、より高速な通信を提供し、特定のドメイン知識からコンテキストを引き出す、AI を利用した会話プラットフォームを作成します。 各質問を処理し、データ ソースにアクセスして応答を返すプロセスを構築するには、Azure Logic Apps で標準ワークフローを作成して、必要な手順をすべてコードを記述せずに自動化します。
このガイドでは、 プロンプト テンプレート を開始点として使用して、標準ワークフローにチャットのやり取りを追加する方法について説明します。 このテンプレートは、AI モデルと質問者の間の相互作用をガイドする、事前構築済みの再利用可能なテキスト ベースの構造です。
次の図は、このガイドで作成されるワークフローの例を示しています。
このワークフローの操作の詳細については、「 シナリオの例を確認する」を参照してください。
テンプレートには、特定のユース ケースに合わせて効果的で便利で明確なプロンプトを作成するための次の利点があります。
メリット | 説明 |
---|---|
一貫性 | 各アクションにプロンプト テキストを埋め込むのではなく、プロンプト ロジックを一元化します。 |
再 利用 | 複数のワークフローに同じプロンプトを適用します。 |
保守容易性 | フロー全体を編集せずに、プロンプト ロジックを 1 か所で調整します。 |
動的制御 | ワークフロー入力は、フォーム、データベース、API からの値など、テンプレートに直接渡されます。 |
これらの利点はすべて、作業を重複することなく、スケーラブルなエンタープライズ自動化に適した適応可能な AI 駆動型フローを作成するのに役立ちます。
詳しくは、次のドキュメントをご覧ください。
シナリオの例を確認する
このガイドでは、IT チームのチャット アシスタントを作成するシナリオ例を使用します。 その他の責任の中で、チームは会社の従業員のノート PC などのハードウェアを調達します。 このアシスタントの要件には、次のタスクが含まれます。
- 自然言語を使用し、コンテキストを理解する質問を受け入れます。
- 過去の注文やカタログの詳細などの構造化データの読み取りと検索。
- 実行時にデータを動的に挿入する Jinja2 構文を使用して、結果をプロンプト テンプレートに渡します。
- 洗練されたプロフェッショナルな対応を生成します。
このワークフロー例では、次の操作を使用します。
オペレーション | 説明 |
---|---|
HTTP 要求が使用可能な場合という名前の組み込みトリガー | 外部の呼び出し元から HTTPS 要求が到着するまで待機します。 この要求により、トリガーが起動し、ワークフローが開始され、使用するワークフロー アクションの入力を含むシリアル化されたトークン文字列が渡されます。 |
3 つの Compose 組み込みアクション | これらのアクションには、次のテスト データが格納されます。 - 従業員: 従業員プロファイルと過去の調達注文。 - 質問: 問われた質問。 - 製品: 内部製品カタログエントリ。 |
プロンプト テンプレートを使用してチャットの完了を取得するという名前の組み込みアクション | 指定したプロンプト テンプレートに対するチャット完了を取得します。 詳細については、「 プロンプト テンプレートを使用してチャットの完了を取得する」を参照してください。 |
ヒント
選択できる場合は、常にマネージド ("共有") バージョンに対して組み込み ("アプリ内") 操作を選択します。 組み込みバージョンは Azure Logic Apps ランタイム内で実行され、待機時間が短縮され、パフォーマンスが向上し、認証を制御できます。
この例では、ワークフローが次のタスクを完了できるようにするプロンプト テンプレートを作成して使用します。
-
{{ Employee.orders }}
などのプレースホルダーを含むプロンプトを定義します。 - ワークフロー内の以前のアクションからの出力をテンプレートに自動的に設定します。
- 最小限の労力で一貫性のある構造化されたプロンプトを生成します。
この例に従うために、 サンプル プロンプト テンプレートと入力 を Azure Logic Apps GitHub リポジトリからダウンロードします。 この例では、テスト入力を使用して調達データをシミュレートしていることを前提としています。
[前提条件]
Azure アカウントとサブスクリプション。 Azure サブスクリプションがない場合は、無料の Azure アカウントにサインアップしてください。
テストに使用できる変数、入力、出力の実行履歴と値を格納する、空の ステートフル ワークフローを備えた標準ロジック アプリ リソース。
このリソースとワークフローを作成するには、「 Azure portal を使用して Standard ロジック アプリ ワークフローの例を作成する」を参照してください。
GPT-3.5 や GPT-4 などのデプロイ済みモデルを持つ Azure OpenAI サービス リソース 。
このハウツー ガイドの例では、ワークフローを試すために使用できるテスト データを提供します。 Azure OpenAI サービス モデルを使用して独自のデータとチャットするには、Azure AI Foundry プロジェクトを作成し、独自のデータ ソースを追加する必要があります。 詳しくは、次のドキュメントをご覧ください。
Azure OpenAI アクションをワークフローに追加すると、Azure OpenAI サービス リソースへの接続を作成できます。 選択した認証の種類に基づいて、Azure OpenAI Service リソースのエンドポイント URL と次の情報が必要です。
認証の種類 検索に必要な値 URL およびキーベースの認証 1. Azure OpenAI サービス リソースに移動します。
2. [リソース] メニューの [ リソース管理] で、[ キーとエンドポイント] を選択します。
3. エンドポイント URL といずれかの キー 値をコピーします。 これらの値を安全な場所に格納します。Active Directory OAuth 1. Microsoft Entra ID 認証を使用して OAuth 2.0 のロジック アプリ リソースを設定します。
2. Azure OpenAI サービス リソースに移動します。
3. [リソース] メニューの [ リソース管理] で、[ キーとエンドポイント] を選択します。
4. エンドポイント URL をコピーします。 この値を安全な場所に保存します。マネージド ID
(おすすめ)1. 一般的な手順に従って、ロジック アプリの Microsoft Entra ID を使用してマネージド ID を設定します。
2. Azure OpenAI サービス リソースに移動します。
3. [リソース] メニューの [ リソース管理] で、[ キーとエンドポイント] を選択します。
4. エンドポイント URL をコピーします。 この値を安全な場所に保存します。警告
資格情報、シークレット、アクセス キー、接続文字列、証明書、拇印など、機密性の高い個人データを常にセキュリティで保護し、最高レベルのセキュリティレベルまたはサポートされているレベルのセキュリティで保護します。
認証と承認を行うには、 マネージド ID で Microsoft Entra ID を 設定または使用 します。 このソリューションは、Azure がマネージド ID を自動的に処理するため、資格情報、シークレット、アクセス キーなどを手動で指定して管理することなく、最適で優れたセキュリティを提供します。 Azure Logic Apps のマネージド ID を設定するには、「Azure Logic Apps で マネージド ID を使用して Azure リソースへのアクセスと接続を認証する」を参照してください。
マネージド ID を使用できない場合は、使用可能な次の最上位レベルのセキュリティ ソリューションを選択します。 たとえば、リソース、サービス、またはシステムにアクセスするために必要な情報を含む接続文字列を使用する必要がある場合、この文字列にはルート パスワードに似たアクセス キーが含まれていることに注意してください。
このような情報は、Microsoft Entra ID と Azure Key Vault を使用して必ず安全に保存してください。 この情報をハードコーディングしたり、他のユーザーと共有したり、他のユーザーがアクセスできる場所でプレーンテキストで保存したりしないでください。 侵害された場合にシークレットをローテーションまたは取り消す計画を設定します。 詳細については、次のリソースを参照してください。
HTTP 要求を送信してソリューションをテストできる次のようなツールをインストールまたは使用します。
- Visual Studio Code を Visual Studio Marketplace からの拡張機能と一緒に使用する
- PowerShell Invoke-RestMethod
- Microsoft Edge - ネットワーク コンソール ツール
- ブルーノ
- カール
注意事項
資格情報、シークレット、アクセス トークン、API キーなどの機密データがあるシナリオでは、必要なセキュリティ機能でデータを保護するツールを必ず使用してください。 このツールはオフラインまたはローカルで動作する必要があり、オンライン アカウントへのサインインやクラウドへのデータの同期は必要ありません。 これらの特性を持つツールを使用すると、機密データを一般に公開するリスクが軽減されます。
トリガーを追加する
ワークフローには、実行を開始するタイミングを制御するトリガーが必要です。 シナリオに合った任意のトリガーを使用できます。 詳細については、トリガーを参照してください。
次の手順に従ってトリガーを追加します。
Azure portal で、Standard ロジック アプリ リソースと空のワークフローをデザイナーで開きます。
-
この例では、"HTTP 要求が使用可能な場合" という名前の要求トリガーを使用します。 このトリガーの詳細については、「 受信 HTTPS 呼び出しの受信と応答」を参照してください。
ワークフローを保存します。 デザイナーのツール バーで、 [保存] を選択します。
ワークフローを保存すると、要求トリガーの HTTP URL パラメーターに URL が表示されます。 この URL は、 要求 トリガー用に作成されたエンドポイントに属します。 トリガーを起動してワークフローを開始するためには、ワークフロー外の呼び出し元は URL に HTTPS リクエストを送信することによって、トリガーを通じてワークフローに渡すための入力を含めることができます。
警告
エンドポイント URL には Shared Access Signature (SAS) キーが含まれています。このキーを使用すると、URL を持つすべてのユーザーがワークフローをトリガーし、必要なデータを渡すことができます。 ワークフローの保護とセキュリティ保護の詳細については、ワークフロー 内のアクセスとデータのセキュリティ保護に関する記事を参照してください。
完了すると、ワークフローは次の例のようになります。
作成アクションの追加
後続のアクションが入力として使用するためにトリガー出力を格納する操作を追加するには、次の手順に従います。
トリガーの下で、 一般的な手順に従って、 Compose アクションという名前のデータ操作を追加します。
この例では、3 つの Compose アクションを追加し、次のテスト データを入力として使用します。
最初の Compose アクションの名前を Employee に変更し、[入力] ボックスに次のデータを 入力 します。
{ "firstName": "Alex", "lastName": "Taylor", "department": "IT", "employeeId": "E12345", "orders": [ { "name": "Adatum Streamline 5540 Laptop", "description": "Ordered 15 units for Q1 IT onboarding", "date": "2024/02/20" }, { "name": "Docking Station", "description": "Bulk purchase of 20 Adatum AB99Z docking stations", "date": "2024/01/10" } ] }
次の 作成 アクションの名前を 質問として変更し、[入力] ボックスに次のデータを 入力 します。
[ { "role": "user", "content": "When did we last order laptops for new hires in IT?" } ]
次の 作成 アクションの名前を [製品] に変更し、[入力] ボックスに次のデータを 入力 します。
[ { "id": "1", "title": "Adatum Streamline 5540 Laptop", "content": "i7, 16GB RAM, 512GB SSD, standard issue for IT new hire onboarding" }, { "id": "2", "title": "Docking Station", "content": "Adatum AB99Z docking stations for dual monitor setup" } ]
完了すると、ワークフローは次の例のようになります。
次に、Azure OpenAI アクションをワークフローに追加します。
Azure OpenAI アクションを追加する
最後の Compose アクションで、一般的な手順に従って、[プロンプト テンプレートを使用してチャットの完了を取得する] という名前の Azure OpenAI アクションを追加します。
アクションがデザイナー画面に表示されると、接続ウィンドウが開き、次の情報を指定できます。
パラメーター 必須 価値 説明 接続名 イエス < コネクション名> Azure OpenAI リソースへの接続の名前。 認証の種類 イエス 次のセクションを参照してください。
- 前提 条件
- Azure OpenAI 組み込みコネクタ認証接続で使用する認証の種類。 Azure OpenAI エンドポイント URL イエス < endpoint-URL-Azure-OpenAI-resource> Azure OpenAI リソースのエンドポイント URL。 詳細については、「前提条件」を参照してください。 認証キー URL とキーベースの認証にのみ必要 "<アクセス キー>" 次のセクションを参照してください。
- 前提 条件
- Azure OpenAI 組み込みコネクタ認証完了したら、[ 新規作成] を選択します。
操作ウィンドウが開いたら、[ パラメーター ] タブで、プロンプト テンプレートに使用する次の情報を指定します。
パラメーター 価値 説明 デプロイ識別子 - gpt-4o
- gpt-35Azure OpenAI でデプロイされたモデルの名前。これは、Azure OpenAI リソースに使用した名前と一致する必要があります。 プロンプト テンプレート < template-text> プロンプト テンプレート。 詳細については、「 プロンプト テンプレートを使用してチャットの完了を取得する」を参照してください。 この例では、テンプレート テキストの例を次のサンプル テキストに置き換えます。
system: You are an AI assistant for Contoso's internal procurement team. You help employees get quick answers about previous orders and product catalog details. Be brief, professional, and use markdown formatting when appropriate. Include the employee’s name in your response for a personal touch. # Employee info Name: {{Employee.firstName}} {{Employee.lastName}} Department: {{Employee.department}} Employee ID: {{Employee.employeeId}} # Question The employee asked the following: {% for item in question %} {{item.role}}: {{item.content}} {% endfor %} # Product catalog Use this documentation to guide your response. Include specific item names and any relevant descriptions. {% for item in Products %} Catalog item ID: {{item.id}} Name: {{item.title}} Description: {{item.content}} {% endfor %} # Order history Here is the employee's procurement history to use as context when answering their question. {% for item in Employee.orders %} Order Item: {{item.name}} Details: {{item.description}} — Ordered on {{item.date}} {% endfor %} Based on the product documentation and order history above, provide a concise and helpful answer to their question. Don't fabricate information beyond the provided inputs.
次の表では、テンプレートの例のしくみについて説明します。
Template 要素 課題 {{ Employee.firstName }} {{ Employee.lastName }}
従業員名を表示します。 {{ Employee.department }}
部門コンテキストを追加します。 {{ Question[0].content }}
[質問] という名前の 作成 アクションから従業員の 質問を挿入します。 {% for doc in Products %}
Products という名前の Compose アクションからカタログ データをループ処理します。 {% for order in Employee.orders %}
Employee という名前の Compose アクションから従業員の注文履歴をループ処理します。 各要素の値は、コードや外部サービスを必要とせずに、ワークフローの Compose アクションから動的にプルされます。 SharePoint リスト、SQL Server 行、電子メール本文、さらには AI 検索結果など、他の操作からのデータ出力を参照する場合にも、同じアプローチを適用できます。 出力をプロンプト テンプレートにマップし、ワークフローで残りの処理を行うだけで済みます。
[詳細パラメーター] ボックスの一覧で、[テンプレート変数のプロンプト] を選択します。この変数が [パラメーター] タブに表示されます。
[ パラメーター ] タブに表示されるキーと値のテーブルに、次のテンプレート変数名を入力し、ワークフローの前の Compose アクションから選択した出力を入力します。次に例を示します。
最初の行の最初の列に、変数名として 「Employee」 と入力します。
同じ行の次の列で、編集ボックス内を選択し、稲妻アイコンを選択して動的コンテンツ リストを開きます。
動的コンテンツの一覧の [従業員] で [出力] を選択 します。
質問と製品について、次の行と次の行で同じ手順を繰り返します。
完了すると、テーブルは次の例のようになります。
その他のパラメーターについては、「 プロンプト テンプレートを使用してチャットの完了を取得する」を参照してください。
完了すると、ワークフローは次の例のようになります。
ワークフローのテスト
ワークフローをトリガーするには、手順に基づいて HTTP 要求ツールを使用して、 要求 トリガーが予期するメソッドを含む、 要求 トリガーのコールバック URL に HTTPS 要求を送信します。
トリガーの基になる JSON 定義と、このトリガーを呼び出す方法の詳細については、次のドキュメントを参照してください。
ワークフローの実行が完了すると、実行履歴ページが開き、各アクションの状態が表示されます。
特定のワークフロー実行の実行履歴ページを後で見つけるには、次の手順に従います。
ワークフローのメニューの [ツール] で、[実行履歴] を選択します。
[ 実行履歴 ] タブで、検査するワークフロー実行を選択します。
チャット応答を見つけるには、実行履歴ページで Azure OpenAI アクションを選択します。
ペインが開き、選択したアクションの入力と出力が表示されます。
開いているウィンドウで、[ 出力 ] セクションまでスクロールします。
応答は、ワークフローに渡される構造化されたコンテキストに完全に基づいています。追加の微調整は必要ありません。
リソースをクリーンアップする
このガイド用に作成したリソースが不要な場合は、引き続き課金されないようにリソースを削除してください。 これらの手順に従って、これらのリソースを含むリソース グループを削除することも、各リソースを個別に削除することもできます。
Azure の検索ボックスに「リソース グループ」と入力し、[リソース グループ] を選択します。
この例のリソースを含むリソース グループを見つけて選択します。
[ 概要 ] ページで、[ リソース グループの削除] を選択します。
確認ウィンドウが表示されたら、リソース グループ名を入力して、 [削除] を選択します。