同僚と私は、Microsoft ボット フレームワークと Microsoft LUIS を使用して、非常に大規模なアプリケーションの構築に取り組んでいます。基本的に、組織全体の人々が (slack を介して) ボットにメッセージを送信し、関連情報を受け取ることができるボットを作成しようとしています。さまざまな種類の要求が、さまざまな主題ドメイン (販売、マーケティング、ロジスティクス、および R&D) に関係しています。複数の LUIS モデル、エンティティ、およびサブ エンティティをチェーンして、要求が正しいエンティティに到達する前にすべてのエンティティを照会しないようにするにはどうすればよいでしょうか?
現在、ユーザーが「これまでに研究に費やした金額はどれくらいですか?」と尋ねた場合。最初に販売エンティティ、次にマーケティング エンティティ、次にロジスティクス エンティティにクエリを実行し、最後に R&D エンティティにクエリを実行してから応答を取得します。API リクエストの数を制限しようとしています。私は現在、このルーティングの問題に対処する 3 つの解決策を知っていますが、適切なエンティティへのルーティングに LUIS に依存しているようには見えません。
解決策 1 では、各ドメインに対応する UI セレクターをボットに提供します。
解決策 2 では、NLP ライブラリを接続して文から主語を抽出し、重み付けされた辞書ライブラリを使用して主語を照合します。
解決策 3 には、純粋な RegEx の設定が含まれます。明らかな理由から、これは私の最も嫌いなソリューションです。
Microsoft ボット フレームワークと Microsoft LUIS を使用するエンタープライズ グレードのリファレンス アプリケーションへのリンクが理想的な回答です。