ExpectedInputs/possible_intents仅适用于"assistant.intent.action.TEXT"?

Was*_*sda 4 actions-on-google

我目前正在尝试使用其他网络服务在谷歌上编写动作演示.

用户打开动作时("与testaction对话")并显示欢迎消息(通过主要意图).此初始意图需要用户响应,并通过JSON响应中的possible_intents字段设置下一个预期意图

根据文档,我应该能够在HTTP JSON响应的possible_intents中指定自定义意图.

但是,如果我使用除"assistant.intent.action.TEXT"之外的任何其他意图,一旦我响应初始意图/提示,我就会收到以下错误:

对不起,我没听懂.

并且对最初欢迎意图的响应未正确地路由到我的服务.

这不起作用:

{
    "response": "...",
    "expectUserResponse": true,
    "conversationToken": "...",
    "audioResponse": "...",
    "debugInfo": {
        "agentToAssistantDebug": {
            "agentToAssistantJson": {
                "conversation_token": "...",
                "expect_user_response": true,
                "expected_inputs": [
                    {
                        "input_prompt": {
                            [...]
                        },
                        "possible_intents": [
                            {
                                "intent": "testintent"
                            }
                        ]
                    }
                ]
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这有效:

{
    "response": "...",
    "expectUserResponse": true,
    "conversationToken": "...",
    "audioResponse": "...",
    "debugInfo": {
        "agentToAssistantDebug": {
            "agentToAssistantJson": {
                "conversation_token": "...",
                "expect_user_response": true,
                "expected_inputs": [
                    {
                        "input_prompt": {
                            [...]
                        },
                        "possible_intents": [
                            {
                                "intent": "assistant.intent.action.TEXT"
                            }
                        ]
                    }
                ]
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的testintent在actions包中正确定义,如果我直接调用它就可以正常工作.

是否真的只能使用通用TEXT意图,然后我必须自己在代码中进行所有文本匹配和意图识别?

Leo*_*lls 5

使用Actions SDK时,仅支持TEXT意图.您必须使用自己的NLU来解析用户提供的原始文本输入.

如果您没有自己的NLU,我们建议您使用API​​.AI.

  • @LeonNicholls:你能在文档中清楚地记录这个吗?我现在花了几天时间实现一个假定ActionsSDK按照文档记录工作的系统(即,任何意图都将被解析),现在我必须全力以赴并切换到API.AI. (2认同)