Virtal Assistant бросает: «Извините, похоже, что-то пошло не так» - PullRequest
0 голосов
/ 31 мая 2019

Я создал виртуального помощника, используя шаблон виртуального помощника Microsoft.При тестировании в эмуляторе любого сообщения, которое я посылаю, я получаю «что-то пошло не так, ответ.»В журнале я вижу следующее:

    [11:26:32]Emulator listening on http://localhost:65233
[11:26:32]ngrok not configured (only needed when connecting to remotely hosted bots)
[11:26:32]Connecting to bots hosted remotely
[11:26:32]Edit ngrok settings
[11:26:32]POST201directline.startConversation
[11:26:39]<-messageapplication/vnd.microsoft.card.adaptive
[11:26:39]POST200conversations.replyToActivity
[11:26:54]->messagehi
[11:26:55]<-traceThe given key 'en' was not present in the dictiona...
[11:26:55]POST200conversations.replyToActivity
[11:26:55]<-trace at System.Collections.Generic.Dictionary`2.get_...
[11:26:55]POST200conversations.replyToActivity
[11:26:55]<-messageSorry, it looks like something went wrong.
[11:26:55]POST200conversations.replyToActivity
[11:26:55]POST200directline.postActivity
[11:27:48]->messagehello
[11:27:48]<-traceThe given key 'en' was not present in the dictiona...
[11:27:48]POST200conversations.replyToActivity
[11:27:48]<-trace at System.Collections.Generic.Dictionary`2.get_...
[11:27:48]POST200conversations.replyToActivity
[11:27:48]<-messageSorry, it looks like something went wrong.
[11:27:48]POST200conversations.replyToActivity
[11:27:48]POST200directline.postActivity

Из того, что я понял, «en» отсутствует в словаре, и я не уверен, что это значит.Я проверил в папке «Ответы» и не смог увидеть файл en, не уверен, что это проблема:

enter image description here

Мой скриншот эмулятора прилагается:

enter image description here

Любая помощь будет полезна.

1 Ответ

1 голос
/ 31 мая 2019

Я полагаю, что проблема, с которой вы столкнулись, - это проблема в следующих строках MainDialog.cs:

var locale = CultureInfo.CurrentUICulture.TwoLetterISOLanguageName;
var cognitiveModels = _services.CognitiveModelSets[locale];

Это пытается использовать языковой стандарт (полученный из текущего потока согласно этой документации ) в качестве ключа для доступа к когнитивным моделям в вашем файле cognitivemodels.json.

Внутри вашего cognitivemodels.json файла он должен выглядеть так:

{
  "cognitiveModels": {
    // This line below here is what could be missing/incorrect in yours
    "en": {
      "dispatchModel": {
        "type": "dispatch",
        "region": "westus",
        ...
      },
      "knowledgebases": [
        {
          "id": "chitchat",
          "name": "chitchat",
          ...
        },
        {
          "id": "faq",
          "name": "faq",
          ...
        },
      ],
      "languageModels": [
        {
          "id": "general",
          "name": "msag-test-va-boten_general",
          "region": "westus",
          ...
        }
      ]
    }
  },
  "defaultLocale": "en-us"
}

Клавиша en внутри объекта cognitiveModels - это то, что код пытается использовать для извлечения ваших когнитивных моделей, таким образом, если выдвинутый в коде locale не соответствует ключам локали в вашем cognitivemodels.json тогда вы получите ошибку ключа словаря.

EDIT

Проблема, с которой столкнулся OP - неудачное развертывание. Мы предприняли следующие шаги:

  • Проверен deploy_log.txt внутри папки Deployment на наличие ошибок.
    • Если в этом случае он был пуст - плохой знак.
  • Проверен deploy_cognitive_models_log.txt внутри папки Deployment на наличие ошибок.
    • Произошла ошибка Error: Cannot find module 'C:\Users\dip_chatterjee\AppData\Roaming\npm\node_modules\botdispatch\bin\dispatch.js.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...