# ADE **Repository Path**: ooderCN/ade ## Basic Information - **Project Name**: ADE - **Description**: 一款基于NLP自然语言构建SKILLS FLOW 可视化定义工具. - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-13 - **Last Updated**: 2026-04-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ADE - AI Process Designer > 一款基于 NLP 自然语言构建 Skills Flow 可视化定义工具 [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) [![Spring Boot 3.4.4](https://img.shields.io/badge/Spring%20Boot-3.4.4-brightgreen.svg)](pom.xml) [![Java 21](https://img.shields.io/badge/Java-21-orange.svg)](pom.xml) [![ScenEngine 3.0.3](https://img.shields.io/badge/ScenEngine-3.0.3-E65100.svg)](https://gitee.com/ooderCN/) [![Version 1.1.0](https://img.shields.io/badge/Version-1.1.0-4CAF50.svg)](pom.xml) ## 项目简介 ADE (AI Process Designer) 是 ooderCN 开源 BPM 平台的流程设计器模块,通过自然语言对话驱动 BPM 流程的可视化设计。集成 ooder.cn **ScenEngine 3.0.3**(MIT 开源),提供多轮对话、上下文管理、Function Calling 等商业级 LLM 能力。 ### 核心特性 - **NLP 驱动流程设计** — 自然语言描述业务需求,自动生成 BPM 流程 - **10 种 BPMN 节点** — 开始/结束事件、用户/服务/脚本任务、排他/并行/包容网关、子流程 - **SVG 画布引擎** — 贝塞尔曲线连线、拖拽/框选/缩放、实时预览 - **AI 推导服务** — 执行者推荐、能力匹配、表单自动生成 - **ScenEngine 3.0.3 集成** — 多轮对话管理、上下文隔离、Function Calling 循环 - **三模式 LLM 切换** — ScenEngine / 阿里云 DashScope / Mock(零外部依赖) - **Spring Security** — 基础安全框架,CORS 收紧,WebSocket 连接限制 ## 系统架构 ![系统架构图](docs/images/architecture.svg) ### 后端架构 (v1.1.0) ![后端架构图](docs/images/backend-architecture.svg) ### ScenEngine 集成架构 ![ScenEngine 集成架构图](docs/images/scenengine-architecture.svg) ### 前端模块架构 ![前端架构图](docs/images/frontend-architecture.svg) ### AI 推导流程 ![AI 推导流程图](docs/images/ai-derivation-flow.svg) ### API 请求流程 ![API 请求流程图](docs/images/api-request-flow.svg) ## 技术栈 ### 后端 | 技术 | 版本 | 说明 | |------|------|------| | Spring Boot | 3.4.4 | 核心框架 | | Java | 21 | 运行时 | | Spring Security | 6.x | 安全框架 | | Spring WebSocket | - | 实时通信 | | ScenEngine | 3.0.3 | LLM 平台 (MIT) | | Aliyun DashScope | - | 通义千问 LLM | | fastjson2 | 2.0.43 | JSON 处理 | | Jackson | - | YAML/JSON 序列化 | | Lombok | - | 代码简化 | ### 前端 | 技术 | 说明 | |------|------| | Vanilla JavaScript | 原生 JS,无框架依赖 | | SVG | 画布渲染引擎 | | CSS Variables | 主题系统 (明/暗) | | Event Bus | 状态管理 + 事件驱动 | | WebSocket | 实时通信 | ## ScenEngine 3.0.3 集成 ### 为什么选择 ScenEngine [ScenEngine](https://gitee.com/ooderCN/) 是 ooder.cn 开源的场景引擎平台(MIT License),提供企业级 LLM 应用所需的核心能力: | 能力 | ScenEngine 模块 | 说明 | |------|-----------------|------| | 多轮对话 | ConversationService | 消息处理、历史管理、会话隔离 | | Function Calling | ToolOrchestrator | 工具编排、多工具执行、计划编排 | | RAG 增强 | RagPipeline | 检索增强、提示增强、智能问答 | | 知识库 | KnowledgeBase + VectorStore | 文档管理、向量索引、相似度搜索 | | 能力发现 | CapabilityDiscoveryService | CAP 能力寻址、场景搜索 | ### 集成架构 ![SceneEngine 集成架构图](docs/images/scenengine-architecture.svg) ### 核心能力 **多轮对话管理** — 基于 `ConcurrentHashMap` 的会话上下文管理,支持 sessionId 隔离、历史记录查询、过期自动清理。 **Function Calling 循环** — 自动检测 LLM 返回的函数调用请求,执行后回传结果,最多 5 轮迭代防止无限循环。 **配置化集成** — 通过 `scenengine.enabled=true` 一键启用,所有参数支持环境变量覆盖: ```yaml scenengine: enabled: ${SCENENGINE_ENABLED:false} endpoint: ${SCENENGINE_ENDPOINT:http://localhost:9090} api-key: ${SCENENGINE_API_KEY:} conversation: max-history: 20 timeout: 30000 ``` ### 会话管理 API | 端点 | 方法 | 说明 | |------|------|------| | `/api/bpm/conversation/chat` | POST | 发送多轮对话消息 | | `/api/bpm/conversation/history/{sessionId}` | GET | 获取会话历史 | | `/api/bpm/conversation/history/{sessionId}` | DELETE | 清除会话历史 | | `/api/bpm/conversation/sessions` | GET | 获取活跃会话列表 | ## API 端点 ### 流程设计 (Designer) — 17 个端点 | 端点 | 方法 | 说明 | |------|------|------| | `/api/bpm/process` | GET | 流程列表 | | `/api/bpm/process/{id}/version/latest` | GET | 流程详情 | | `/api/bpm/process` | POST | 创建流程 | | `/api/bpm/process/{id}` | PUT | 更新流程 | | `/api/bpm/process/{id}` | DELETE | 删除流程 | | `/api/bpm/process/{id}/activities` | GET | 活动列表 | | `/api/bpm/process/{id}/activities` | POST | 添加活动 | | `/api/bpm/process/{pid}/activities/{aid}` | PUT | 更新活动 | | `/api/bpm/process/{pid}/activities/{aid}` | DELETE | 删除活动 | | `/api/bpm/process/{id}/routes` | POST | 添加路由 | | `/api/bpm/process/{pid}/routes/{rid}` | PUT | 更新路由 | | `/api/bpm/process/{pid}/routes/{rid}` | DELETE | 删除路由 | | `/api/bpm/process/tree` | GET | 流程树 | | `/api/bpm/process/{id}/yaml` | GET | 导出 YAML | | `/api/bpm/process/{id}/yaml` | POST | 导入 YAML | | `/api/bpm/enums/{type}` | GET | 枚举选项 | | `/api/bpm/capabilities` | GET | 能力列表 | ### NLP 服务 — 10 个端点 | 端点 | 方法 | 说明 | |------|------|------| | `/api/bpm/nlp/chat` | POST | AI 对话 | | `/api/bpm/nlp/process/create` | POST | AI 生成流程 | | `/api/bpm/nlp/activity/create` | POST | AI 生成活动 | | `/api/bpm/nlp/activity/update` | POST | AI 更新属性 | | `/api/bpm/nlp/validate` | POST | 流程验证 | | `/api/bpm/nlp/intent` | POST | 意图分析 | | `/api/bpm/nlp/entities` | POST | 实体提取 | | `/api/bpm/nlp/suggestions` | GET | 建议 | | `/api/bpm/nlp/templates` | GET | 模板列表 | | `/api/bpm/nlp/templates/{id}` | GET | 模板详情 | ### 推导服务 (Derivation) — 15 个端点 | 端点 | 方法 | 说明 | |------|------|------| | `/api/bpm/derivation/performer` | POST | 执行者推导 | | `/api/bpm/derivation/performer/search` | POST | 候选人搜索 | | `/api/bpm/derivation/capability` | POST | 能力匹配 | | `/api/bpm/derivation/capability/smart` | POST | 智能能力匹配 | | `/api/bpm/derivation/capability/config` | GET | 能力绑定配置 | | `/api/bpm/derivation/form` | POST | 表单匹配 | | `/api/bpm/derivation/form/smart` | POST | 智能表单匹配 | | `/api/bpm/derivation/form/schema` | POST | 表单 Schema 生成 | | `/api/bpm/derivation/form/schema/fields` | POST | 按字段生成 Schema | | `/api/bpm/derivation/form/panel` | POST | 面板渲染数据 | | `/api/bpm/derivation/full` | POST | 全量推导 | | `/api/bpm/derivation/performer/batch` | POST | 批量执行者推导 | | `/api/bpm/derivation/capability/batch` | POST | 批量能力匹配 | | `/api/bpm/derivation/form/batch` | POST | 批量表单匹配 | | `/api/bpm/derivation/history` | GET | 推导历史 | ### 会话管理 (Conversation) — 4 个端点 (v1.1.0 新增) | 端点 | 方法 | 说明 | |------|------|------| | `/api/bpm/conversation/chat` | POST | 多轮对话 | | `/api/bpm/conversation/history/{sessionId}` | GET | 会话历史 | | `/api/bpm/conversation/history/{sessionId}` | DELETE | 清除历史 | | `/api/bpm/conversation/sessions` | GET | 活跃会话 | ## 快速开始 ### 环境要求 - Java 21+ - Maven 3.6+ ### 本地运行 ```bash # 克隆项目 git clone https://gitee.com/ooderCN/ade.git cd ade # 编译 mvn clean compile # 运行 (默认 Mock 模式,零外部依赖) mvn spring-boot:run # 访问 # 前端: http://localhost:8088/designer/index.html # API: http://localhost:8088/api/bpm/process # Actuator: http://localhost:8089/actuator/health ``` ### 启用 ScenEngine ```bash # 设置环境变量 export SCENENGINE_ENABLED=true export SCENENGINE_ENDPOINT=http://your-scenengine-host:9090 export SCENENGINE_API_KEY=your-api-key # 运行 mvn spring-boot:run ``` ### 启用阿里云 DashScope ```bash export LLM_ENABLED=true export LLM_API_KEY=your-dashscope-api-key mvn spring-boot:run ``` ## 项目结构 ``` bpm-designer/ ├── pom.xml ├── src/main/java/net/ooder/bpm/designer/ │ ├── config/ # 配置类 │ │ ├── SecurityConfig.java # Spring Security (v1.1.0) │ │ ├── WebMvcConfig.java # CORS + 静态资源 │ │ ├── WebSocketConfig.java # WebSocket 配置 │ │ └── RestTemplateConfig.java │ ├── controller/ # REST 控制器 │ │ ├── DesignerController.java │ │ ├── NlpController.java │ │ ├── DerivationController.java │ │ ├── ConversationController.java # (v1.1.0 新增) │ │ └── IndexController.java │ ├── service/ # 服务层 │ │ ├── impl/ # 服务实现 │ │ └── ... │ ├── llm/ # LLM 集成 │ │ ├── LlmService.java # 接口 │ │ ├── ScenEngineLlmServiceImpl.java # (v1.1.0 新增) │ │ ├── ScenEngineConfig.java # (v1.1.0 新增) │ │ ├── AliyunLlmServiceImpl.java │ │ └── MockLlmServiceImpl.java │ ├── model/ # 领域模型 │ ├── dto/ # 数据传输对象 │ ├── datasource/ # 数据源适配 │ ├── websocket/ # WebSocket 处理 │ ├── cache/ # 缓存服务 │ └── BpmDesignerApplication.java ├── src/main/resources/ │ ├── application.yml # 主配置 │ ├── application-dev.yml # 开发环境 (v1.1.0) │ ├── application-prod.yml # 生产环境 (v1.1.0) │ ├── prompts/ # YAML 提示模板 │ └── static/designer/ # 前端 │ ├── index.html │ ├── css/ # 9 个样式文件 │ └── js/ │ ├── sdk/ # SDK 层 │ ├── model/ # 数据模型 │ ├── Canvas.js # SVG 画布引擎 │ ├── panel/PanelManager.js │ └── ... ├── docs/ │ ├── images/ # 架构图 (SVG) │ ├── audit-report.docx # 审计报告 │ └── scenengine-integration-blog.md # 技术博文 └── LICENSE # MIT License ``` ## 版本历史 ### v1.1.0 (2026-04-14) **ScenEngine 3.0.3 集成 + 全面审计优化** - **新增**: ScenEngine LLM 集成(多轮对话 + 上下文管理 + Function Calling) - **新增**: ConversationController 会话管理 REST API (4 个端点) - **新增**: Spring Security 基础安全框架 - **新增**: SecurityConfig / application-dev.yml / application-prod.yml - **修复**: 前后端 API 路径全部对齐 (14 处不匹配) - **修复**: 前端内存泄漏 (6 个组件事件监听器清理) - **修复**: Store.js 深拷贝 + 撤销系统修复 - **修复**: Canvas 拖放 key 不匹配 + transform 计算 - **修复**: CORS/WebSocket 安全配置收紧 - **修复**: 后端 Map 强转校验 (16 个方法) - **修复**: WebSocket 推导功能集成实际服务 - **优化**: CacheService 容量限制 + WebSocket 连接数限制 - **优化**: 异常消息不再暴露给客户端 - **审计**: 6 维度全面审计,发现 126 项问题,修复 80+ 项 ### v1.0.0 (2026-04-13) **初始版本** - Spring Boot 3.4.4 + Java 21 后端 (68 个 Java 文件) - 原生 JavaScript 前端 (18 个 JS 文件) - 42 个 API 端点 - SVG 画布引擎 (10 种 BPMN 节点) - AI 推导服务 (执行者/能力/表单) - Mock 降级模式 ## 开源协议 [MIT License](LICENSE) © 2026 ooderCN