当我使用Java SDK对后续意图调用API intents.patch(https://dialogflow.com/docs/reference/api-v2/rest/v2/projects.agent.intents/patch)时,收到错误消息:
INVALID_ARGUMENT:只读字段“ root_followup_intent_name”不能 被设置。
我发出的更新请求仅包含意图培训短语的更新(我使用更新掩码“ training_phrases”),我没有修改根跟踪意图。
在根意图上调用相同的API会获得成功响应。这个问题仅在最近几天才出现,但在后续目的上也无法正确解决。
您知道原因吗?
谢谢。
答案 0 :(得分:0)
意图的name
属性是Dialogflow定义的UUID,无法更改(例如718e3349-df8b-4d50-ac72-0de93198512a
)。要更新训练短语,您需要使用dialogflow.projects.agent.intents.list
之类的电话中已有的训练短语ID。这是有效的dialogflow.projects.agent.intents.patch
调用的示例:
PATCH https://dialogflow.googleapis.com/v2/projects/stagent-f2236/agent/intents/c757e598-c44b-485f-bcb4-01c1b0110856?intentView=INTENT_VIEW_FULL&updateMask=trainingPhrases&fields=trainingPhrases
{
"trainingPhrases": [
{
"name": "718e3349-df8b-4d50-ac72-0de93198512a",
"parts": [
{
"text": "updated training phrase text"
}
],
"type": "EXAMPLE"
}
]
}
Here is an API explorer example进行相同的dialogflow.projects.agent.intents.patch
呼叫。请注意,您需要将项目ID(stagent-f2236
)的值更改为Dialogflow代理的项目ID,即训练短语ID(718e3349-df8b-4d50-ac72-0de93198512a
)和您想要的训练短语的ID更改,并将文本(updated training phrase text
更改为您想要将意图训练短语更新为的文本。