mirror of
				https://github.com/infiniflow/ragflow.git
				synced 2025-11-04 11:49:37 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			116 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
#
 | 
						|
#  Copyright 2024 The InfiniFlow Authors. All Rights Reserved.
 | 
						|
#
 | 
						|
#  Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
#  you may not use this file except in compliance with the License.
 | 
						|
#  You may obtain a copy of the License at
 | 
						|
#
 | 
						|
#      http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
#
 | 
						|
#  Unless required by applicable law or agreed to in writing, software
 | 
						|
#  distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
#  See the License for the specific language governing permissions and
 | 
						|
#  limitations under the License.
 | 
						|
#
 | 
						|
 | 
						|
# from beartype import BeartypeConf
 | 
						|
# from beartype.claw import beartype_all  # <-- you didn't sign up for this
 | 
						|
# beartype_all(conf=BeartypeConf(violation_type=UserWarning))    # <-- emit warnings from all code
 | 
						|
 | 
						|
from api.utils.log_utils import initRootLogger
 | 
						|
initRootLogger("ragflow_server")
 | 
						|
 | 
						|
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 import settings
 | 
						|
from api.apps import app
 | 
						|
from api.db.runtime_config import RuntimeConfig
 | 
						|
from api.db.services.document_service import DocumentService
 | 
						|
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_ragflow_version
 | 
						|
from api.utils import show_configs
 | 
						|
from rag.settings import print_rag_settings
 | 
						|
 | 
						|
 | 
						|
def update_progress():
 | 
						|
    while True:
 | 
						|
        time.sleep(6)
 | 
						|
        try:
 | 
						|
            DocumentService.update_progress()
 | 
						|
        except Exception:
 | 
						|
            logging.exception("update_progress exception")
 | 
						|
 | 
						|
 | 
						|
if __name__ == '__main__':
 | 
						|
    logging.info(r"""
 | 
						|
        ____   ___    ______ ______ __               
 | 
						|
       / __ \ /   |  / ____// ____// /____  _      __
 | 
						|
      / /_/ // /| | / / __ / /_   / // __ \| | /| / /
 | 
						|
     / _, _// ___ |/ /_/ // __/  / // /_/ /| |/ |/ / 
 | 
						|
    /_/ |_|/_/  |_|\____//_/    /_/ \____/ |__/|__/                             
 | 
						|
 | 
						|
    """)
 | 
						|
    logging.info(
 | 
						|
        f'RAGFlow version: {get_ragflow_version()}'
 | 
						|
    )
 | 
						|
    logging.info(
 | 
						|
        f'project base: {utils.file_utils.get_project_base_directory()}'
 | 
						|
    )
 | 
						|
    show_configs()
 | 
						|
    settings.init_settings()
 | 
						|
    print_rag_settings()
 | 
						|
 | 
						|
    # init db
 | 
						|
    init_web_db()
 | 
						|
    init_web_data()
 | 
						|
    # init runtime config
 | 
						|
    import argparse
 | 
						|
 | 
						|
    parser = argparse.ArgumentParser()
 | 
						|
    parser.add_argument(
 | 
						|
        "--version", default=False, help="RAGFlow 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_ragflow_version())
 | 
						|
        sys.exit(0)
 | 
						|
 | 
						|
    RuntimeConfig.DEBUG = args.debug
 | 
						|
    if RuntimeConfig.DEBUG:
 | 
						|
        logging.info("run on debug mode")
 | 
						|
 | 
						|
    RuntimeConfig.init_env()
 | 
						|
    RuntimeConfig.init_config(JOB_SERVER_HOST=settings.HOST_IP, HTTP_PORT=settings.HOST_PORT)
 | 
						|
 | 
						|
    thread = ThreadPoolExecutor(max_workers=1)
 | 
						|
    thread.submit(update_progress)
 | 
						|
 | 
						|
    # start http server
 | 
						|
    try:
 | 
						|
        logging.info("RAGFlow HTTP server start...")
 | 
						|
        run_simple(
 | 
						|
            hostname=settings.HOST_IP,
 | 
						|
            port=settings.HOST_PORT,
 | 
						|
            application=app,
 | 
						|
            threaded=True,
 | 
						|
            use_reloader=RuntimeConfig.DEBUG,
 | 
						|
            use_debugger=RuntimeConfig.DEBUG,
 | 
						|
        )
 | 
						|
    except Exception:
 | 
						|
        traceback.print_exc()
 | 
						|
        os.kill(os.getpid(), signal.SIGKILL)
 |