我想针对对话框流代理的特定意图更新(添加)响应。
假设有3个响应,如下图所示,我想添加第4个响应。
我使用了update_intent
方法,但是无法完成。
client = dialogflow.IntentsClient()
intent_name = client.intent_path(project_id, intent_id)
intent = client.get_intent(intent_name)
response_list = ['text response']
text = dialogflow.types.Intent.Message.Text(text=response_list)
message = dialogflow.types.Intent.Message(text=text)
intent.messages.extend([message])
response = client.update_intent(intent, language_code='en')
如何将其添加为第四响应?
更新:
我尝试将文本字段添加到intent.messages的Text对象,但是找不到添加文本字段的任何方法。
intent.messages[0].text
文本:“第一响应”
文字:“第二响应”
文字:“第三响应”
intent.messages[0].text.add()
*** AttributeError: 'Text' object has no attribute 'add'
intent.messages[0].text.append()
*** AttributeError: 'Text' object has no attribute 'append'
intent.messages[0].text = text
*** TypeError: Can't set composite field
intent.messages[0].Text = ''
*** AttributeError: Assignment not allowed (no field "Text" in protocol message object).
答案 0 :(得分:1)
这看起来像python客户端,对吗?
intent.messages
字段包含一组丰富的邮件对象,包括Text
对象。 Text
对象包含一个text
字段,它是文本响应的集合。
您要向Text
添加一个新的intent.messages
对象,而不是向现有Text
集合中的第一个intent.messages
对象添加文本响应。
听起来您应该先通过intent.messages
找到第一个Text
对象,然后将另一个文本值添加到该对象的text
字段中。然后使用更新值调用client.update_intent
。
正如您在评论中指出的那样,您可以通过
intent.messages[0].text.text.append(response)