- app/pipeline_app.py: load_uapi() + init_rag_module()(uapi 必须先于 rag) - build.sh: 四处模块列表加 uapi/rag(clone/pip/xls2ui/wwwroot symlink) 新增 8b 步骤:json2ddl 建 rag_* 表 + 导入 uapi_seed.sql 配置种子 - wwwroot/index.ui: 侧边栏加「知识库」菜单项(open_tab 符合 UI 导航契约) - i18n zh/en/jp/ko: 补知识库相关四语言文案 rag 表统一 rag_ 前缀,与产线业务表隔离;数据独立于 ragserver
81 lines
2.4 KiB
Python
81 lines
2.4 KiB
Python
#!/usr/bin/env python3
|
||
"""Pipeline Application - 产线管理独立应用"""
|
||
import os, sys, asyncio
|
||
|
||
app_dir = os.path.dirname(os.path.abspath(__file__))
|
||
root_dir = os.path.dirname(app_dir)
|
||
sys.path.insert(0, root_dir)
|
||
sys.path.insert(0, app_dir)
|
||
|
||
from ahserver.webapp import webapp
|
||
from ahserver.serverenv import ServerEnv
|
||
|
||
|
||
def get_module_dbname(mname):
|
||
"""All modules use the pipeline database."""
|
||
return 'pipeline'
|
||
|
||
|
||
def init():
|
||
from bricks_for_python.init import load_pybricks
|
||
from rbac.init import load_rbac
|
||
from appbase.init import load_appbase
|
||
from pipeline_core.init import load_pipeline_core
|
||
from pipeline_ops.init import load_pipeline_ops
|
||
from pipeline_dist.init import load_pipeline_dist
|
||
try:
|
||
from pipeline_service.init import load_pipeline_service
|
||
except ImportError:
|
||
def load_pipeline_service(): pass
|
||
try:
|
||
from pipeline_sdlc.adapter import load_sdlc_adapter
|
||
except ImportError:
|
||
def load_sdlc_adapter(): pass
|
||
try:
|
||
from app_audit.init import load_app_audit
|
||
except ImportError:
|
||
def load_app_audit(): pass
|
||
from showcase.init import load_showcase
|
||
from tenant.init import load_tenant
|
||
from ktv_adapter import load_ktv_adapter
|
||
from global_func import set_globalvariable
|
||
import office_proxy # 注册 /office/* 转发函数(univer-office Node 服务代理)
|
||
try:
|
||
from smssend import load_smssend
|
||
except ImportError:
|
||
def load_smssend(): pass
|
||
# uapi:外部 API 网关(rag 模块依赖它调 vdb/reranker/ner/graph)
|
||
try:
|
||
from uapi.init import load_uapi
|
||
except ImportError:
|
||
def load_uapi(): pass
|
||
# rag:知识库(向量检索 + 图谱),表名统一 rag_ 前缀,与产线业务表不冲突
|
||
try:
|
||
from rag.init import init_rag_module
|
||
except ImportError:
|
||
def init_rag_module(): pass
|
||
|
||
set_globalvariable()
|
||
ServerEnv().get_module_dbname = get_module_dbname
|
||
load_pybricks()
|
||
load_appbase()
|
||
load_rbac()
|
||
load_pipeline_core()
|
||
load_pipeline_ops()
|
||
load_pipeline_dist()
|
||
load_pipeline_service()
|
||
load_sdlc_adapter()
|
||
load_app_audit()
|
||
load_showcase()
|
||
load_tenant()
|
||
load_ktv_adapter()
|
||
load_smssend()
|
||
load_uapi() # 必须在 rag 之前:rag 通过 uapi 调 vdb/reranker/ner/graph
|
||
init_rag_module()
|
||
|
||
# Permission cache warms up on first request
|
||
|
||
|
||
if __name__ == '__main__':
|
||
webapp(init)
|