首页 > 解决方案 > Flask 允许分块数据还是使用不同的库?

问题描述

嗨,我正在开发一个 python rasa 聊天机器人项目,该项目使用以下代码教程:https ://github.com/RasaHQ/rasa_core/issues/119允许发布对 rasa 框架的调用。我遇到了一个问题,如果 post 调用以块的形式出现,python 将无法接受这一点。有没有办法通过 Flask 接受分块数据,或者你会推荐不同的 webhook 库吗?先感谢您!

Python:

class SimpleWebBot(HttpInputComponent):
"""A simple web bot that listens on a url and responds."""

def blueprint(self, on_new_message):
    custom_webhook = Blueprint('custom_webhook', __name__)
    CORS(custom_webhook)

    @custom_webhook.route("/webhook", methods=['POST'])
    def receive():
        payload = request.json
        sender_id = payload.get("sender", None)
        text = payload.get("message", None)
        out = CollectingOutputChannel()
        on_new_message(UserMessage(text, out, sender_id))
        responses = [m for _, m in out.messages]
        return jsonify(responses)

标签: pythonflaskrasa-core

解决方案


在我看来,对输入通道的分块调用没有任何意义。您发送到 Rasa Core 输入通道的有效负载应该非常小。通常它们包括

  • 发件人 ID
  • 一些授权标头
  • 用户给机器人的消息

这应该是几千字节的大小,这使得分块请求的使用效率低下。


推荐阅读