【发布时间】:2018-09-23 15:26:13
【问题描述】:
我是聊天机器人的绝对初学者。我正在自学并继续使用 Dialog flow 开发一个非常简单的聊天机器人。我有一个 python 代码来响应我的对话流机器人的请求。我在履行中启用了“webhook”,也在“Intent”中启用。我的 ngrok url 是 http://ae3df23b.ngrok.io/。我在我的 python 代码中编写了一个函数,它响应连接 Dialog 流的 ngrok。现在的问题是它显示错误“404 not found”并且在服务器上找不到请求的 URL。如果您手动输入了 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')
【问题讨论】:
-
你能从 Postman 或 Rest Console 中访问服务吗?
-
在我的系统中从命令行运行
-
您能否更新您的问题以显示您使用什么命令来启动 ngrok 以及运行 python 脚本时命令行上显示的内容?
标签: python nlp dialogflow-es chatbot ngrok