Azure Logic Apps 内の Standard ワークフローから Azure AI サービスに接続する
適用対象: Azure Logic Apps (Standard)
エンタープライズ データとサービスを AI テクノロジと統合するには、Standard ロジック アプリ ワークフロー内で Azure OpenAI および Azure AI 検索の組み込みコネクタを使用します。 これらのコネクタは、API キー、Microsoft Entra ID、マネージド ID など、複数の認証の種類をサポートしています。 これらは、ファイアウォールの背後にある Azure OpenAI Service および Azure AI 検索エンドポイントに接続して、ワークフローが Azure 内の 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 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] を選択します。
ロジック アプリ | 環境 | コネクタのバージョン |
---|---|---|
Standard | シングルテナント Azure Logic Apps と App Service Environment v3 (Windows プランのみ) | 組み込みコネクタ。[ランタイム]>[アプリ内] の下のコネクタ ギャラリーに表示され、サービス プロバイダーベースとなります。 組み込みコネクタは、オンプレミス データ ゲートウェイを使用せずに、Azure 仮想ネットワークに直接アクセスできます。 詳細については、「Azure OpenAI の組み込みコネクタのリファレンス」を参照してください。 |
Azure AI Search
Azure AI Search は、大規模言語モデルとエンタープライズ データを組み合わせて、開発者が豊富な検索エクスペリエンスと生成型 AI アプリを構築できるようにする、AI を利用した情報取得用プラットフォームです。 Azure AI 検索コネクタを使用すると、ワークフローは Azure AI 検索に接続してドキュメントのインデックスを作成し、データに対するベクトル検索を実行できます。
ロジック アプリ | 環境 | コネクタのバージョン |
---|---|---|
Standard | シングルテナント Azure Logic Apps と App Service Environment v3 (Windows プランのみ) | 組み込みコネクタ。[ランタイム]>[アプリ内] の下のコネクタ ギャラリーに表示され、サービス プロバイダーベースとなります。 組み込みコネクタは、オンプレミス データ ゲートウェイを使用せずに、Azure 仮想ネットワークに直接アクセスできます。 詳細については、Azure AI Search の組み込みコネクタのリファレンスを参照してください。 |
認証
どちらの AI コネクタも、AI サービス エンドポイントで認証するため方法を複数サポートしています。 これらのオプションは、ほとんどの顧客のニーズを満たす堅牢な認証を提供します。 どちらの AI コネクタも、仮想ネットワーク内の Azure OpenAI サービスと Azure AI Search サービスに直接接続することができます。
次の一覧では、サービスのエンドポイントを指定する必要があるすべてのオプションについて説明します。
認証の種類 | 説明 |
---|---|
キーベースの認証 | AI サービスによって生成された API キーまたは管理者を指定します。 |
Microsoft Entra ID (旧称 Azure Active Directory) | Entra テナント、クライアント ID、パスワードなどの情報を指定して、Entra ユーザーとして認証します。 |
マネージド ID | お使いの AI サービスとロジック アプリ リソースでマネージド ID 認証を有効にすると、その ID を使用してコネクタのアクセスを認証できます。 |
詳細については、次のリソースを参照してください。
- Azure AI サービスに対する要求の認証
- Microsoft Entra ID とは
- Azure リソースのマネージド ID とは
- Azure Logic Apps でマネージド ID を使用して Azure リソースへのアクセスと接続を認証する
Azure OpenAI または Azure AI Search アクションをワークフローに追加する
現在、Azure OpenAI と Azure AI Search 用の組み込みコネクタでは、トリガーではなく、アクションのみが提供されています。 シナリオやニーズに合った任意のトリガーを使ってワークフローを開始し、次の一般的な手順に従って、Azure OpenAI、Azure AI Search やその他の操作用のアクションを追加できます。
シナリオ
次のシナリオでは、ワークフローで AI コネクタ操作を使用できる多くの方法のうち、2 つだけを説明します。
エンタープライズ データ用にナレッジ ベースを作成する
Azure Logic Apps には、SharePoint、Oracle DB、Salesforce、OneDrive、Dropbox、SAP、IBM などのほぼすべてのデータ ソースと安全に接続するための、1,000 を超える Microsoft マネージド コネクタ とネイティブで実行される組み込みコネクタが用意されています。 各コネクタには、ワークフローで使用するためのトリガー、アクション、またはその両方を含む操作が用意されています。
たとえば、多くの種類のトリガーから選択して、スケジュールに従って、または特定のイベント (SharePoint サイトに新しいドキュメントをアップロードするなど) に基づいて、自動化されたワークフローを実行できます。 多くの操作を選択できるため、ナレッジ ベースを作成し、Azure AI Search でこれらのドキュメントにベクトル埋め込みを使用してドキュメント インジェスト パイプラインを簡単に構築できます。
詳細については、次のリソースを参照してください。
入力候補を生成する
Azure Logic Apps ワークフローは入力を受け入れ、Azure OpenAI Service は入力候補操作を実行できます。 これらの機能は、ワークフローがリアルタイムの質問を取り込んだり、データに関する回答を生成したり、Azure OpenAI を使用して自動応答を送信したりできることを意味します。 すぐにクライアントや検証用の承認ワークフローに応答を送信できます。
詳細については、次のリソースを参照してください。
サンプル コードを使用したシナリオ例: データの取り込みとチャット操作の作成
この例では、Azure OpenAI コネクタと Azure AI Search コネクタを使用して、データの取り込みと簡単なチャット会話を行うためのバックエンド ロジックを、2 つの主要なワークフローに分割する方法を示します。 パフォーマンスを向上させるには、既定では実行ごとに履歴を保存しないステートレス ワークフローを作成します。
サンプル コード
前提条件
サンプル コードの要件を参照してください。
次の環境間パラメーター値は、この例のワークフロー操作でも使用されます。
パラメーター名 | 説明 |
---|---|
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 によってデータ ファイルからすべての重要な情報がシームレスに抽出されます。 ステートレス ワークフローとして実行する場合、このパターンではパフォーマンスも向上します。 この方法により、コーディングの側面が簡略化されるだけでなく、ワークフローに有効な認証、監視、デプロイ プロセスが適用されます。
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 アクション。 |
チャット ワークフロー
ベクトル データベースがデータを取り込み続ける中、ユーザーが質問したときにバックエンド ロジック アプリのワークフローがプロンプトを処理し、信頼性の高い応答を生成できるように、データが簡単に検索できることを確認します。
次のパターンは、チャット ワークフローの外観を示す 1 つの例にすぎません。
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 | 応答を返す。 | 回答 | 要求トリガーを使用するときに呼び出し元に結果を返す要求アクション。 |
関連項目
Azure Logic Apps 用の Azure OpenAI と Azure AI 検索のコネクタが一般公開されましたAzure Logic Apps 用の Azure OpenAI と AI 検索のコネクタ (Standard)