【问题标题】:How do I get the JSON response from Dialogflow with Rails?如何使用 Rails 从 Dialogflow 获取 JSON 响应?
【发布时间】:2018-03-18 03:00:29
【问题描述】:

我了解对话流的整个过程,并且我有一个具有 2 个不同意图的有效部署机器人。当用户回答问题时,我如何真正获得机器人的响应? (我将机器人设置为履行状态以进入我的域)。使用 rails 5 应用程序并使用 Heroku 进行部署。

谢谢!

【问题讨论】:

    标签: ruby-on-rails json heroku response dialogflow-es


    【解决方案1】:

    不完全熟悉 Dilogflow,但如果您想在另一个应用程序上发生操作时收到响应,这通常意味着您需要从他们那里接收 web-hook

    WebHook 是一个 HTTP 回调:当某事发生时发生的 HTTP POST;通过 HTTP POST 的简单事件通知。当某些事情发生时,实现 WebHooks 的 Web 应用程序将向 URL 发布消息。

    我建议查看他们的 fulfillment 文档以获取示例。希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      如果您已经设置了 jso 文件的 GOOGLE_APPLICATION_CREDENTIALS 路径,现在您可以使用 ruby​​ 脚本进行测试。

      1. 创建一个 ruby​​ 文件 -> 例如:chatbot.rb
      2. 在文件中编写如下代码。
      project_id = "Your Google Cloud project ID"
      session_id = "mysession"
      texts = ["hello"]
      language_code = "en-US"
      
      require "google/cloud/dialogflow"
      
      session_client = Google::Cloud::Dialogflow::Sessions.new
      session = session_client.class.session_path project_id, session_id
      puts "Session path: #{session}"
      
      texts.each do |text|
        query_input = { text: { text: text, language_code: language_code } }
        response = session_client.detect_intent session, query_input
        query_result = response.query_result
      
        puts "Query text:        #{query_result.query_text}"
        puts "Intent detected:   #{query_result.intent.display_name}"
        puts "Intent confidence: #{query_result.intent_detection_confidence}"
        puts "Fulfillment text:  #{query_result.fulfillment_text}\n"
      end
      
      1. 插入您的 project_id。您可以在 Dialogflow 上的代理上找到此信息。点击左侧菜单中特工名称右侧的齿轮。

      2. 在终端或您用来运行 ruby​​ 文件的任何地方运行 ruby​​ 文件。然后你会看到机器人回复你发送的“你好”消息。

      Obs:别忘了安装 google-cloud gem:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-01-24
        • 1970-01-01
        • 2021-04-23
        • 2022-06-28
        • 2016-11-03
        • 2018-05-04
        • 1970-01-01
        相关资源
        最近更新 更多