|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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(3) |
|
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) |
|
|