0

按照我尝试制作自定义实体(开发者实体)的文档 如下:

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:

  • 我完全了解开发者实体,因为我能够轻松地在 DialogFlow 上制作自定义实体(开发者实体)。请看图片作为样本

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

  • 如果不使用这个开发者实体,我可以运行命令行: jovo build jovo deploy --project-id ... jovo run
4

2 回答 2

0

我认为问题出在名称上。Developer Entities的Dialogflow Docs声明它们应该“以字母开头,并且可以包含以下内容:AZ、az、0-9、_(下划线)、-(破折号) ”。

您是否尝试过删除@并仅用dev-city作实体名称?

于 2018-10-26T10:15:10.370 回答
0

目前,我能够避免这个问题。

我知道这个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
        }
    ]
}
于 2018-10-29T03:53:36.687 回答