Skip to content

Instantly share code, notes, and snippets.

@mannamman
Created September 19, 2022 03:33
Show Gist options
  • Save mannamman/5082a21afc448615018dc4be9b01b336 to your computer and use it in GitHub Desktop.
Save mannamman/5082a21afc448615018dc4be9b01b336 to your computer and use it in GitHub Desktop.
blog 코드
# https://github.com/mannamman/newsCrawl/blob/main/main.py
from modules.newsCrawler import HeaderCrawler
from modules.mongo_db import DBworker
from modules.file_worker import FileWorker
from modules.log_module import Logger
from finBERT.sentiment import FinBert
import pytz
import datetime
import functools
from math import ceil
import os
import traceback
import copy
from typing import Tuple, List, Dict
from uuid import uuid4
from flask import Response, Request
import json
# multi process
from multiprocessing import Pool
# server
from flask import request, Flask
app = Flask(__name__)
# 객체 초기화(공통으로 사용되는)
db_worker = DBworker()
file_worker = FileWorker()
sentiment_finbert = None
logger = Logger()
KST = pytz.timezone("Asia/Seoul")
def init_sentiment():
global sentiment_finbert
sentiment_finbert = FinBert()
def abstract_request(func):
@functools.wraps(func)
def wrapper(*args, **kwargs):
return func(request)
return wrapper
@app.route("/sentiment", methods=["POST"])
@abstract_request
def index(req: Request):
global KST
global logger
global sentiment_finbert
global db_worker
# lazy loading
if(sentiment_finbert is None):
init_sentiment()
try:
# post 메시지 파싱
recevied_msg = json.loads(req.get_data().decode("utf-8"))
subject = recevied_msg["subject"]
source_lang = recevied_msg["source_lang"]
...
return Response(response="ok", status=200)
except Exception:
error = traceback.format_exc()
error = pretty_trackback(error)
logger.error_log(error)
return Response(response=error, status=400)
if(__name__ == "__main__"):
app.run(host="0.0.0.0", port=8080, debug=False)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment