如何限制在聊天机器人Kommunicate中收到的聊天次数

时间:2020-04-29 16:56:01

标签: dialogflow-es integration webhooks chatbot kommunicate

我已经将Kommunicate聊天机器人集成到我的网站中,但是,在我的网站上却产生了很多流量,由于这些原因,与我有能力支持的带宽相比,有更多的用户正在聊天(代理明智的做法)。 我似乎找不到一种方法来限制一个座席/人员在任何给定时间可以处理的当前活动聊天的数量。我希望找到同样的解决方案。

这可以通过提供的webhook集成来完成吗?如果可以,怎么办?

1 个答案:

答案 0 :(得分:2)

该解决方案确实在于添加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->实现->在此处输入我的Webhooks端点:

enter image description here [注意:点击页面底部的保存按钮]

您必须为要添加服务器逻辑的Intent启用webhook调用,在我的情况下,这是我想在限制聊天次数的情况下转移到实时代理的情况:

enter image description here

为确保在服务器故障时不会破坏Kommunicate的默认行为,我添加了自定义有效负载(如上图所示):

{
  "metadata": {
    "KM_ASSIGN_TO": ""
  },
  "platform": "kommunicate",
  "message": "---- Redact that sweet sweet company Information. Yeah!!---"
}

[注意:在Intent中进行更改后,请确保点击右上角的Save。]

然后我在Kommunicate-> Settings-> Developer-> Webhooks中添加了Webhook URL(与DialogFlow中使用的URL相同)。 enter image description here [注意:点击页面底部的保存更改按钮]

一切设置完成后,您将开始在服务器中接收消息,并可以根据需要添加逻辑。请注意,这很繁琐,因为您必须阅读大量文档并添加大量逻辑才能使其按需运行。