2017-09-25 4 views
1

私は複数のQnAサービスを稼働させており、それぞれがそれ自身のknowledgeBaseIdsubscriptionKeyです。私は単一のチャットボットの両方でそれらを使用したいと思って、私はユーザーの入力を受け取り、正しいナレッジベースの詳細を割り当てるコードを書いた。しかし、私は2番目のQnAサービスをアクティブにすることができず、ボットは最初のサービスにのみリンクしています。ここで何がうまくいかないのでしょうか?1つのボットで複数のQnAサービスを使用する

サンプルコード:

var knowledgeId = "FIRST_QNA_SERVICE_KNOWLEDGE_ID"; 
var subscriptionId = "FIRST_QNA_SERVICE_SUBSCRIPTION_ID"; 

var bot = new builder.UniversalBot(connector); 

var qnarecognizer = new cognitiveservices.QnAMakerRecognizer({ 
    knowledgeBaseId: knowledgeId, 
    subscriptionKey: subscriptionId, 
    qnaThreshold:0.3, 
    top:1}); 

var intentrecognizer = new builder.IntentDialog(); 

var intents = new builder.IntentDialog({ recognizers: [intentrecognizer, qnarecognizer] }); 
bot.dialog('/', intents); 

intents.matches('qna', [ 
    function (session, args, next) { 
      args.entities.forEach(function(element) { 
      session.send(element.entity);  
     }, this);   
    } 
]); 

intents.matchesAny([/hi/i, /main menu/i], [ 
    function (session) { 
    builder.Prompts.choice(session, "Hi, What would you like to ask me about?", ["Service1","Service2"],{ listStyle: builder.ListStyle.button}); 

    }, 

     function (session, result) { 
    var selection = result.response.entity; 
      switch (selection) { 
       case "Service1": 
        knowledgeId = "FIRST_QNA_SERVICE_KNOWLEDGE_ID"; 
        subscriptionId = "FIRST_QNA_SERVICE_SUBSCRIPTION_ID"; 
        session.send('You can now ask me anything about '+selection+'. Type \'main menu\' anytime to choose a different topic.') 
        session.endConversation(); 
        return 

       case "Service2": 
        knowledgeId = "SECOND_QNA_SERVICE_KNOWLEDGE_ID"; 
        subscriptionId = "SECOND_QNA_SERVICE_SUBSCRIPTION_ID"; 
        session.send('You can now ask me anything about '+selection+'. Type \'main menu\' anytime to choose a different topic.') 
        session.endConversation(); 
        return 

      } 
    } 

]) 

答えて

0

あなたはQnAMakerRecognizer上knowledgeId/subscriptionIdを更新したことがない...それはあなたが常に呼び出される最初QnAシリーズのサービスを見ている理由です。

QnAMakerRecognizerの値を更新する方法があるかどうかを確認してください。

+0

更新することができません。私に方法を提案できますか? – Anish

+0

レコグナイザーを作り直しただけかもしれませんか? –

関連する問題