2

2 つの言語を話すことができるボットを作成しています。したがって、2 つの個別の LUIS アプリ (言語ごとに 1 つ) を使用する必要があります。

Bot Framework の LuisDialog は、次のように初期化されます (Microsoft の例)。

[LuisModel("c413b2ef-382c-45bd-8ff0-f76d60e2a821", "6d0966209c6e4f6b835ce34492f3e6d9")]
[Serializable]
public class SimpleAlarmDialog : LuisDialog<object>
{

ただし、決定したユーザーの言語に応じて、動的なアプリ ID とサブスクリプション キーを使用する必要があります。

2 つの LUIS アプリのすべてのメソッド、インテントなどは同じです。

C# の属性を動的にすることはできません。

アプリとサブスクリプション キーをハードコーディングする代わりに LuisDialog に動的に渡す別の方法は何ですか?

4

2 に答える 2

6

LuisModelAttribute を Autofac コンテナーに登録する必要があります。BotBuilder リポジトリの AlarmBot サンプルでそれがどのように行われたかについては、こちらを参照してください。

于 2016-08-31T21:29:17.520 に答える
0

アプローチを少し変更することで問題を解決しました。実際には、クラスを 2 つ以上の LuisModel 属性で装飾することができ、ボット フレームワークはそれらすべてを同時にクエリします。

于 2016-10-17T01:33:29.707 に答える