Ошибка: тип ввода должен быть определен в inputTypes jovo-framework - PullRequest
0 голосов
/ 26 октября 2018

Следуйте Документам Я пытался создать пользовательские объекты (объекты разработчика) в следующих строках:

en-US.json:

{
        "name": "TopicChooseIntent",
        "phrases": [
            "play {topic} chart",
            "{topic} music",
            "play {topic} music",
            "what's {topic} today",
            "what {topic} today"
        ],
        "inputs": [
            {
                "name": "topic",
                "type": {
                    "dialogflow": "@sys.any"
                }
            },
            {
                "name": "city",
                "type": "@dev-city"
            }
        ],
        "inputTypes": [
            {
                "name": "@dev-city",
                "dialogflow": {
                    "automatedExpansion": true
                },
                "values": [
                    {
                        "value": "Berlin"
                    },
                    {
                        "value": "New York",
                        "synonyms": [
                            "New York City"
                        ]
                    }
                ]
            }
        ]
    }

,
"dialogflow": {
    "intents": [
        {
            "name": "Default Fallback Intent",
            "auto": true,
            "webhookUsed": true,
            "fallbackIntent": true
        },
        {
            "name": "Default Welcome Intent",
            "auto": true,
            "webhookUsed": true,
            "events": [
                {
                    "name": "WELCOME"
                }
            ]
        }
    ]
}

app.js

app.setHandler({
    'TopicChooseIntent': function (topic) {
    }
})

И ошибка ниже, когда я хочу построить через командную строку jovo build:

❯ Updating /platforms/googleAction/dialogflow
 ✔ Updating Dialogflow Agent
   ✔ agent.json
   ✔ package.json
 ❯ Updating Dialogflow Language Model based on Jovo Language Model in /models
   ✖ en-US
     -> Input type "@dev-city" must be defined in inputTypes
{ Error: Input type "@dev-city" must be defined in inputTypes
at DialogFlowAgent.transform (/usr/local/lib/node_modules/jovo-cli/helper/dialogFlowAgent.js:381:35)
at Promise (/usr/local/lib/node_modules/jovo-cli/helper/dialogflowUtil.js:230:21)
at new Promise (<anonymous>)
at Object.buildLanguageModelDialogFlow (/usr/local/lib/node_modules/jovo-cli/helper/dialogflowUtil.js:225:16)
at Task.task (/usr/local/lib/node_modules/jovo-cli/commands/tasks.js:332:38)
at Promise.resolve.then.then.skipped (/usr/local/lib/node_modules/jovo-cli/node_modules/listr/lib/task.js:168:30)
 context:
 { locales: [ 'en-US' ],
 type: [ 'googleAction' ],
 projectId: undefined,
 endpoint: 'jovo-webhook',
 target: 'all',
 src: '/Users/folder/Desktop/GoogleHome/',
 stage: '',
 askProfile: 'default' } }

На самом деле, я не знаю, как сделать это правильно,

Пожалуйста, помогите мне,

Действительно, спасибо.

p / s:

  • Я полностью понимаю Entity Entities, так как могу создавать пользовательские объекты (Entity Entities) наDialogFlow легко.Пожалуйста, смотрите изображение в качестве образца

enter image description here enter image description here enter image description here enter image description here

  • Если я не использую эти объекты разработчика, я могу запустить командную строку: jovo build jovo deploy --project-id ... jovo run

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

В настоящее время я могу избежать этой проблемы.

Я знаю, что этот json файл я определил неправильно.

Так что мне нужно изменить, чтобы получить правильный результат, как показано ниже:

en-US.json

"name": "TopicChooseIntent",
        "phrases": [
            "play {topic} chart",
            "{topic} music",
            "play {dev-city} music",
            "choose {dev-city} music",
            "what's {topic} today",
            "what {topic} today"
        ],
"inputs": [
        {
            "name": "topic",
            "type": {
                "dialogflow": "@sys.any"
            }
        }
    ],
"inputTypes": [
        {
            "name": "@dev-city",
            "dialogflow": {
                "automatedExpansion": true
            },
            "values": [
                {
                    "value": "Berlin"
                },
                {
                    "value": "New York",
                    "synonyms": [
                        "New York City"
                    ]
                }
            ]
        }
    ]

en-US.json

"dialogflow": {
    "intents": [
        {
            "name": "Default Fallback Intent",
            "auto": true,
            "webhookUsed": true,
            "fallbackIntent": true
        },
        {
            "name": "Default Welcome Intent",
            "auto": true,
            "webhookUsed": true,
            "events": [
                {
                    "name": "WELCOME"
                }
            ]
        }
    ],
    "entities": [
        {
            "name": "dev-city",
            "isOverridable": false,
            "isEnum": false,
            "automatedExpansion": false
        }
    ]
}
0 голосов
/ 26 октября 2018

Я думаю, что проблема с именем.В Документах Dialogflow для организаций разработчиков указано, что они должны " начинаться с буквы и могут содержать следующее: AZ, az, 0-9, _ (подчеркивание), - (тире) ".

Вы пытались удалить @ и просто использовать dev-city в качестве имени сущности?

...