2016-08-31 1 views
2

두 가지 언어를 구사하는 봇을 쓰고 있습니다. 따라서 두 개의 별도 LUIS 응용 프로그램 (각 언어에 하나씩)을 사용해야합니다.속성을 통하지 않고 LuisDialog에 모델 및 구독 키 전달

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

그러나, 내가 가지고있는 사용자의 언어에 따라 동적 응용 프로그램 ID 및 구독 키를 사용해야합니다 : 봇 프레임 워크

LuisDialog이 (Microsoft에서 예)처럼 초기화 결정된.

두 LUIS 응용 프로그램의 모든 방법, 의도 등은 같습니다.

C#의 속성은 동적 일 수 없습니다.

애플 리케이션과 서브 스크립 션 키를 하드 코딩하는 대신 LuisDialog에 동적으로 전달할 수있는 또 다른 방법은 무엇입니까?

답변

6

Autofac 컨테이너에 LuisModelAttribute를 등록해야합니다. 보봇 (Boe-Bot) 빌더의 AlarmBot 샘플에서 어떻게 수행되었는지 here을 볼 수 있습니다.

0

접근 방식을 약간 변경하여이 문제를 해결했습니다. 실제로 두 개 이상의 LuisModel 속성을 사용하여 클래스를 꾸밀 수 있으며, 봇 프레임 워크는 동시에 이들 모두를 쿼리합니다.

+1

그래, 두 개 이상의 모델이있는 또 다른 방법입니다 (http://stackoverflow.com/questions/38222920/how-to-integrate-multiple-luis-model-to-bot-framework/38229057#38229057 참조). 그러나 동적 인 앱/구독 키 사용을 허용하지 않습니다. –