次の方法で共有


Azure Logic Apps 内のワークフローから Azure AI サービスに接続する

適用対象: Azure Logic Apps (従量課金プラン + Standard)

エンタープライズ サービス、システム、データを AI テクノロジと統合するために、ロジック アプリ ワークフローは、これらの統合シナリオに使用する Azure OpenAIAzure AI 検索に接続できます。

このガイドでは、ワークフロー内で Azure OpenAI および Azure AI 検索コネクタの操作を使用する方法を示す概要と例を示します。

AI サービスで Azure Logic Apps を使用する理由は?

通常、AI ソリューションの構築にはいくつかの重要な手順があり、いくつかの構成要素が必要です。 主に、動的インジェスト パイプラインと、大規模言語モデル (LLM) およびベクトル データベースと通信できるチャット インターフェイスが必要です。

ヒント

詳細について、Azure Copilot に次のように質問することができます。

  • AI における動的インジェスト パイプラインとは?
  • AI におけるベクトル データベースとは?

Azure Copilot を見つけるには、Azure portal のツール バーで、[Copilot] を選択します。

データ インジェストを実行するだけでなく、チャット インターフェイスの堅牢なバックエンドを提供するために、さまざまなコンポーネントを組み立てることができます。 このバックエンドは、プロンプトの入力を容易にし、対話中に信頼できる応答を生成します。 しかし、これらすべての要素を管理および制御するコードを作成することは、ほとんどのソリューションでそうであるように困難を伴う場合があります。

Azure Logic Apps は、コードが少ないアプローチを提供し、バックエンド プロセスを効率化するための構成要素として使用する事前構築済みのコネクタを提供することで、バックエンド管理を簡素化します。 このアプローチでは、データをソーシングし、検索結果が最新の関連情報を提供することを確認することに集中することができます。 これらの AI コネクタを使用すると、ワークフローは、AI サービスと統合する他のコンポーネントの間でデータを転送するオーケストレーション エンジンとして機能します。

詳細については、次のリソースを参照してください。

前提条件

  • Azure アカウントとサブスクリプション。 Azure サブスクリプションがない場合は、無料の Azure アカウントにサインアップしてください。

  • 接続情報を含む、ワークフローでアクセスして使用する Azure AI 検索と Azure OpenAI リソース:

  • Azure OpenAI および Azure AI 検索リソースにアクセスするロジック アプリ ワークフロー。

    現在、これらのサービスのコネクタでは、トリガーではなくアクションのみが提供されます。 Azure AI コネクタ アクションを追加する前に、ワークフローがシナリオに適したトリガーで開始されていることを確認します。

コネクタに関するテクニカル リファレンス

従量課金ワークフローでは、Azure OpenAIAzure AI 検索のマネージドまたは "共有" コネクタは現在プレビュー段階であり、Microsoft Azure プレビューの追加使用条件に従います。

Azure OpenAI

Azure OpenAI Service では、GPT-4、GPT-4 Turbo with Vision、GPT-3.5-Turbo、埋め込みモデル シリーズなど、OpenAI の言語モデルへのアクセスを提供します。 Azure OpenAI コネクタを使用すると、ワークフローは Azure OpenAI Service に接続し、データの OpenAI 埋め込みを取得したり、チャット補完を生成したりできます。

ヒント

詳細について、Azure Copilot に次のように質問することができます。

  • AI における埋め込みとは?
  • AI におけるチャット補完とは?

Azure Copilot を見つけるには、Azure portal のツール バーで、[Copilot] を選択します。

Azure OpenAI コネクタには、ロジック アプリの種類とホスティング モデルに基づいてさまざまなバージョンがあります。

ロジック アプリ 環境 コネクタのバージョン
従量課金プラン マルチテナント Azure Logic Apps Azure でホストされるマネージド コネクタ。コネクタ ギャラリーの [ランタイム]>[共有] の下に表示されます。

詳細については、Azure OpenAI のマネージド コネクタのリファレンスに関する記事を参照してください。
Standard シングルテナントの Azure Logic Apps、App Service Environment v3 (Windows プランのみ)、または独自のインフラストラクチャであるハイブリッド デプロイ。 組み込みコネクタ。[ランタイム]>[アプリ内] の下のコネクタ ギャラリーに表示され、サービス プロバイダーベースとなります。 組み込みコネクタには、次のような機能があります。

- 複数の認証の種類のサポート

- ファイアウォールの内側にある Azure OpenAI の Azure 仮想ネットワークとエンドポイント内のリソースへの直接アクセス。

詳細については、「Azure OpenAI の組み込みコネクタのリファレンス」を参照してください。

Azure AI Search は、大規模言語モデルとエンタープライズ データを組み合わせて、開発者が豊富な検索エクスペリエンスと生成型 AI アプリを構築できるようにする、AI を利用した情報取得用プラットフォームです。 Azure AI 検索コネクタを使用すると、ワークフローは Azure AI 検索に接続してドキュメントのインデックスを作成し、データに対するベクトル検索を実行できます。

Azure AI 検索コネクタには、ロジック アプリの種類とホスティング モデルに基づいてさまざまなバージョンがあります。

ロジック アプリ 環境 コネクタのバージョン
従量課金プラン マルチテナント Azure Logic Apps Azure でホストされるマネージド コネクタ。コネクタ ギャラリーの [ランタイム]>[共有] の下に表示されます。

詳細については、Azure AI 検索のマネージド コネクタのリファレンスに関する記事を参照してください。
Standard シングルテナントの Azure Logic Apps、App Service Environment v3 (Windows プランのみ)、または独自のインフラストラクチャであるハイブリッド デプロイ。 組み込みコネクタ。[ランタイム]>[アプリ内] の下のコネクタ ギャラリーに表示され、サービス プロバイダーベースとなります。 組み込みコネクタには、次のような機能があります。

- 複数の認証の種類のサポート

- ファイアウォールの内側にある Azure OpenAI の Azure 仮想ネットワークとエンドポイント内のリソースへの直接アクセス。

詳細については、Azure AI Search の組み込みコネクタのリファレンスを参照してください。

認証

AI マネージド コネクタには、認証用の API キーが必要です。 ただし、AI 組み込みコネクタでは、AI サービス エンドポイントに対して複数の認証の種類がサポートされています。 これらのオプションは、ほとんどの顧客のニーズを満たす堅牢な認証を提供します。 また、どちらの組み込みコネクタも、仮想ネットワーク内またはファイアウォールの内側にある Azure OpenAI および Azure AI 検索リソースに直接接続できます。

次の表では、組み込みのコネクタ認証オプションについて説明します。すべてで、AI サービス エンドポイントの URL を指定する必要があります。

認証の種類 説明
URL およびキーベースの認証 AI サービスによって生成された API キーまたは管理者を指定します。
Active Directory OAuth (Microsoft Entra ID) Entra テナント、クライアント ID、パスワードなどの情報を指定して、Entra ユーザーとして認証します。
マネージド ID お使いの AI サービス リソースとロジック アプリ リソースでマネージド ID 認証を設定すると、その ID を使用してコネクタのアクセスを認証できます。

重要

最適なセキュリティを確保するために、可能な場合はマネージド IDMicrosoft Entra ID を認証に使用します。 この方法を使用すると、資格情報を指定しなくても優れたセキュリティが実現します。 この ID は Azure で管理され、認証情報が安全に保たれるため、この機密情報をユーザー自身が管理する必要はありません。 Azure Logic Apps のマネージド ID を設定するには、「Azure Logic Apps でマネージド ID を使用して Azure リソースへのアクセスと接続を認証する」を参照してください。

別の認証の種類を使用する必要がある場合は、使用可能な次の最上位レベルのセキュリティ オプションを使用します。 たとえば、接続文字列を使用して接続を作成する必要があるとします。 接続文字列には、アプリが特定のリソース、サービス、またはシステムにアクセスするために必要な認可情報が含まれます。 接続文字列内のアクセス キーは、サービスのルート パスワードに似ています。

運用環境では、資格情報、証明書、拇印、アクセス キー、接続文字列などの秘匿性の高い情報とシークレットを常に保護します。 このような情報は、Microsoft Entra ID と Azure Key Vault を使用して必ず安全に保存してください。 この情報をハードコーディングしたり、他のユーザーと共有したり、他のユーザーがアクセスできる場所にプレーンテキストで保存したりしないでください。 この情報が侵害された可能性があると思われる場合は、できるだけ早くシークレットをローテーションします。 詳細については、Azure Key Vault の概要に関する記事を参照してください。

詳細については、次のリソースを参照してください。

Azure OpenAI または Azure AI Search アクションをワークフローに追加する

現在、Azure OpenAI と Azure AI 検索用のコネクタでは、トリガーではなく、アクションのみが提供されています。 シナリオやニーズに合った任意のトリガーでワークフローを開始できます。 従量課金または Standard ワークフローのどちらを使用しているかに基づいて、次の一般的な手順に従って、Azure OpenAI、Azure AI 検索、その他の操作に対するアクションを追加できます。

シナリオ

次のシナリオでは、ワークフローで AI コネクタ操作を使用できる多くの方法のうち、2 つだけを説明します。

エンタープライズ データ用にナレッジ ベースを作成する

Azure Logic Apps には、SharePoint、Oracle DB、Salesforce、OneDrive、Dropbox、SAP、IBM などのほぼすべてのデータ ソースと安全に接続するための、1,400 を超える Microsoft マネージド コネクタネイティブで実行される組み込みコネクタが用意されています。 各コネクタには、ワークフローで使用するためのトリガー、アクション、またはその両方を含む操作が用意されています。

たとえば、多くの種類のトリガーから選択して、スケジュールに従って、または特定のイベント (SharePoint サイトに新しいドキュメントをアップロードするなど) に基づいて、自動化されたワークフローを実行できます。 多くの操作を選択できるため、ナレッジ ベースを作成し、Azure AI Search でこれらのドキュメントにベクトル埋め込みを使用してドキュメント インジェスト パイプラインを簡単に構築できます。

詳細については、次のリソースを参照してください。

入力候補を生成する

Azure Logic Apps ワークフローは入力を受け入れ、Azure OpenAI Service は入力候補操作を実行できます。 これらの機能は、ワークフローがリアルタイムの質問を取り込んだり、データに関する回答を生成したり、Azure OpenAI を使用して自動応答を送信したりできることを意味します。 すぐにクライアントや検証用の承認ワークフローに応答を送信できます。

詳細については、次のリソースを参照してください。

サンプル コードを使用したシナリオ例: データの取り込みとチャット操作の作成

この Standard ワークフローの例では、Azure OpenAI と Azure AI 検索の組み込みコネクタを使用して、データの取り込みと簡単なチャット会話を行うためのバックエンド ロジックを、2 つの主要なワークフローに分割する方法を示します。 パフォーマンスを向上させるには、既定では実行ごとに履歴を保存しないステートレス ワークフローを作成します。

サンプル コード

取り込まれたデータを使用してチャットを作成する

その他の前提条件

  • Standard ロジック アプリ ワークフロー

  • サンプル コードの要件を参照してください。

  • 次の環境間パラメーター値は、この例のワークフロー操作でも使用されます。

    パラメーター名 説明
    aisearch_admin_key Azure AI Search の管理者キー
    aisearch_endpoint Azure AI Search の例のエンドポイント URL
    aisearch_index_name Azure AI Search の例に使用するインデックス
    openapi_api_key Azure OpenAI の API キー
    openai_deployment_id Azure OpenAI の例のデプロイ ID
    openai_endpoint Azure OpenAI の例のエンドポイント URL
    tokenize_function_url データをバッチ処理してトークン化するカスタム Azure 関数の URL。Azure OpenAI でこの例の埋め込みを適切に作成するために必要です。

    この関数の詳細については、「取り込まれたデータを使用してチャットを作成する」のサンプル コードを参照してください。

動画: ロジック アプリを使用して AI アプリケーションを構築する方法について学習する

ロジック アプリを使用して AI アプリケーションを構築する方法について学習する

データの取り込みワークフロー

インジェスト パイプラインを構築するときの時間と労力を大幅に節約するには、任意のデータ ソースで次のパターンを実装します。 このパターンは、シングルテナントの Azure Logic Apps の Standard ワークフローによって現在提供されているすべての利点とベネフィットをカプセル化します。

このパターンの各ステップにより、AI によってデータ ファイルからすべての重要な情報がシームレスに抽出されます。 ステートレス ワークフローとして実行する場合、このパターンではパフォーマンスも向上します。 この方法により、コーディングの側面が簡略化されるだけでなく、ワークフローに有効な認証、監視、デプロイ プロセスが適用されます。

Azure portal、Standard ワークフロー デザイナー、およびデータ インジェスト機能を実装するワークフロー操作を示すスクリーンショット。

Step タスク 基になる操作 説明
1 新しいデータを確認する。 HTTP 要求の受信時 スケジュールされた繰り返しに基づいて、または特定のイベントにそれぞれ応答して、新しいデータが到着するまでポーリングまたは待機のいずれかを行うトリガー。 このようなイベントは、SharePoint、OneDrive、Azure Blob Storage などの特定のストレージ システムにアップロードされる新しいファイルである可能性があります。

この例では、要求のトリガー操作は、別のエンドポイントから送信された HTTP または HTTPS 要求を待機します。 要求には、新しくアップロードされたドキュメントの URL が含まれます。
2 データを取得します。 HTTP トリガー出力からファイル URL を使用してアップロードされたドキュメントを取得する HTTP アクション。
3 ドキュメントの詳細を作成する。 Compose さまざまな項目を連結するデータ操作アクション。

この例では、ドキュメントに関するキーと値の情報を連結します。
4 トークン文字列を作成します。 ドキュメントを解析する 作成アクションからの出力を使用してトークン文字列を生成するデータ操作アクション。
5 コンテンツ チャンクを作成します。 テキストをチャンクする コンテンツ チャンクあたりの文字数またはトークン数に基づいてトークン文字列を分割するデータ操作アクション。
6 トークン化されたデータを JSON に変換する。 Parse JSON トークン文字列チャンクを JSON 配列に変換するデータ操作アクション。
7 JSON 配列項目を選択する。 Select JSON 配列から複数の項目を選択するデータ操作アクション。
8 埋め込みを生成する。 複数の埋め込みの取得 各 JSON 配列項目の埋め込みを作成する Azure OpenAI アクション。
9 埋め込みとその他の情報を選択する。 Select 埋め込みやその他のドキュメント情報を選択するデータ操作アクション。
10 データのインデックスを作成する。 ドキュメントのインデックスの作成 選択した各埋め込みに基づいてデータのインデックスを作成する Azure AI Search アクション。

チャット ワークフロー

ベクトル データベースがデータを取り込み続ける中、ユーザーが質問したときにバックエンド Standard ロジック アプリのワークフローがプロンプトを処理し、信頼性の高い応答を生成できるように、データが簡単に検索可能であることを確認します。

次のパターンは、チャット ワークフローの外観を示す 1 つの例にすぎません。

Azure portal、Standard ワークフロー デザイナー、チャット対話を実装するワークフロー操作を示すスクリーンショット。

Step タスク 基になる操作 説明
1 入力プロンプトを待機。 HTTP 要求の受信時 スケジュールされた繰り返しに基づいて、または特定のイベントにそれぞれ応答して、新しいデータが到着するまでポーリングまたは待機のいずれかを行うトリガー。

この例では、要求トリガーは、顧客の質問を待機してキャプチャします。
2 モデルのシステム メッセージを入力する。 Compose モデルをトレーニングするための入力を提供するデータ操作アクション。
3 サンプルの質問と回答を入力する。 Compose モデルをトレーニングするためのサンプルの顧客の質問と関連するロールを提供するデータ操作アクション。
4 検索クエリのシステム メッセージを入力する。 Compose モデルをトレーニングするための検索クエリ入力を提供するデータ操作アクション。
5 検索クエリを生成する。 JavaScript コードの実行 前の作成アクションからの出力に基づいて、JavaScript を使用してベクトル ストアの検索クエリを作成するインライン コード アクション。
6 クエリを埋め込みに変換する。 チャット入力候補の取得 チャット入力候補 API に接続する Azure OpenAI アクション。これにより、チャット会話での信頼性の高い応答が保証されます。

この例では、アクションは検索クエリとロールをモデルへの入力として受け入れ、ベクトル埋め込みを出力として返します。
7 埋め込みを取得する。 埋め込みの取得 1 つのベクトル埋め込みを取得する Azure OpenAI アクション。
8 ベクトル データベースを検索する。 ベクトルの検索 ベクトル ストアで検索を実行する Azure AI Search アクション。
9 プロンプトを作成する。 JavaScript コードの実行 JavaScript を使用してプロンプトを作成するインライン コード アクション。
10 チャット入力候補を実行する。 チャット入力候補の取得 チャット入力候補 API に接続する Azure OpenAI アクション。これにより、チャット会話での信頼性の高い応答が保証されます。

この例では、アクションはプロンプトとロールをモデルへの入力として受け入れ、モデルによって生成された応答を出力として返します。
11 応答を返す。 回答 要求トリガーを使用するときに呼び出し元に結果を返す要求アクション。