cal*_*iph 3 python dialogflow-es
我正在从 dialogflow V1 移动到 V2。使用 dialogflow python SDK,我收到一个 DetectIntentResponse 结构对象,其中应该包含我需要的信息。
在尝试查找文档并尝试检查此对象一段时间后,我需要您的帮助。这个对象远远超出我的范围......
对于文档,这就是我获取响应对象的方式:
import dialogflow_v2 as dialogflow
session_client = dialogflow.SessionsClient()
session = session_client.session_path(project_id, session_id)
text_input = dialogflow.types.TextInput(text=text, language_code=language_code)
query_input = dialogflow.types.QueryInput(text=text_input)
response = session_client.detect_intent(session=session, query_input=query_input)
Run Code Online (Sandbox Code Playgroud)
如何解析响应?
例如,我通过使用获得了一些参数结构response.query_result.parameters但是我如何获得这个列表?
也许我可以将响应转换为 json(这会让事情变得很容易)?
我需要字典、列表、字符串... :)
小智 5
您可以MessageToJson在google.protobuf项目中使用。(谷歌的协议缓冲区)
#import the function
from google.protobuf.json_format import MessageToJson
#...after getting the response = session_client.detect_intent(...)
json_response = MessageToJson(response)
Run Code Online (Sandbox Code Playgroud)
您可以转换包含在DetectIntentResponse诸如QueryResultbyMessageToJson(response.query_result)等中的各种类型以获得特定响应。
我的回答是特定于DialogFlow但是我心领神会从这个答案在SO,回答有关蟒蛇一个更普遍的问题。
请注意,我google.protobuf.json_format.MessageToJson专门使用了因为 DialogFlow API V2 返回由 Google 定义的类对象。我不能保证这将适用于其他 Chatbot API(可能我也需要探索它)。