dream
48 строк · 1.3 Кб
1#!/usr/bin/env python
2
3from os import getenv4
5import logging6import sentry_sdk7import uuid8from flask import Flask, request, jsonify9
10from responder import Responder11
12sentry_sdk.init(getenv("SENTRY_DSN"))13logging.basicConfig(format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", level=logging.INFO)14logger = logging.getLogger(__name__)15
16gunicorn_logger = logging.getLogger("gunicorn.error")17logger.handlers = gunicorn_logger.handlers18logger.setLevel(gunicorn_logger.level)19
20app = Flask(__name__)21
22logger.info("Creating responder...")23responder = Responder(logger)24logger.info("Creating responder... finished")25
26
27@app.route("/respond", methods=["POST"])28def respond():29session_id = uuid.uuid4().hex30logger.info(f"Session_id: {session_id}")31
32dialogs = request.json["dialogs"]33responses = []34confidences = []35
36for dialog in dialogs:37logger.info(f"User utterance: {dialog['utterances'][-1]['text']}")38logger.info(f"Called intents: {dialog['called_intents']}")39response, confidence = responder.respond(dialog)40logger.info(f"Response: {response}")41responses.append(response)42confidences.append(confidence)43
44return jsonify(list(zip(responses, confidences)))45
46
47if __name__ == "__main__":48app.run(debug=True, host="0.0.0.0", port=8012)49