业务模块(应用、DSL、模板、订单、智能体、技能)
本节涵盖 backend/src/business 目录,该目录包含 VTJ.PRO 平台的核心领域逻辑。这些模块负责处理低代码应用的生命周期、领域特定语言 (DSL) 管理、AI 智能体编排以及商业基础设施(订单和产品)。
低代码应用与 DSL 管理
LowcodeAppModule 和 DSLModule 构成了平台开发能力的支柱。它们管理从可视化编辑到可执行代码的转换过程。
应用生命周期
LowcodeAppService 处理应用的增删改查操作,并管理其版本。应用按平台类型进行分类,如 Web、H5 或 UniApp。
DSL 生命周期与发布
DslService 管理应用模式的状态。它区分“开发”环境和“生产”环境的 DSL。
关键工作流包括:
- 发布:通过
publishFromDev将 DSL 从开发环境迁移到生产环境 - 回滚:通过
copyToDev将生产环境的 DSL 复制回开发环境 - 代码生成:使用
@vtj/coder通过dslToVue将 DSL 转换为 Vue 源代码
DSL 数据流图
graph TD
IDE["IDE / Workbench"] -->|"saveDsl()"| DslService["DslService [dsl.service.ts]"]
DslService -->|Update type='project'| DslEntity["DslEntity [dsl.entity.ts]"]
DslService -->|"publishFromDev()"| ProdDsl["DslEntity (type='history')"]
DslService -->|"dslToVue()"| Coder["@vtj/coder"]
Coder -->|Generate .vue/.zip| OssService["OssService"]
subgraph Code Entity Space
DslEntity
ProdDsl
Coder
OssService
end
subgraph Publish Flow
DslService
end
AI 智能体与技能模块
AI 子系统负责编排大语言模型 (LLM) 与低代码引擎之间的交互。
智能体与技能
- AgentModule:管理可辅助代码生成或聊天交互的 AI 智能体。智能体与特定的 LLM 模型相关联。
- SkillModule:定义智能体可以执行的特定能力。技能通常包含提示词模板或与 DSL 交互的逻辑。
- AIService:核心提供者,负责处理流式响应并与已配置的 LLM 后端(如 OpenAI 等)进行交互。
AI 交互桥接图
graph TD
UserPrompt["'Create a login page'"] --> TopicController["TopicController [topic.controller.ts]"]
TopicController --> AgentService["AgentService [agent.service.ts]"]
AgentService -->|"matchSkill()"| SkillService["SkillService [skill.service.ts]"]
SkillService -->|"getPrompt()"| PromptService["PromptService [prompt.service.ts]"]
PromptService --> AIService["AIService [ai.service.ts]"]
AIService -->|Stream Response| UserPrompt
subgraph Natural Language Space
UserPrompt
TopicController
end
subgraph Code Entity Space
AgentService
SkillService
PromptService
AIService
end
模板与产品模块
这些模块促进了组件的复用和平台的商业化。
模板管理
TemplateModule 允许用户将应用或特定页面保存为模板。
- 初始化:模板通常基于现有的 DSL 结构进行初始化。
- 市场:模板可以被标记为公开或私有,以便在不同项目间使用。
商业基础设施
- ProductModule:定义“产品”(例如,订阅套餐、特定模板)。
- OrderModule:管理购买的整个生命周期。它跟踪
OrderEntity从创建到完成的状态。
| 模块 | 关键实体 | 目的 |
|---|---|---|
| Product | ProductEntity | 定义可销售的商品(模板、AI 积分) |
| Order | OrderEntity | 记录交易和支付状态 |
| Template | TemplateEntity | 可复用的 DSL 蓝图,用于创建新应用 |
支持与外部模块
日常与报表模块
- DailyModule:处理平台内的日常日志或自动状态更新。
- ReportModule:为管理监督提供分析数据和报表功能。
OpenModule(外部 API)
OpenModule 作为外部集成(如 VTJ IDE 客户端)的公共 API 网关。
- 认证:使用专门的令牌,允许外部工具获取 DSL 或发布模板。
- 桥接:它在内部
DslService和外部 HTTP 请求之间充当桥梁。
参考资料
- 官网文档:vtj.pro/
- 在线平台:app.vtj.pro/
- 开源仓库:gitee.com/newgateway/…