MS Bot Framework v4 - невозможно добавить создателя QnA в бот - зашифрованное значение имени хоста не является допустимым форматом - PullRequest
0 голосов
/ 22 января 2019

Текущая ситуация: В настоящее время у меня есть работающий бот веб-приложения с интеграцией LUIS (NODE.js). Я хочу добавить создателя QnA в бот. Я создал QnA maker с помощью службы ботов Azure и создал базу знаний для его использования.

Проблема: При добавлении сведений о qna maker в бот и работе с nodemon ./index.js я получаю сообщение об ошибке «Ошибка: зашифрованное значение не является допустимым форматом». Я проверил, и эта ошибка возникает при попытке прочитать значение имени хоста во время

botConfig = BotConfiguration.loadSync(BOT_FILE, process.env.botFileSecret);

При вставке имени хоста в браузер Azure показывает мне страницу "Ваше приложение службы приложений запущено и работает", указывая, что имя хоста в порядке.

Вопросы:

  1. Как мне отладить это дальше? Может быть это как-то связано с настройкой QnA maker?

  2. Публикуются как создатель QnA, так и база Knoledge - нужно ли что-то добавить вручную в конфигурацию бота через портал Azure, чтобы он распознал создателя QnA?

Большая часть документации основана на v3 фреймворка бота и не имеет представления, применим ли он до сих пор.

Фрагмент QnA в файле Bot (некоторые значения опущены, не уверен, насколько они чувствительны):

{
  "type": "qna",
  "name": "pathqna",
  "KbId": "OMITTED",
  "subscriptionId": "OMITTED",
  "endpointKey": "OMITTED",
  "hostname": "https://pathqna.azurewebsites.net",
  "id": "7"
}

Документация, на которую я смотрел:

  1. https://docs.microsoft.com/en-gb/azure/bot-service/bot-builder-tutorial-dispatch?view=azure-bot-service-4.0&tabs=javascript
  2. https://docs.microsoft.com/en-us/azure/cognitive-services/qnamaker/tutorials/create-qna-bot
  3. https://github.com/Microsoft/botbuilder-tools/blob/master/packages/MSBot/docs/sample-bot-file.json
  4. https://docs.microsoft.com/en-us/azure/cognitive-services/QnAMaker/how-to/troubleshooting-runtime#how-to-get-latest-qnamaker-runtime-updates

Полный файл бота со значением пустого замка (все пропущенные значения имеют реальные ключи, а имя изменено на Test):

{
  "name": “Test”,
  "padlock": "",
  "version": "2.0",
  "services": [
    {
      "tenantId": "OMITTED",
      "subscriptionId": "OMITTED",
      "resourceGroup": OMITTED,
      "serviceName": OMITTED,
      "type": "abs",
      "name": OMITTED,
      "id": "1"
    },
    {
      "connectionString": "OMITTED",
      "tenantId": "OMITTED",
      "subscriptionId": "OMITTED",
      "resourceGroup": OMITTED,
      "serviceName": "patha048",
      "type": "blob",
      "id": "2"
    },
    {
    “appId": "OMITTED",
      "appPassword": “OMITTED”,
      "endpoint": "http://localhost:3978/api/messages",
      "type": "endpoint",
      "name": "development",
      "id": "3"
    },
    {
      "appId": "OMITTED",
      "appPassword": “OMITTED”,
      "endpoint": "https://path-a048.azurewebsites.net/api/messages",
      "type": "endpoint",
      "name": "production",
      "id": "4"
    },
    {
      "instrumentationKey": “OMITTED”,
      "applicationId": “OMITTED”,
      "apiKeys": {},
      "tenantId": "OMITTED",
      "subscriptionId": "OMITTED",
      "resourceGroup": OMITTED,
      "serviceName": "Patht6r6m4",
      "type": "appInsights",
      "id": "5"
    },
    {
      "appId": “OMITTED”,
      "authoringKey": “OMITTED”,
      "version": "0.1",
      "region": "westus",
      "type": "luis",
      "name": "BasicBotLuisApplication",
      "id": "6"
    },
    {
      "type": "qna",
      "name": "pathqna",
      "id": "7",
      "kbId": “OMITTED”,
      "subscriptionKey": "OMITTED",
      "endpointKey": “OMITTED”,
      "hostname": "https://pathqna.azurewebsites.net"
    }
  ]
}

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Нашел решение - используйте msbot cli для добавления создателя QnA вместо добавления вручную, поскольку файл зашифрован и теряет свою расшифровку, если вы не используете msbot / emulator shrug

Я удалил фрагмент кода qna и выполнил эту команду (добавил общие значения для сохранения реальных значений):

msbot connect qna --secret <botFileSecret> --name pathqna --kbId <KB-ID> --subscriptionKey <SUB_KEY> --endpointKey <ENDPOINT_KEY> --hostname "https://pathqna.azurewebsites.net" --bot Path.bot

Это сохранило значение замка и успешно добавило его.

0 голосов
/ 22 января 2019

Хотя предоставленной вами информации недостаточно для решения проблемы, вы можете проверить следующие шаги:

"Ошибка: зашифрованное значение не является допустимым форматом" * Пожалуйста, проверьте секретные ключи вашего бота еще раз.

Затем в файле бота попробуйте удалить значение замка.

"padlock": ""

Кроме того, я предполагаю, что в вашем фактическом коде вы заменили ' OMITTED ' наключи реального времени, которые вы получили с портала QnAMaker. *

По возможности сделайте снимок экрана с ошибкой.

...