dream

Форк
0
39 строк · 1.2 Кб
1
import logging
2
import os
3
import time
4
from flask import Flask, request, jsonify
5
import sentry_sdk
6
from sentry_sdk.integrations.flask import FlaskIntegration
7
from wiki_parser import wp_call
8
from common.utils import remove_punctuation_from_dict_keys
9

10

11
logging.basicConfig(format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", level=logging.INFO)
12
logger = logging.getLogger(__name__)
13
sentry_sdk.init(dsn=os.getenv("SENTRY_DSN"), integrations=[FlaskIntegration()])
14

15
app = Flask(__name__)
16

17

18
@app.route("/model", methods=["POST"])
19
def respond():
20
    st_time = time.time()
21
    inp = request.json
22
    parser_info = inp.get("parser_info", ["find_triplets"])
23
    query = inp.get("query", [("Q0", "P0", "forw")])
24
    utt_num = inp.get("utt_num", 0)
25
    res = [[] for _ in query]
26
    logger.debug("Calling wp")
27
    try:
28
        res = wp_call(parser_info, query, utt_num)
29
        res = remove_punctuation_from_dict_keys(res)
30
    except Exception as e:
31
        sentry_sdk.capture_exception(e)
32
        logger.exception(e)
33
    total_time = time.time() - st_time
34
    logger.info(f"wiki parser exec time = {total_time:.3f}s")
35
    return jsonify(res)
36

37

38
if __name__ == "__main__":
39
    app.run(debug=False, host="0.0.0.0", port=3000)
40

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.