有没有办法检索 Dialogflow 中的对话历史记录?

C S*_*Sla 3 chatbot node.js api-ai dialogflow-es dialogflow-es-fulfillment

有没有办法获得用户和代理之间的完整对话。与我通过单击历史标签获得的结果非常相似,但以编程方式获得。重点是将用户和代理之间的交互保存为文本。

提前谢谢各位了!

Mar*_*nde 5

没有 API 可以直接从 Dialogflow 检索历史记录。但您可以做的是启用日志记录。

Agent Settings > General > Log Settings > Log interactions to Google Cloud
Run Code Online (Sandbox Code Playgroud)

所有交互都将记录到 Google Stackdriver,它有一个 API,您可以在其中检索所有日志,从而检索聊天历史记录。

https://cloud.google.com/logging/docs/reference/v2/rest/

这就是日志在 Stackdriver 中的存储方式

{
  insertId: "19ignahfzlu2o7"
  labels: {
    protocol: "V2BETA1"
    request_id: "3033c2e3-7cab-4a00-b2b7-207be8d22366"
    type: "dialogflow_request"
  }
  logName: "projects/dialogflowproject-ca57b/logs/dialogflow_agent"
  receiveTimestamp: "2019-03-27T12:44:42.547531753Z"
  resource: {
    labels: {
      project_id: "dialogflowproject-ca57b"
    }
    type: "global"
  }
  severity: "INFO"
  textPayload: "Dialogflow gRPC Request : session: projects / dialogflowproject - ca57b / agent / sessions / 53 d451c1 - 40 f5 - c00e - cbbd - 178e ff32b971 "
  query_params {
    time_zone: "America/Buenos_Aires"
  }
  query_input {
    text {
      text: "hi"
      language_code: "en"
    }
  }
  "  
  timestamp: "2019-03-27T12:44:42.420Z"
  trace: "53d451c1-40f5-c00e-cbbd-178eff32b971"
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以从那里检索会话,并构建整个聊天历史记录。


另一种选择是,如果消息首先通过您的服务器(这可能不是您的情况),则在交互发生时将交互保存到数据库中。