Dialogflow es Dialogflow log给我一个在stackdriver中没有逗号的JSON
我正在使用dialogflow创建聊天机器人,我想恢复所有消息并将它们发送到bigquery,然后将bigquery链接到datastudio,向我的客户端显示数据面板 Dialogflow实际上会将所有日志发送到stackdriver,但当textPayload打开时,它没有逗号将其用作公共JSON 有什么想法吗 **更新:Stackdriver日志**Dialogflow es Dialogflow log给我一个在stackdriver中没有逗号的JSON,dialogflow-es,stackdriver,Dialogflow Es,Stackdriver,我正在使用dialogflow创建聊天机器人,我想恢复所有消息并将它们发送到bigquery,然后将bigquery链接到datastudio,向我的客户端显示数据面板 Dialogflow实际上会将所有日志发送到stackdriver,但当textPayload打开时,它没有逗号将其用作公共JSON 有什么想法吗 **更新:Stackdriver日志** { insertId: "qd0nynfxfz53o" labels: { protocol: "V2" requ
{
insertId: "qd0nynfxfz53o"
labels: {
protocol: "V2"
request_id: "7034b4ec-3b54-4f0c-9cee-8a37eb117f66-2dd8e723"
source: "facebook"
type: "dialogflow_response"
}
logName: "projects/cloudy-76f21/logs/dialogflow_agent"
receiveTimestamp: "2019-06-09T19:32:53.416394429Z"
resource: {
labels: {
project_id: "cloudy-76f21"
}
type: "global"
}
severity: "INFO"
textPayload: "Dialogflow Response : id: "7034b4ec-3b54-4f0c-9cee-8a37eb117f66-2dd8e723"
lang: "es"
session_id: "d1eea2ea-3dcc-447c-8883-a23a89d9e570"
timestamp: "2019-06-09T19:32:53.334Z"
result {
source: "agent"
resolved_query: "Prueba"
action: "input.unknown"
score: 1.0
parameters {
}
contexts {
name: "generic"
lifespan: 4
parameters {
fields {
key: "facebook_sender_id"
value {
string_value: "2665762213453771"
}
}
}
}
metadata {
intent_id: "25d76718-8282-47ae-999e-55c40baba860"
intent_name: "Default Fallback Intent"
webhook_used: "false"
webhook_for_slot_filling_used: "false"
is_fallback_intent: "true"
}
fulfillment {
speech: "Si es necesario puedes pedirme ayuda con solo mencionarlo."
messages {
lang: "es"
type {
number_value: 0.0
}
speech {
string_value: "Si es necesario puedes pedirme ayuda con solo mencionarlo."
}
}
}
}
status {
code: 200
error_type: "success"
}
"
timestamp: "2019-06-09T19:32:53.416394429Z"
trace: "d1eea2ea-3dcc-447c-8883-a23a89d9e570"
}
当应用程序将日志写入Stackdriver时,它可以写入一行文本或结构化负载。这取决于编写应用程序选择编写什么。对话框流似乎正在写入一行以下形式的文本:
Dialogflow Request : <Rest of text>
Dialogflow请求:
其中
似乎是一个JSON字符串。如果是这样的话,Dialogflow在Stackdriver编写方面做得不好是有争议的,但也可能有我们不熟悉的故事。不管怎样,我们都拥有我们所拥有的
我们现在需要做的是考虑将这些数据转换成您可以使用的形式。如果我们假设您所需要的只是Dialogflow请求的JSON表示,那么我们要做的就是从Stackdriver中检索记录并找到textPayload行。如果它们以Dialogflow Request:
开头,那么我们将其去掉,并将行的其余部分解析为JSON,这样我们就有了数据
有很多方法可以做到这一点,选择将基于您希望如何处理数据。假设您不需要实时实时解析,那么我会将Stackdriver日志导出为GCS对象(文件),并通过诸如Datafusion(或您自己手工编写的解析器)之类的ETL工具传递它们。然后,生成的数据可以写入新的GCS文件并导入BigQuery
如果您需要实时处理,其中一个方法是将Stackdriver日志消息写入PubSub,并使用云函数在写入记录时获取每个记录。该函数可以解析您的数据并将其写入BigQuery。嘿,Alan,欢迎使用Stack Overflow。你能把你的日志文件复制粘贴到问题中吗?图片更难阅读,我们无法从中复制。当然,我正在复制给我stackdriver的日志。@AlanEstrada嗨,你解决问题了吗?谢谢Kolban,您是否建议以编程方式从dialogflow恢复消息历史记录的其他方法?问题是
dialogflow Request
和dialogflow Response
的文本负载格式不同,对于请求,它与您描述的类似,因此我们可以将其解析为JSON,但对于响应,它与JSON不同,而且它们是不一致的
Dialogflow Request : <Rest of text>