Google assistant sdk [CUSTOM TYPES]: захват денежных величин (10, 20, 50 долларов) из пользовательского действия - PullRequest
2 голосов
/ 31 мая 2019

Я хочу использовать пользовательский тип для сбора значений в размере $ 10, $ 5, $ 20 и т. Д. В моем настраиваемом действии, потому что для этого типа данных нет определенного типа Schema.org. Я добавляю это в файл json, но он не работает.

Это работает на распбиане. Использование Google Assistant SDK 1.0.1 версии. Акция создана для испанского языка.

{   
    "locale": "es",
    "manifest": {
        "displayName": "Imprimir",
        "invocationName": "Imprimir",
        "category": "PRODUCTIVITY"
    },
    "actions": [
        {
            "name": "com.example.actions.Imprimir",
            "availability": {
                "deviceClasses": [
                    {
                        "assistantSdkDevice": {}
                    }
                ]
            },
            "intent": {
                "name": "com.example.intents.Imprimir",
                "parameters": [
                    {
                        "name": "cantidad",
                        "type": "SchemaOrg_Number"
                    },
                    {
                        "name": "valor",
                        "type": "$Valor"
                    }
                ],
                "trigger": {
                    "queryPatterns": [
                        "imprimir $SchemaOrg_Number:cantidad tickets de $Valor:valor"
                    ]
                }
            },
            "fulfillment": {
                "staticFulfillment": {
                    "templatedResponse": {
                        "items": [
                            {
                                "simpleResponse": {
                                    "textToSpeech": "De acuerdo"
                                }
                            },
                            {
                                "deviceExecution": {
                                    "command": "com.example.commands.Imprimir",
                                    "params": {
                                        "cantidad": "$cantidad",
                                        "valor": "$valor"
                                    }
                                }
                            }
                        ]
                    }
                }
            }
        }
    ],
    "types": [
        {
            "name": "$Valor",
            "entities": [
                {
                    "key": "1$",
                    "synonyms": [
                        "1 dolar"
                    ]
                },
                {
                    "key": "2$",
                    "synonyms": [
                        "2 dolares"
                    ]
                },
                {
                    "key": "5$",
                    "synonyms": [
                        "5 dolares"
                    ]
                },
                {
                    "key": "10$",
                    "synonyms": [
                        "10 dolares"
                    ]
                },
                {
                    "key": "20$",
                    "synonyms": [
                        "20 dolares"
                    ]
                }
            ]
        }
    ]
}

Это не показывает мне явной ошибки. Вот что происходит, когда я говорю о заказе:

ON_END_OF_UTTERANCE
ON_END_OF_UTTERANCE
ON_RECOGNIZING_SPEECH_FINISHED:
  {"text": "imprimir dos ticket de $10"}
ON_RESPONDING_STARTED:
  {"is_error_response": false}
ON_RESPONDING_FINISHED
ON_CONVERSATION_TURN_FINISHED:
  {"with_follow_on_turn": false}

Помощник скажи мне, что она не работает. Я работаю в испанской фракции.

Я знаю, что мой пользовательский тип не работает, потому что событие не захвачено. Я уверен, что в файле json нет ошибок, потому что если я игнорирую тип «Valor», заменим его на $SchemaOrg_Number и опущу слово «dolar», фракция будет работать хорошо.

Я уже пробовал с $SchemaOrg_priceCurrency, но он фиксирует тип валюты, такой как доллар, соль, иена, евро и т. Д ...

1 Ответ

0 голосов
/ 10 июня 2019

Ваш список синонимов должен включать каждую возможную комбинацию.Если в вашем запросе в качестве строки указан «$ 10», это должно совпадать как синоним, иначе запрос не будет совпадать вообще.

...