我已经集成了Kommunicate聊天机器人到我的网站,然而,在我的网站上产生了大量的流量,由于它比我有更多的用户聊天比我有带宽支持(代理明智)。我似乎找不到一种方法来限制一个代理/人在任何给定时间可以处理的当前活动聊天的数量。我希望为同样的问题找到解决方案。
这可以通过提供的webhook集成来实现吗?如果是这样的话,是怎么做的?
发布于 2020-06-06 16:40:14
解决方案确实在于添加了webhook集成。
首先,我启动一个简单的flask服务器,服务于一个端点: /webhook。
app = Flask(__name__)
@app.route('/webhook', methods=['GET', 'POST'])
def webhook():
logger.debug('Webhook Triggered') #-> we know it's being trigerred.
resp_generated = make_response(jsonify(results()))
logger.debug(resp_generated)#-> always shows 200 anyway.
return resp_generated
if __name__ == '__main__':
app.run(host ='0.0.0.0', port = 5000, debug = True)然后,我使用ngrok创建到我的本地服务器的隧道(我计划在稍后的阶段将其托管在GKE上)
ngrok http 5000这为我提供了一个指向Flask服务器的HTTPS URL,例如https:\534bbe.ngrok.io
然后,我进入DialogFlow -> Fulfillment ->,在那里输入我的Webhooks端点:

注意:点击页面底部的保存按钮
您必须为您要添加服务器逻辑的意图启用webhook调用,在我的情况下,当我想要转移到实时代理时,同时限制聊天的数量:

为了确保Kommunicate的默认行为不会在服务器宕机时被破坏,我添加了自定义负载(如上图所示):
{
"metadata": {
"KM_ASSIGN_TO": ""
},
"platform": "kommunicate",
"message": "---- Redact that sweet sweet company Information. Yeah!!---"
}注意:在对Intent进行更改后,请确保单击右上角的Save。
然后,我在Kommunicate ->设置-> Developer -> Webhooks中添加了Webhook URL (与DialogFlow中使用的相同

注意:点击页面底部的保存更改按钮
一旦一切就绪,您将开始在服务器中接收消息,并可以根据需要添加您的逻辑。请注意,这非常单调乏味,因为您必须阅读大量文档并添加一堆逻辑,才能使其按您希望的方式工作。
https://stackoverflow.com/questions/61507257
复制相似问题