我绝对是聊天机器人的初学者。我自己学习,并继续使用Dialog flow开发一个非常简单的聊天机器人。我有一个python代码,用于将请求响应给Dialog flow bot。我已在实现中启用了“ webhook”,也已在“ Intent”中启用了。我的ngrok网址为http://ae3df23b.ngrok.io/。我已经在我的python代码中编写了一个函数来响应连接对话框流的ngrok。现在的问题是,它显示错误“ 404 not found”,并且在服务器上找不到请求的URL。如果您手动输入网址,请检查拼写,然后重试。请帮助我。预先感谢。
我的代码是
#import necessary packages and libraries
import urllib
import os
import json
from flask import Flask
from flask import request
from flask import make_response
app=Flask(__name__)
@app.route('/webhook', methods=['POST'])
def webhook():
req=request.get_json(silent=True, force=True)
print("Request:")
print(json.dumps(req, indent=4))
res=makeWebhookResult(req)
res=json.dumps(res, indent=4)
print(res)
r=make_response(res)
r.headers['Content-Type']='application/json'
return r
def makeWebhookResult(req):
if req.get("result").get("action")!="interest":
return {}
result=req.get("result")
parameters=result.get("parameters")
name=parameters.get("Banknames")
bank={'SBI':'10%', 'HDFC Bank':'9%', 'Bank of Baroda':'11', 'Federal Bank':'8.9%', 'ICICI Bank': '11.5%'}
speech='The interest rate of '+ name + "is" + str(bank[name])
print("Response:")
print(speech)
return {
"speech":speech,
"displayText":speech,
"source":"BankInterestRates"
}
if __name__ == "__main__":
port=int(os.getenv('PORT', 80))
print("Starting app on port %d", (port))
app.run(debug=True, port=port, host='0.0.0.0')
答案 0 :(得分:0)
我认为您应该使用https://ae3df23b.ngrok.io/webhook
。您错过了路。另外,使用https
并生成一个新的ngrok URL并更新实现。
答案 1 :(得分:0)
尝试使用这种格式,而不是https://ae3df23b.ngrok.io/[replace-with-your-project-id]/us-central1/dialogflowFirebaseFulfillment
并确保您使用端口5000启动ngrok并使用“ firebase serve”命令托管您的功能