【发布时间】:2018-03-18 03:00:29
【问题描述】:
我了解对话流的整个过程,并且我有一个具有 2 个不同意图的有效部署机器人。当用户回答问题时,我如何真正获得机器人的响应? (我将机器人设置为履行状态以进入我的域)。使用 rails 5 应用程序并使用 Heroku 进行部署。
谢谢!
【问题讨论】:
标签: ruby-on-rails json heroku response dialogflow-es
我了解对话流的整个过程,并且我有一个具有 2 个不同意图的有效部署机器人。当用户回答问题时,我如何真正获得机器人的响应? (我将机器人设置为履行状态以进入我的域)。使用 rails 5 应用程序并使用 Heroku 进行部署。
谢谢!
【问题讨论】:
标签: ruby-on-rails json heroku response dialogflow-es
不完全熟悉 Dilogflow,但如果您想在另一个应用程序上发生操作时收到响应,这通常意味着您需要从他们那里接收 web-hook
WebHook 是一个 HTTP 回调:当某事发生时发生的 HTTP POST;通过 HTTP POST 的简单事件通知。当某些事情发生时,实现 WebHooks 的 Web 应用程序将向 URL 发布消息。
我建议查看他们的 fulfillment 文档以获取示例。希望对您有所帮助。
【讨论】:
如果您已经设置了 jso 文件的 GOOGLE_APPLICATION_CREDENTIALS 路径,现在您可以使用 ruby 脚本进行测试。
chatbot.rb
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
插入您的 project_id。您可以在 Dialogflow 上的代理上找到此信息。点击左侧菜单中特工名称右侧的齿轮。
在终端或您用来运行 ruby 文件的任何地方运行 ruby 文件。然后你会看到机器人回复你发送的“你好”消息。
Obs:别忘了安装 google-cloud gem:
【讨论】: