Botium с пользовательской полезной нагрузкой - DefaultWelcome: бот говорит неопределенный - PullRequest
1 голос
/ 21 марта 2019

Я пытался протестировать свое приложение, используя botium.Я сгенерировал файлы convo с помощью botium-cli import dialogflow-conversations

У меня есть намерение DefaultWelcome, которое имеет полезную нагрузку ниже

{
  "cutomPayload": {
    "card": {
      "description": "Hey there! I’m a bot that can help you troubleshoot issues with UPS. Please enter the model number"
    }
  }
}

и фазы обучения, как показано ниже

just going to say hi
heya
hello hi
howdy
hey there
hi there
greetings
hey
long time no see
hello
lovely day isn't it
I greet you
hello again
hi
hello there
a good day

В моемпапка convo У меня есть DefaultWelcome.convo.txt и DefaultWelcome_input.utterances.txt

DefaultWelcome.convo.txt имеет

DefaultWelcome

#me
DefaultWelcome_input

#bot
!INCOMPREHENSION

DefaultWelcome_input.utterances.txt имеет

DefaultWelcome_input
just going to say hi
heya
hello hi
howdy
hey there
hi there
greetings
hey
long time no see
hello
lovely day isn't it
I greet you
hello again
hi
hello there
a good day

Я пытался запустить

const BotDriver = require('botium-core').BotDriver;

const driver = new BotDriver();

driver.BuildFluent()
  .ReadScripts('convos')
  .Start()
  .RunScripts()
  .Exec().then(() => {
    console.log('READY')
  })
  .catch((err) => {
    console.log('ERROR: ', err)
  });

Но, к сожалению, я получил следующий вывод

botium-connector-dialogflow Start called +256ms
  botium-ScriptingProvider Using utterances expansion mode: all +172ms
  botium-Convo DefaultWelcome/Line 6: user says ConvoStep {
  botium-Convo   sender: 'me',
  botium-Convo   channel: null,
  botium-Convo   messageText: 'just going to say hi',
  botium-Convo   sourceData: undefined,
  botium-Convo   stepTag: 'Line 6',
  botium-Convo   not: false } +0ms
  botium-connector-dialogflow UserSays called +175ms
  botium-connector-dialogflow dialogflow request: {
  botium-connector-dialogflow   "session": "projects/joules-test/agent/sessions/defee8a0-4b08-11e9-93e7-fd1394066413",
  botium-connector-dialogflow   "queryInput": {
  botium-connector-dialogflow     "text": {
  botium-connector-dialogflow       "text": "just going to say hi",
  botium-connector-dialogflow       "languageCode": "en-US"
  botium-connector-dialogflow     }
  botium-connector-dialogflow   },
  botium-connector-dialogflow   "queryParams": null
  botium-connector-dialogflow } +0ms
  botium-connector-dialogflow dialogflow response: {
  botium-connector-dialogflow   "responseId": "27545943-441c-487f-9f45-2cd32e833ace",
  botium-connector-dialogflow   "queryResult": {
  botium-connector-dialogflow     "fulfillmentMessages": [
  botium-connector-dialogflow       {
  botium-connector-dialogflow         "platform": "PLATFORM_UNSPECIFIED",
  botium-connector-dialogflow         "payload": {
  botium-connector-dialogflow           "fields": {
  botium-connector-dialogflow             "cutomPayload": {
  botium-connector-dialogflow               "structValue": {
  botium-connector-dialogflow                 "fields": {
  botium-connector-dialogflow                   "card": {
  botium-connector-dialogflow                     "structValue": {
  botium-connector-dialogflow                       "fields": {
  botium-connector-dialogflow                         "description": {
  botium-connector-dialogflow                           "stringValue": "Hey there! I’m a bot that can help you troubleshoot issues with Back-UPS. Please enter your model number",
  botium-connector-dialogflow                           "kind": "stringValue"
  botium-connector-dialogflow                         }
  botium-connector-dialogflow                       }
  botium-connector-dialogflow                     },
  botium-connector-dialogflow                     "kind": "structValue"
  botium-connector-dialogflow                   }
  botium-connector-dialogflow                 }
  botium-connector-dialogflow               },
  botium-connector-dialogflow               "kind": "structValue"
  botium-connector-dialogflow             }
  botium-connector-dialogflow           }
  botium-connector-dialogflow         },
  botium-connector-dialogflow         "message": "payload"
  botium-connector-dialogflow       }

  botium-Convo DefaultWelcome wait for bot null +3s
  botium-BaseContainer WaitBotSays error Error: Queue.pop timeout after 60000
  botium-BaseContainer     at timeoutRequest (/Users/madhavam/joules-botium/node_modules/botium-core/src/helpers/Queue.js:46:18)
  botium-BaseContainer     at Timeout.timeoutCallback [as _onTimeout] (/Users/madhavam/joules-botium/node_modules/async/dist/async.js:4936:13)
  botium-BaseContainer     at ontimeout (timers.js:427:11)
  botium-BaseContainer     at tryOnTimeout (timers.js:289:5)
  botium-BaseContainer     at listOnTimeout (timers.js:252:5)
  botium-BaseContainer     at Timer.processTimers (timers.js:212:10) +0ms
  botium-Convo DefaultWelcome: bot says undefined +1m
ERROR:  Error: DefaultWelcome/Line 8: bot says nothing
    at Object.fail (/Users/mma/joules-botium/node_modules/botium-core/src/scripting/ScriptingProvider.js:50:15)
    at container.WaitBotSays.then (/Users/madhavam/joules-botium/node_modules/botium-core/src/scripting/Convo.js:64:49)

Так как решить эту проблему?Могу ли я в любом случае справиться с конкретным ответом в намерении?

1 Ответ

1 голос
/ 21 марта 2019

Это одно из текущих ограничений соединителя диалога Botium, что пользовательская полезная нагрузка не поддерживается, см .: https://github.com/codeforequity-at/botium-connector-dialogflow#open-issues-and-restrictions

При использовании Botium CLI вам не нужно писать код Botium - вы можете запускать тесты с помощью команды cli:

> botium-cli run --convos ./convos

UPDATE

Вы можете установить для capabilitiy _DIALOGFLOW_FORCE_INTENT_RESOLUTION_ значение true, чтобы даже доставить ответ Botium, если соединитель не распознал какой-либо известный контент. Вы на одну остановку дальше.

Для фактического подтверждения ответа вы можете использовать интегрированное сопоставление структур JSON, но из-за природы пользовательских структур полезной нагрузки Dialogflow ваши convo-файлы будут тогда довольно загромождены.

Ваш файл convo должен выглядеть следующим образом

DefaultWelcome

#me
DefaultWelcome_input

#bot
{  
   "fulfillmentMessages":[  
      {  
         "platform":"PLATFORM_UNSPECIFIED",
         "payload":{  
            "fields":{  
               "cutomPayload":{  
                  "structValue":{  
                     "fields":{  
                        "card":{  
                           "structValue":{  
                              "fields":{  
                                 "description":{  
                                    "stringValue":"Hey there! I’m a bot that can help you troubleshoot issues with Back-UPS. Please enter your model number",
                                 }
                              }
                           },
                        }
                     }
                  },
               }
            }
         },
      }
   ]
}
...