我正在将dialogflow REST API V2用于batchUpdate的意图,即,使用Node.js将更多的训练短语发布到我的dialogflow代理中的每个意图。我将这些训练用语保存在.txt文件中(用“ \ n”字符分隔的短语),在调用batchUpdate方法之前,我的node.js脚本将其解析为training phrase对象。我目前的代理人有一堆我创建的自定义实体。我使用entity List方法来抓住我定义的所有实体,并手动获取代码以检查我的训练短语中是否存在任何这些实体类型,以进行相应的解析。
但是,我的问题是,我希望dialogflow在此过程中自动检测一些系统定义的实体(例如@ sys.given-name,@ sys.date等)。在我的脚本“嗅探”这些实体类型并将训练短语分解为相应的parts时,捕获自定义实体似乎没有任何问题。我希望dialogflow可以对系统定义的实体进行类似的注释,而无需我再次手动将训练短语分解为多个部分。
我看到part对象具有一个我不完全理解的名为“ userDefined”参数的参数。切换此参数没有改变我的训练短语对象中的任何内容。我还可以看到TrainingPhrase对象带有一个“类型”参数,我也尝试过使用它。我不清楚TYPE_UNSPECIFIED是什么意思,为什么EXAMPLE是唯一的其他选择,所以不允许在训练短语中包含@前缀的实体类型名称。
在训练短语对象中是否可能没有设置参数,以允许dialogflow自动检测这些@前缀的实体类型名称?
这是我在请求正文中使用的intentBatch对象。
{
"intentBatchInline": {
"intents": [
{
"displayName": "cheese",
"name": " projects/copy-c6f8c/agent/intents/07207104-75f1-4ed0-b97a-8d6931f9049e",
"trainingPhrases": [
{
"type": "TYPE_UNSPECIFIED",
"parts": [
{
"text": "Here's my Indian phone number: 5432543243",
"userDefined": false
}
]
}
]
}
],
}
}