模块地图
本文是从源码派生的总览级导航地图,用于快速定位"某业务功能 → 哪些 model / view / 前端文件"。
仓库根:cube-studio-enterprise/,后端在 myapp/,前端在 myapp/frontend/。
设计原理、组件关系请看『01-架构原理』段;后端框架与二次开发细节请看『06-二次开发』段。 本表为代码派生总览,具体以源码为准,仅供导航。
1. 后端 myapp/ 分组概览
应用工厂在 myapp/__init__.py(创建 Flask app、注册各 view 蓝图、初始化 SQLAlchemy / Celery / 鉴权)。各 REST 控制器通过 myapp/views/__init__.py 统一 import 后,在模块加载时调用 appbuilder.add_api(...) 完成注册。
| 子目录 | 规模 | 作用 |
|---|---|---|
myapp/models/ |
32 个 .py(含 __init__.py/base.py/helpers.py) |
SQLAlchemy ORM 模型,业务模型多以 model_*.py 命名 |
myapp/views/ |
54 个 .py,其中 47 个 view_*.py |
REST 控制器,多继承 baseApi.py 的 MyappModelRestApi |
myapp/tasks/ |
celery_app.py + async_task.py + schedules.py |
Celery 异步任务与定时任务 |
myapp/utils/ |
多模块 + 子目录 | 共享工具 |
tasks/ 任务清单(已核对 @celery_app.task 名)
- 异步任务(
async_task.py):task.check_docker_commit、task.check_notebook_commit、task.check_rental_instance_commit、task.upgrade_service、task.update_dataset、task.get_k8s_resource、task.upload_knowledge、task.llm_safety_check。 - 定时任务(
schedules.py):task.delete_workflow、task.delete_notebook、task.delete_debug_docker、task.make_timerun_config(定时任务流补录/调度核心)、task.upload_workflow、task.delete_old_data、task.check_pipeline_run、task.push_workspace_size、task.watch_gpu、task.watch_pod_utilization、task.adjust_node_resource、task.adjust_service_resource、task.adjust_pipeline_resource、task.cronhpa、task.check_pod_terminating、task.day_bill。
utils/ 主要模块
- 模块文件:
cache.py(缓存)、celery.py、core.py(核心工具)、dates.py、decorators.py、k8s_data_analysis.py、approval_engine.py(审批引擎)、labelstudio.py(标注集成)、push.py(消息推送)、routes.py(菜单→路由映射)、etl_type_check.py、file_download.py、image_utils.py、log.py。 - 子目录:
sqllab/(SQL 查询)、echart/(图表)、plugin/(插件)、tool/、alipay/、wework/、py/、torch_network_layers/。
2. 领域映射表(model → view → 前端,核心)
说明:大量"列表/详情/表单"页面由前端
ADUGTemplate.tsx根据后端/_info接口配置动态渲染,并非每个资源都有独立前端页面文件。下表"前端"列写明独立页面或动态模板。
| 业务域 | model 文件(主要类) | view 文件 | 前端 |
|---|---|---|---|
| 任务流编排 | model_job.py(Pipeline/Task/RunHistory/Workflow) |
view_pipeline.py、view_pipeline_immutable.py、view_task.py、view_runhistory.py、view_workflow.py |
vision(DAG 编排,独立 npm 模块) |
| 任务模板/镜像 | model_job.py(Job_Template/Images/Repository)、model_docker.py(Docker) |
view_job_template.py、view_images.py、view_docker.py |
ADUGTemplate 动态页 |
| Notebook 在线开发 | model_notebook.py |
view_notebook.py |
pages/Jupyter |
| 在线服务 | model_serving.py(Service/service_common) |
view_serving.py |
ADUGTemplate 动态页 |
| 推理服务 | model_serving.py(InferenceService) |
view_inferenceserving.py |
ADUGTemplate 动态页 |
| 数据集/标注 | model_dataset.py |
view_dataset.py、view_labelstudio.py |
ADUGTemplate 动态页 + labelstudio 代理 |
| AIHub 模型市场 | model_aihub.py(Aihub) |
view_aihub.py(按 visual/voice/language/multimodal/aigc/all 多路由) |
ADUGTemplate 动态页 |
| 对话/LLM | model_chat.py(Chat/ChatLog)、model_llm_ingress.py(Ingress) |
view_chat.py、view_chat_dingtalk.py、view_chat_wechat.py、view_chat_wework.py、view_llm_ingress.py |
pages/Chat、pages/ChatReact |
| ETL 任务流 | model_etl_pipeline.py(ETL_Pipeline/ETL_Pipeline_Run/ETL_Task) |
view_etl_pipeline.py、view_etl_pipeline_run.py、view_etl_pipeline_etl.py、view_etl_pipeline_data_analysis.py |
visionPlus 模块、pages/CommonPipeline |
| 元数据/指标/维表/血缘 | model_metadata.py、model_metadata_metric.py、model_dimension.py |
view_metadata.py、view_metadata_metric.py、view_dimension.py、view_blood.py |
pages/Blood、pages/DataDiscovery、pages/DataSearch |
| 服务编排 | model_service_pipeline.py(Service_Pipeline) |
view_service_pipeline.py ⚠️ 见下注 |
ADUGTemplate 动态页 |
| 超参搜索 | model_nni.py(NNI) |
view_nni.py |
ADUGTemplate 动态页 |
| 训练模型登记/定义 | model_train_model.py(Training_Model)、model_model_define.py(Model_define) |
view_train_model.py、view_model_define.py ⚠️ 见下注 |
ADUGTemplate 动态页 |
| 算力租赁/账单/发票 | model_rental_instance.py(RentalInstance)、model_bill.py(Bill)、model_invoice.py(Invoice) |
view_rental.py、view_bill.py、view_invoice.py |
pages/ComputeLeasing、pages/RentalInstance |
| 项目组/权限 | model_team.py(Project/Project_User)、user_attributes.py(UserAttribute) |
view_team.py、view_user_role.py |
前端 /security 路由(iframe 嵌入 FAB 安全页) |
| 资源/节点/存储/Pod/K8s | model_node.py(Node)、model_storage.py(Storage)、model_pod.py(Pod) |
view_resource_node.py、view_resource_storage.py、view_pod.py、view_k8s.py、view_total_resource.py |
ADUGTemplate 动态页 + pages/Jupyter(pod 终端) |
| 审批/消息/日志/SQL查询/收藏 | model_approval.py、model_message.py、log.py(Log)、model_sqllab_query.py、favorite.py |
view_approval.py、view_message.py、view_log.py、view_sqllab.py |
ADUGTemplate 动态页 |
| 仪表盘 | —(聚合多模型数据) | view_dashboard.py |
pages/Dashboard |
注意:
view_service_pipeline.py与view_model_define.py在myapp/views/__init__.py:27,48中被注释掉(# from . import view_service_pipeline、# from . import view_model_define)。两者的appbuilder.add_api(...)(view_service_pipeline.py:711、view_model_define.py:650)仅在模块被 import 时执行,因此默认构建下这两个视图未被注册,对应service_pipeline_modelview/api、model_define_modelview/api不可用。
3. 前端 frontend/src 概览
路由在 src/routerConfig.tsx。除少量独立页面外,菜单项由后端 /myapp/menu 返回,前端按 menu_type 选择渲染器:api→ADUGTemplate(通用 CRUD 列表/详情/表单)、iframe→IframeTemplate、out_link→OutLinkTemplate、innerRouter→独立页面组件。
独立页面目录(src/pages/):
Home(首页)、Login(登录)、UserCenter(用户中心)、Dashboard(仪表盘)Jupyter(在线 IDE / pod 终端)、Chat/ChatReact(对话)Blood(数据血缘)、DataDiscovery、DataSearch(数据查询/资产发现)CommonPipeline(通用关系图/编排)、ComputeLeasing(算力租赁)、RentalInstance(实例管理)GenericDetail(通用详情)、Page404- 顶层动态模板:
ADUGTemplate.tsx(后端配置驱动的通用 CRUD 页)、IframeTemplate.tsx、OutLinkTemplate.tsx、ShowData.tsx、ChartOptionTempalte.tsx
API 客户端(src/api/):home.ts、kubeflowApi.ts(菜单/导航)、bloodApi.ts、chatgpt.ts、commonPipeline.ts、computeLeasingApi.ts、dataSearchApi.ts、iframeTemplateApi.ts、jupyterApi.ts、rentalInstanceApi.ts、userinfoApi.ts、index.tsx、interface/(TS 类型)。
状态管理用 MobX(store),国际化用 i18next(locales,en/zh)。
其他独立 npm 模块(不在 frontend/ 内):vision/(ML 任务流 DAG 可视化)、visionPlus/(ETL 流程可视化)。
4. 注册与路由约定
- 每个
view_*.py中的 REST 类设置route_base(如/pipeline_modelview/api),自定义业务端点用flask_appbuilder.baseviews.expose_api(description=..., url=...)装饰,description多为中文,便于检索。 - 标准 CRUD 端点由
baseApi.py的MyappModelRestApi统一提供,详见本段 核心API速查.md。 - 各资源
route_base、自定义端点清单见 核心API速查.md;各 model 类与字段/关系见 核心数据模型速查.md。
本表为代码派生总览,模块归属与文件名以 myapp/ 源码为准,仅供导航。