Post 使用 Dialogflow V2 REST 的意图 API

Post intents using Dialogflow V2 REST API

我正在尝试 post 使用 V2 API 的意图。使用下面的有效负载,正确创建了意图,但未标记实体。

在此示例中,我已经 post 编辑了包含不同类型饮料的实体 "drink"。 我知道我缺少 "parameters" 属性,但我无法让它正常工作来标记我的实体。

{
    "displayName": "orderDrink",
    "webhookState": "WEBHOOK_STATE_ENABLED",
    "mlDisabled": false,
    "trainingPhrases": [
        {
            "name": "ac3fd328-518d-4f28-b5c1-c98d97b78874",
            "type": "EXAMPLE",
            "parts": [
                {
                    "text": "I would like a @drink"
                }
            ]
        },
        {
            "name": "b6984288-3cbd-4c07-ac73-c7bf0ac87445",
            "type": "EXAMPLE",
            "parts": [
                {
                    "text": "@drink please"
                }
            ]
        }
    ]
}

任何有关 post 意图的有效负载格式的帮助都会很棒。

您不能只注释训练短语中的单个单词,您必须分别指定训练短语的文本部分和实体部分。这就是为什么训练短语定义中的 parts 键是一个列表。您的示例必须如下所示:

{
    "displayName": "orderDrink",
    "webhookState": "WEBHOOK_STATE_ENABLED",
    "mlDisabled": false,
    "trainingPhrases": [
        {
            "name": "ac3fd328-518d-4f28-b5c1-c98d97b78874",
            "type": "EXAMPLE",
            "parts": [
                {
                    "text": "I would like a "
                },
                {
                    "text": "beer",
                    "entityType": "@drink",
                    "alias": "drink",
                    "userDefined": true
                }
            ]
        },
        {
            "name": "b6984288-3cbd-4c07-ac73-c7bf0ac87445",
            "type": "EXAMPLE",
            "parts": [
                {
                    "text": "beer",
                    "entityType": "@drink",
                    "alias": "drink",
                    "userDefined": true
                },
                {
                    "text": " please"
                }
            ]
        }
    ]
}

请参阅 documentation TrainingPhrase,特别是 Dialogflow REST API 中的 Part 对象。

解决这些问题的一个好方法是在 Web 中定义一个意图 UI,然后导出并下载代理并查看生成的 JSON 文件以获得该意图。