Search code examples
dialogflow-esbotium-box

Why Botium CLI fails extracting utterances data from DialogFlow agent?


After setting up Botium and connecting it to my DialogFlow agent (with a DialogFlow Admin Service Account on Google Cloud Platform), I tried to extract the data (intents and utterances) from DialogFlow automatically with the command botium-cli nlpextract. This is the error I got:

user@ubuntu20:~/workspace$ export GOOGLE_APPLICATION_CREDENTIALS="/path/to/google_key.json"
user@ubuntu20:~/workspace$ botium-cli nlpextract --config botium.json --convos dataset_botium --verbose
  botium-cli Using Botium configuration file botium.json +0ms
  botium-cli-nlp command options: { _: [ 'nlpextract' ],
  botium-cli-nlp   config: 'botium.json',
  botium-cli-nlp   c: 'botium.json',
  botium-cli-nlp   convos: [ 'dataset_botium' ],
  botium-cli-nlp   C: [ 'dataset_botium' ],
  botium-cli-nlp   verbose: true,
  botium-cli-nlp   v: true,
  botium-cli-nlp   '$0': '/usr/local/bin/botium-cli' } +0ms

 (...)

  botium-connector-PluginConnectorContainer-helper Botium plugin loaded from /usr/local/lib/node_modules/botium-cli/node_modules/botium-connector-dialogflow/index.js +0ms
  botium-connector-dialogflow Validate called +0ms
  botium-connector-BaseContainer _RunCustomHook onBuild finished +0ms
  botium-connector-dialogflow Build called +1ms
  botium-connector-dialogflow-nlp Dialogflow agent: {
  botium-connector-dialogflow-nlp   "parent": ####,
  botium-connector-dialogflow-nlp   "displayName": ####,
  botium-connector-dialogflow-nlp   "defaultLanguageCode": "it",
  botium-connector-dialogflow-nlp   "timeZone": "Europe/Kaliningrad",
  botium-connector-dialogflow-nlp   "enableLogging": true,
  botium-connector-dialogflow-nlp   "matchMode": "MATCH_MODE_HYBRID",
  botium-connector-dialogflow-nlp   "classificationThreshold": 0.30000001192092896,
  botium-connector-dialogflow-nlp   "apiVersion": "API_VERSION_V2",
  botium-connector-dialogflow-nlp   "tier": "TIER_STANDARD"
  botium-connector-dialogflow-nlp } +0ms
  botium-connector-dialogflow-nlp Utterances files not found for Default Fallback Intent, checking for utterances in intents/Default Fallback Intent_usersays_en-us.json and intents/Default Fallback Intent_usersays_it.json. Ignoring intent. +20ms
  botium-connector-dialogflow Clean called +2s
  botium-connector-BaseContainer _RunCustomHook onClean finished +2s
  botium-connector-BaseContainer Cleanup rimrafing temp dir /home/user/workspace/botiumwork/agent-name 20200722 124913 wTImF +0ms
Failed to extract utterances: Cannot read property 'intents' of undefined

I can't find anything online about this. If I download the agent in a zip file, all the 21 intents which I inserted are available, each one with 85 training utterances.

(I am using Ubuntu20 on an Entroware Apollo laptop)


Solution

  • There was a bug in the Botium Dialogflow Connector. It is fixed now and will be included in the next release.

    In the meantime, you can replace the latest release of the connector with the latest changes from the Github repository:

    npm install codeforequity-at/botium-connector-dialogflow#master