|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import logging |
|
import os |
|
import signal |
|
import sys |
|
import time |
|
import traceback |
|
from concurrent.futures import ThreadPoolExecutor |
|
|
|
from werkzeug.serving import run_simple |
|
from api.apps import app |
|
from api.db.runtime_config import RuntimeConfig |
|
from api.db.services.document_service import DocumentService |
|
from api.settings import ( |
|
HOST, HTTP_PORT, access_logger, database_logger, stat_logger, |
|
) |
|
from api import utils |
|
|
|
from api.db.db_models import init_database_tables as init_web_db |
|
from api.db.init_data import init_web_data |
|
from api.versions import get_versions |
|
|
|
|
|
def update_progress(): |
|
while True: |
|
time.sleep(1) |
|
try: |
|
DocumentService.update_progress() |
|
except Exception as e: |
|
stat_logger.error("update_progress exception:" + str(e)) |
|
|
|
|
|
if __name__ == '__main__': |
|
print(r""" |
|
____ ______ __ |
|
/ __ \ ____ _ ____ _ / ____// /____ _ __ |
|
/ /_/ // __ `// __ `// /_ / // __ \| | /| / / |
|
/ _, _// /_/ // /_/ // __/ / // /_/ /| |/ |/ / |
|
/_/ |_| \__,_/ \__, //_/ /_/ \____/ |__/|__/ |
|
/____/ |
|
|
|
""", flush=True) |
|
stat_logger.info( |
|
f'project base: {utils.file_utils.get_project_base_directory()}' |
|
) |
|
|
|
|
|
init_web_db() |
|
init_web_data() |
|
|
|
import argparse |
|
parser = argparse.ArgumentParser() |
|
parser.add_argument('--version', default=False, help="rag flow version", action='store_true') |
|
parser.add_argument('--debug', default=False, help="debug mode", action='store_true') |
|
args = parser.parse_args() |
|
if args.version: |
|
print(get_versions()) |
|
sys.exit(0) |
|
|
|
RuntimeConfig.DEBUG = args.debug |
|
if RuntimeConfig.DEBUG: |
|
stat_logger.info("run on debug mode") |
|
|
|
RuntimeConfig.init_env() |
|
RuntimeConfig.init_config(JOB_SERVER_HOST=HOST, HTTP_PORT=HTTP_PORT) |
|
|
|
peewee_logger = logging.getLogger('peewee') |
|
peewee_logger.propagate = False |
|
|
|
peewee_logger.addHandler(database_logger.handlers[0]) |
|
peewee_logger.setLevel(database_logger.level) |
|
|
|
thr = ThreadPoolExecutor(max_workers=1) |
|
thr.submit(update_progress) |
|
|
|
|
|
try: |
|
stat_logger.info("RAG Flow http server start...") |
|
werkzeug_logger = logging.getLogger("werkzeug") |
|
for h in access_logger.handlers: |
|
werkzeug_logger.addHandler(h) |
|
run_simple(hostname=HOST, port=HTTP_PORT, application=app, threaded=True, use_reloader=RuntimeConfig.DEBUG, use_debugger=RuntimeConfig.DEBUG) |
|
except Exception: |
|
traceback.print_exc() |
|
os.kill(os.getpid(), signal.SIGKILL) |