【问题标题】:Using a webhook from Google Cloud Functions with Dialogflow CX在 Dialogflow CX 中使用来自 Google Cloud Functions 的 webhook
【发布时间】:2021-08-28 16:16:14
【问题描述】:

我成功地在 repl 环境和烧瓶中使用 Dialogflow CX 实现了 webhook,但不确定如何将 webhook 移动到 Google Cloud Functions 上。我已经在网上搜索了教程,但大多数都在 Dialogflow ES 中。任何帮助表示赞赏!

这是我目前在 repl 上的代码:

from flask import Flask, request
app = Flask(__name__)

def create_json_response(response_text, updated_params):
  jsonResponse = {
    "fulfillment_response":
      {
        "messages": [
          {
            "text": {
              "text": [
                str(response_text)
              ]
            }
          }
        ]
      }, 
    "sessionInfo": {
    "parameters": updated_params
            }
  }
  return jsonResponse
  
@app.route('/webhook', methods=['POST'])
def webhook():
  req = request.get_json(silent=True, force=True)
  fulfillmentInfo = req.get('fulfillmentInfo')
  
  if fulfillmentInfo['tag'] == 'add':
    updated_params = {}
    total = 0
    num1 = int(req.get('sessionInfo').get('parameters').get('number'))
    num2 = int(req.get('sessionInfo').get('parameters').get('number1'))
    total = str(num1 + num2)
    updated_params['previous1'] = num1
    updated_params['previous2'] = num2
    updated_params['number'] = None
    updated_params['number1'] = None
    jsonResponse = create_json_response(total, updated_params)
    return jsonResponse


  elif fulfillmentInfo['tag'] == 'multiply':
    updated_params = {}
    total = 0
    num1 = int(req.get('sessionInfo').get('parameters').get('number'))
    num2 = int(req.get('sessionInfo').get('parameters').get('number1'))
    total = str(num1 * num2)
    updated_params['previous1'] = num1
    updated_params['previous2'] = num2
    updated_params['number'] = None
    updated_params['number1'] = None
    jsonResponse = create_json_response(total, updated_params)
    return jsonResponse
  

  

@app.route('/') # this is the home page route
def hello_world(): # this is the home page function that generates the page code
    return "Hello Beautiful World!"

if __name__ == '__main__':
  app.run(host='0.0.0.0', port=8080) # This line is required to run Flask on repl.it


【问题讨论】:

    标签: google-cloud-functions dialogflow-cx


    【解决方案1】:

    我正在回答我自己的问题!我只需要在我的 webhook 函数中将请求作为参数传递。卧槽!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-06
      • 2019-03-03
      • 2020-09-29
      • 2022-07-20
      • 1970-01-01
      相关资源
      最近更新 更多