オーケストレーション ワークフローは、LUIS とは異なるプロジェクト、会話言語理解、1 つのプロジェクトのカスタムの質問応答に接続できるようにする機能です。 その後、このプロジェクトを使用して、1 つのエンドポイントでの予測を行うことができます。 オーケストレーション プロジェクトは、どのプロジェクトを呼び出す必要があるかを予測し、そのプロジェクトに要求を自動的にルーティングし、応答を返します。
このチュートリアルでは、カスタム質問応答ナレッジ ベースを会話言語理解プロジェクトに接続する方法について説明します。 次に、オーケストレーション用の .NET SDK サンプルを使用してプロジェクトを呼び出します。
このチュートリアルには、おしゃべりナレッジ ベースとメール コマンド プロジェクトの作成が含まれます。 おしゃべりは、静的な応答で一般的な細やかさと挨拶を扱います。 メール コマンドは、メール アシスタントのいくつかの簡単なアクションの中で予測されます。 次に、このチュートリアルでは、サンプル ソリューションを使用して、.NET 環境で SDK を使用して Orchestrator を呼び出す方法について説明します。
前提条件
- 言語リソースを作成し、Azure portal でカスタム質問応答機能を選択して、キーとエンドポイントを取得します。 デプロイされたら、 [リソースに移動] を選択します。
- API にボットを接続するには、作成したリソースのキーとエンドポイントが必要です。 このチュートリアルで後ほど下記に示すコードに、ご自分のキーとエンドポイントを貼り付けます。 それらを、リソースの [キーとエンドポイント] タブからコピーします。
- カスタム質問応答を有効にする場合は、接続する Azure 検索リソースを選択する必要があります。
- リソースのリージョンが会話言語理解でサポートされていることを確認します。
- OrchestrationWorkflowSample サンプルをダウンロードします。
カスタム質問応答ナレッジ ベースを作成する
Language Studio にサインインし、使用する言語リソースを選択します。
ホームページでカスタム質問応答カードを見つけて選択します。
[新しいプロジェクトの作成] を選択し、[プロジェクトの作成] をクリックする前に、英語で chitchat という名前を追加します。
プロジェクトが読み込まれたら、[ソースの追加] をクリックし、[Chit chat] を選択します。 おしゃべりの性格に "プロフェッショナル" を選びます。
左側のナビゲーション メニューから [ナレッジ ベースのデプロイ] に移動し、[デプロイ] を選択して、表示されるポップアップを確認します。
これで、おしゃべり用のナレッジ ベースのデプロイが完了しました。 [ナレッジ ベースの編集] ページで、予想される質問と応答の種類を調べることができます。
会話言語理解プロジェクトを作成する
Language Studio で、会話言語理解サービスに移動します。
EmailProject.json
サンプル ファイルこちらからダウンロードします。[インポート] ボタンを選択します。 ダウンロードした `EmailProject.json`` ファイルを参照し、[完了] を押します。
プロジェクトが読み込まれたら、左側の [トレーニング ジョブ] を選択します。 [トレーニング ジョブの開始] を押し、モデル名 v1 を指定して [トレーニング] を押します。
トレーニングが完了したら、左側の [モデルのデプロイ] をクリックします。 [デプロイの追加] を選択し、Testing という名前の新しいデプロイを作成し、モデル v1 をそのデプロイに割り当てます。
これで、メール コマンド用の会話言語理解プロジェクトのデプロイが完了しました。 [データのラベル付け] ページでさまざまなコマンドを調べることができます。
オーケストレーション ワークフロー プロジェクトを作成する
- Language Studio で、オーケストレーション ワークフロー サービスに移動します。
- [新しいプロジェクトの作成] を選択します。 [次へ] と [完了] をクリックする前に、Orchestrator という名前と言語には "英語" を使用します。
- プロジェクトが作成されたら、[スキーマ定義] ページで [追加] を選択します。
- [はい、これを既存のプロジェクトに接続します] を選択します。 意図名 EmailIntent を追加し、接続済みのサービスとして [会話言語理解] を選択します。 [意図の追加] をクリックする前に、プロジェクト名として最近作成した EmailProject プロジェクトを選択します。
- 別の意図を追加しますが、サービスとして [質問応答] を選択し、プロジェクト名として [chitchat] を選択します。
- 会話言語理解と同様に、トレーニング ジョブ に移動し、v1 という名前の新しいトレーニング ジョブを開始し、[トレーニング] を押します。
- トレーニングが完了したら、左側の [モデルのデプロイ] をクリックします。 [デプロイの追加] を選択し、Testing という名前の新しいデプロイを作成し、モデル v1 をそのデプロイに割り当てて [次へ] を押します。
- 次のページで、EmailIntent のデプロイ名の [Testing] を選択します。 これにより、オーケストレーターは EmailProject へのルーティング時に Testing デプロイを呼び出すように指示されます。 カスタム質問応答プロジェクトには、既定では 1 つのデプロイしかありません。
これで、オーケストレーション プロジェクトを使用する準備が整いました。 受信した要求は、会話言語理解の EmailIntent と EmailProject、または ChitChatIntent と ナレッジ ベースにルーティングされます。
Conversations SDK を使用してオーケストレーション プロジェクトを呼び出す
ダウンロードしたサンプルで、Visual Studio から OrchestrationWorkflowSample.sln を開きます。
OrchestrationWorkflowSample ソリューションで、必要なすべてのパッケージをインストールします。 Visual Studio で、[ツール]、[NuGet パッケージ マネージャー] の順にアクセスし、[コンソールパッケージ マネージャー] を選択して、次のコマンドを実行します。
dotnet add package Azure.AI.Language.Conversations
または、NuGet パッケージ マネージャーで "Azure.AI.Language.Conversations" を検索し、最新リリースをインストールすることもできます。
Program.cs
で、{api-key}
と変数{endpoint}
を置き換えます。 先ほど作成した言語リソースのキーとエンドポイントを使用します。 これらは、Azure の言語リソースの [キーとエンドポイント] タブにあります。
Uri endpoint = new Uri("{endpoint}");
AzureKeyCredential credential = new AzureKeyCredential("{api-key}");
- プロジェクトとデプロイ パラメーターに Orchestrator と Testing がまだ設定されていない場合は、次に示すように置き換えます。
string projectName = "Orchestrator";
string deploymentName = "Testing";
- プロジェクトを実行するか、Visual Studio で F5 キーを押します。
- "matt からのメールを読む" や "hello how are you" などのクエリを入力します。 次に、それぞれの異なる応答、最初のクエリの会話言語理解 EmailProject の応答、2 番目のクエリの おしゃべりナレッジ ベースからの回答を確認します。
他のプロジェクトをオーケストレーターに接続し、さまざまなプロジェクトで複雑なアーキテクチャのビルドを開始できるようになりました。