gpt4 book ai didi

python - 如何从 ValuesView 获取值(value)?试图理解我的机器人的 Dialogflow 响应

转载 作者:行者123 更新时间:2023-12-04 08:58:58 25 4
gpt4 key购买 nike

我正在尝试使用 DialogFlow、Twilio 和 Flask 创建一个机器人,但我目前陷入了一些看似简单但找不到很多答案的问题。
基本上,我使用以下函数从 Dialogflow 获取 de json 答案:

def fetch_reply(query, session_id):
#gets response from DialogFlow
response = detect_intent_from_text(query, session_id)
resp = {}
#Understading response and seeting it to a dictionary
print(response)
resp['text']=response.fulfillment_text
resp['intent']=response.intent.display_name
resp['parameters'] = response.parameters.fields.values()
return resp
我打印了完整的回复,它给了我以下内容:
query_text: "Tim\303\243o"
parameters {
fields {
key: "soccerteams"
value {
string_value: "Corinthians"
}
}
}
all_required_params_present: true
fulfillment_messages {
text {
text: ""
}
}
intent {
name: "projects/whatsappbotsports-ylml/agent/intents/e7bcf0f5-d37f-4c8b-81ad-09579fded36a"
display_name: "Default Team Request"
}
intent_detection_confidence: 1.0
language_code: "pt-br"
但是当我打印 resp['parameter'] 我的结果是:
ValuesView({'soccerteams': string_value: "Corinthians"
})
我需要访问的只是“Corinthians”或 string_value 的值,但我找不到方法来做到这一点。如果我尝试使用 resp['parameter'].value 或 resp['parameter'].string_value 它会给我 ValuesView 没有这个属性。
知道怎么做吗?

最佳答案

你有一些非常奇怪的输出。它不是 JSON,因为键周围没有引号。
你能试试这样的吗?

import json
from google.protobuf.json_format import MessageToJson

def fetch_reply(query, session_id):
#gets response from DialogFlow
response = detect_intent_from_text(query, session_id)
# trying to parse json
soccerteams = response.parameters.fields["soccerteams"]
soccerteams_json = json.loads(MessageToJson(soccerteams))
return soccerteams_json
然后尝试从 json 获取值。
这只是我尝试修改此代码的尝试: Get Dialogflow context parameters from a follow up intent in Python
让我知道它是否有效。如果没有,请发送一些输出。

关于python - 如何从 ValuesView 获取值(value)?试图理解我的机器人的 Dialogflow 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63653254/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com