python – 在Dialogflow V2 API中的EventInput中设置参数
作者:互联网
我绝望地尝试在a中设置参数
dialogflow.types.EventInput
在python中.
这个doc表示参数必须是Struct类型.
我在here读到参数需要是google.protobuf.Struct.
但它对我不起作用.
python中是否有另一个Struct类型的等价物?
如果我发送没有参数的EventInput,则会正确检测到意图.
到目前为止我试过这个:
import dialogflow_v2 as dialogflow
session_client = dialogflow.SessionsClient()
session = session_client.session_path(project_id, session_id)
parameters = struct_pb2.Struct()
parameters['given-name'] = 'Jeff'
parameters['last-name'] = 'Bridges'
event_input = dialogflow.types.EventInput(
name='greetPerson',
language_code='de',
parameters=parameters)
query_input = dialogflow.types.QueryInput(event=event_input)
response = session_client.detect_intent(
session=session, query_input=query_input)
有没有这个用例的经验?
我也尝试过的事情:
>传递一个名为p yield的类:
Parameter to MergeFrom() must be instance of same class: expected
Struct got p. for field EventInput.parameters
>通过一个词典:
parameters = {
'given-name': 'Jeff',
'last-name': 'Bridges'}
收益率:
Protocol message Struct has no “given-name” field.
>使用构造函数生成Struct:
from google.protobuf.struct_pb2 import Struct, Value
parameters = Struct(fields={
'given-name':Value(string_value='Jeff'),
'last-name':Value(string_value='Bidges')
})
有时产量:
Exception in thread ptvsd.stopping (most likely raised during
interpreter shutdown):
/ EventInput
解决方法:
这就是我这样做的方式:
import dialogflow
from google.protobuf import struct_pb2
session_client = dialogflow.SessionsClient()
session = session_client.session_path(project_id, session_id)
parameters = struct_pb2.Struct()
parameters["given-name"] = 'Jeff'
parameters["last-name"] = 'Bridges'
query_input = {
'event': {
"name": "greetPerson",
"parameters": parameters,
"language_code": "de"
}
}
response = session_client.detect_intent(
session=session,
query_input=query_input)
注意:
在dialogflow控制台中,必须将参数的默认值设置为#even_name.parameter_name.
在这种情况下,对于参数given-name,它将是#greetPerson.given-name,对于姓氏,它将是#greetPerson.last-name.
文档参考:
我们正在使用DetectIntent,我们正在使用QueryInput,最后我们使用的是EvenInput
希望能帮助到你.
标签:python,dialogflow,protocol-buffers,chatbot 来源: https://codeday.me/bug/20191002/1844271.html