2016-08-31 4 views
2

私は2つの言語を話すことができるボットを書いています。したがって、2つの別々のLUISアプリケーション(各言語に1つ)を使用する必要があります。属性以外のLuisDialogにモデルとサブスクリプションキーを渡す

ボットFrameworkのLuisDialogは、この(Microsoftの例)のように初期化されます。

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

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

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

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

私は動的にアプリケーションとサブスクリプションキーをハードコードする代わりに、LuisDialogに渡すことができますか?

答えて

6

あなたはLuisModelAttributeをAutofacコンテナに登録する必要があります。ボットビルダーレポジトリのAlarmBotサンプルでは、​​hereの様子を見ることができます

0

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

+1

これは、1つ以上のモデルを持つ別の方法です(http://stackoverflow.com/questions/38222920/how-to-integrate-multiple-luis-model-to-bot-framework/38229057#38229057を参照)しかし、それは動的なアプリケーション/サブスクリプションキーの使用を許可しません –

関連する問題