sage/app/sage.py
2025-07-16 14:28:41 +08:00

55 lines
1.7 KiB
Python

import os, sys
import argparse
from appPublic.log import MyLogger, info, debug, warning
from appPublic.folderUtils import ProgramPath
from appPublic.jsonConfig import getConfig
from appPublic.registerfunction import RegisterFunction
from ahserver.configuredServer import ConfiguredServer
from ahserver.serverenv import ServerEnv
from rbac.init import load_rbac
from appbase.init import load_appbase
from basellm.init import load_basellm
from filemgr.init import load_filemgr
from uapi.init import load_uapi
from global_func import set_globalvariable
from pf_pay.init import load_pf_pay
from platformbiz.init import load_platformbiz
from accounting.init import load_accounting
from ext import *
from rf import *
__version__ = '0.0.1'
if __name__ == '__main__':
parser = argparse.ArgumentParser(prog="Sage")
parser.add_argument('-w', '--workdir')
parser.add_argument('-p', '--port')
args = parser.parse_args()
workdir = args.workdir or os.getcwd()
p = ProgramPath()
config = getConfig(workdir, NS={'workdir':workdir, 'ProgramPath':p})
if config.logger:
logger = MyLogger(config.logger.name or 'sage',
levelname=config.logger.levelname or 'debug',
logfile=config.logger.logfile or None)
else:
logger = MyLogger('sage', levelname='debug')
info(f'====================sage version={__version__}')
# server = ConfiguredServer(auth_klass=MyAuthAPI, workdir=workdir)
server = ConfiguredServer(workdir=workdir)
rf = RegisterFunction()
set_globalvariable()
load_appbase()
load_rbac()
load_accounting()
load_pf_pay()
load_platformbiz()
load_basellm()
load_filemgr()
load_uapi()
port = args.port or config.website.port or 8080
port = int(port)
server.run(port=port)