pipeline-app/app/pipeline_app.py

168 lines
6.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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
try:
from pipeline_bidding.init import load_pipeline_bidding
except ImportError:
def load_pipeline_bidding(): pass
try:
from pipeline_opportunity.init import load_pipeline_opportunity
except ImportError:
def load_pipeline_opportunity(): 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
# dapi开放平台 key 管理downapp/downapikey。注册 'Bearer ' 认证方法进 RBAC
# rag 对外 API 的 Bearer key 鉴权依赖它——必须在 rag 之前 load。
try:
from dapi.init import load_dapi
except ImportError:
def load_dapi(): pass
# rag知识库向量检索 + 图谱),表名统一 rag_ 前缀,与产线业务表不冲突
try:
from rag.init import init_rag_module
except ImportError:
def init_rag_module(): pass
# dingdingflow钉钉审批表名 dda_ 前缀)。必须早于 pipeline_service
# 后者的 dingtalk_approval 适配器要用它注册的 register_biz_handler
try:
from dingdingflow.init import load_dingdingflow
except ImportError:
def load_dingdingflow(): pass
# ── 商品化:定价/账务/折扣/支付(模块与表早已就位,此前一直没 load页面点了即 500──
try:
from pricing.init import load_pricing
except ImportError:
def load_pricing(): pass
try:
from accounting.init import load_accounting
except ImportError:
def load_accounting(): pass
try:
from discount.init import load_discount
except ImportError:
def load_discount(): pass
try:
from unipay.init import load_unipay
except ImportError:
def load_unipay(): pass
# ── 资源模块:各自决定 ppid 挂法,统一暴露 resolve_ppid 给产品层 ──
try:
from account_resource.init import load_account_resource
except ImportError:
def load_account_resource(): pass
try:
from storage_resource.init import load_storage_resource
except ImportError:
def load_storage_resource(): pass
# product_management产品层通过 env.product_interface 调资源模块
try:
from product_management import load_product_management
except ImportError:
def load_product_management(): pass
# filemgr文件/附件管理supplychain 合同附件依赖)
try:
from filemgr.init import load_filemgr
except ImportError:
def load_filemgr(): pass
# supplychain供应商/分销商/供应链折扣管理
try:
from supplychain.init import load_supplychain
except ImportError:
def load_supplychain(): pass
# pipeline_llm模型治理供应商/账号/端点/组织策略/限额限流/双维度记账)
try:
from pipeline_llm.init import load_llm
except ImportError:
def load_llm(): pass
# pipeline_platform平台内部 agent模型自动配置等仅管理员
try:
from pipeline_platform.init import load_pipeline_platform
except ImportError:
def load_pipeline_platform(): 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_dingdingflow() # 先于 pipeline_service其钉钉审批适配器依赖 register_biz_handler
# 商品化链路pricing 必须先于资源模块(资源计费要调 pricing_program_charging
load_pricing()
load_accounting()
load_discount()
load_unipay()
load_account_resource()
load_storage_resource()
load_product_management() # 产品层:依赖资源模块的 product_interface
load_filemgr() # 文件管理:先于 supplychain合同附件依赖
load_supplychain() # 供应链:供应商/分销商/折扣
load_llm() # 模型治理:供应商/账号/端点/组织策略/限额限流/记账
load_pipeline_service()
load_pipeline_platform() # 平台内部 agent依赖 pipeline_service 的 llm_bridge
load_pipeline_bidding() # 投标产线能力包(依赖 pipeline_service 的 capability 分发)
load_pipeline_opportunity() # 商机产线能力包(数据来自数据爬取平台内网 HTTP
load_sdlc_adapter()
load_app_audit()
load_showcase()
load_tenant()
load_ktv_adapter()
load_smssend()
load_uapi() # 必须在 rag 之前rag 通过 uapi 调 vdb/reranker/ner/graph
load_dapi() # 必须在 rag 之前:注册 Bearer key 认证rag API 端点鉴权依赖
init_rag_module()
# Permission cache warms up on first request
if __name__ == '__main__':
webapp(init)