AI 驱动的零代码应用生成平台 — 后端
CodeFreex 是一个 AI 驱动的零代码应用生成平台。用户只需用自然语言描述想要的应用,AI 即可自动完成需求分析、素材收集、代码生成、质量检查和构建部署,生成可直接运行的前端应用。
本仓库为 CodeFreex 的后端项目,基于 Spring Boot 3 + LangChain4j + LangGraph4j 构建,实现了完整的 AI 工作流编排、应用管理、用户系统和后台管理功能。
- 15 节点 AI 工作流引擎 — 基于 LangGraph4j 构建的多步骤智能工作流,覆盖从安全审查到代码部署的完整链路
- 多类型代码生成 — 支持 HTML 单文件、多文件项目、Vue 完整项目三种代码生成模式
- AI 工具调用 — 代码迭代阶段通过 Tool Calling 实现文件读写、编辑等操作,支持最多 15 轮自动迭代
- 自动质量检查与修复 — AI 自动验证生成代码质量,不通过时自动修复并重试(最多 2 次)
- 智能素材收集 — 自动从 Pexels、Pixabay 获取图片素材,支持 Mermaid 图表渲染和 AI SVG Logo 生成
- SSE 流式响应 — 基于 Server-Sent Events 的实时流式输出,支持断线重连和事件回放
- 可视化监控 — 内置 Prometheus + Grafana 监控方案,预置 AI 模型调用仪表盘
完整的 15 节点工作流管道,每个节点各司其职:
graph TD
A[用户输入] --> B[安全审查]
B -->|拦截| END1[END]
B -->|通过| C[AI 内容审查]
C -->|拒绝| END2[END]
C -->|通过| D[意图分类]
D -->|chat 对话| E[直接回复] --> END3[END]
D -->|visual_edit 编辑| F[可视化编辑] --> M[质量检查]
D -->|coding 代码生成| G[PRD 生成] --> H[类型路由]
H --> I[素材规划] --> J[素材获取] --> K[Prompt 增强]
K --> L[代码生成] --> M
M -->|pass 通过| END4[END]
M -->|fix 修复| N[代码修复] --> M
M -->|failed 失败| O[失败终止] --> END5[END]
- 安全审查 — 关键词过滤 + AI 二次审查,双重保障
- 意图分类 — 自动识别用户意图:代码生成 / 可视化编辑 / 普通对话
- PRD 生成 — AI 自动生成产品需求文档,指导后续代码生成
- 素材规划与获取 — 自动规划所需图片类型,从多个来源获取素材
- 代码类型路由 — AI 智能判断最适合的代码生成模式
- 流式代码生成 — 大模型流式输出代码,实时展示生成过程
- 自动修复循环 — 质量检查失败时自动修复,最多重试 2 次
- 应用创建、编辑、删除
- 一键部署(Nginx 集成)
- 应用封面自动截图(Selenium 无头浏览器)
- 精选应用推荐与审批工作流
- 应用点赞、浏览统计
- 源码下载
- 邮箱 + 验证码注册,密码登录
- 微信小程序扫码登录(Authing SDK)
- Spring Session (Redis) 有状态认证
- 角色权限控制(管理员 / 平台管理员)
- 积分体系与交易账本
- 邀请码与兑换码系统
- 用户管理(列表、禁用、积分调整)
- 应用管理(列表、精选推荐)
- 精选审批工作流(申请 → 审核 → 上线)
- 标签管理
- 用量统计(Token 消耗、延迟、错误率)
- 邀请码 / 兑换码批量管理
- Spring Boot Actuator + Micrometer Prometheus 端点
- 预置 Grafana AI 监控仪表盘
- Docker Compose 一键启动 Prometheus + Grafana
| 类别 | 技术 | 版本 |
|---|---|---|
| 语言 | Java | 21 |
| 框架 | Spring Boot | 3.5 |
| AI 编排 | LangChain4j | 1.13 |
| 工作流引擎 | LangGraph4j | 1.1 |
| ORM | MyBatis-Flex | 1.11 |
| 数据库 | MySQL | 8.x |
| 缓存 | Redis + Redisson | — |
| 会话 | Spring Session (Redis) | — |
| RPC | Apache Dubbo | 3.3 |
| 注册中心 | Nacos | 2.4 |
| API 文档 | Knife4j (OpenAPI 3) | 4.4 |
| 对象存储 | 阿里云 OSS | — |
| 身份认证 | Authing | — |
| 浏览器自动化 | Selenium | 4.33 |
| 监控 | Micrometer + Prometheus + Grafana | — |
src/main/java/cn/wanyj/codefreex/
├── auth/ # 认证鉴权
│ ├── annotation/ # @AuthCheck 自定义注解
│ ├── aspect/ # AuthCheckAspect (AOP)
│ ├── AuthRpcClient.java # Dubbo RPC 客户端
│ └── UserContext.java # ThreadLocal 用户上下文
├── common/ # 公共模块
│ ├── BaseResponse.java # 统一响应包装
│ ├── PageRequest/Response # 分页 DTO
│ └── ResultUtils.java # 响应工具类
├── config/ # 配置类
│ ├── AiConfig.java # LangChain4j 模型 + Prompt 配置
│ ├── AppRuntimeConfig.java # 应用运行时配置
│ ├── MybatisFlexConfig.java # MyBatis-Flex 配置
│ └── ...
├── controller/ # REST API 控制器(21 个)
├── exception/ # 全局异常处理
├── mapper/ # MyBatis-Flex Mapper(14 个)
├── model/
│ ├── dto/ # 数据传输对象
│ │ ├── request/ # 请求 DTO(13 个)
│ │ └── response/ # 响应 DTO(10+ 个)
│ ├── entity/ # 数据库实体(10 张表)
│ └── enums/ # 枚举(7 个)
├── ratelimit/ # Redisson 限流
│ ├── annotation/ # @RateLimit 注解
│ └── aspect/ # RateLimitAspect
├── service/ # 业务逻辑接口(18 个)
│ ├── impl/ # 业务实现(25+ 个)
│ ├── strategy/ # 策略模式
│ │ └── impl/ # 代码持久化策略(HTML/多文件/Vue 项目)
│ └── tools/ # AI Tool Calling 文件操作工具
└── workflow/ # AI 工作流(LangGraph4j)
└── nodes/ # 15 个工作流节点
src/main/resources/
├── prompts/ # AI Prompt 模板(19 个文件)
├── application.yml # 主配置
├── application-local.yml # 本地开发配置
└── logback-spring.xml # 日志配置
local-libs/ # 未开源依赖(Docker 构建自动引用)
├── auth-service-api/
└── auth-service-parent/
docs/
├── sql/
│ └── init.sql # 数据库初始化脚本(14 张表)
└── grafana/
├── docker-compose.yml # Prometheus + Grafana 监控栈
├── prometheus.yml # Prometheus 采集配置
├── grafana-datasources.yml # Grafana 数据源
├── grafana-dashboards.yml # Grafana 仪表盘配置
└── codefreex-ai-monitoring.json # 预置 AI 监控仪表盘
- JDK 21+
- Maven 3.8+
- MySQL 8.x
- Redis 6.x+
- AI 模型 API Key(OpenAI 兼容接口)
后端 pom.xml 中存在部分暂未开源的内部依赖(auth-service-api 等)。项目已将依赖包放置在 local-libs/ 目录中,Maven 构建和 Docker 构建时会自动引用。
若 Maven 本地构建时提示相关依赖无法解析,请手动安装:
mvn install:install-file \
-Dfile=local-libs/auth-service-api/0.0.1-SNAPSHOT/auth-service-api-0.0.1-SNAPSHOT.jar \
-DgroupId=cn.wanyj.auth \
-DartifactId=auth-service-api \
-Dversion=0.0.1-SNAPSHOT \
-Dpackaging=jar- 创建 MySQL 数据库,执行初始化脚本:
mysql -u root -p < docs/sql/init.sql- 复制配置文件并填写本地环境信息:
# application-local.yml 需要配置以下信息:
# - MySQL 连接地址、用户名、密码
# - Redis 连接地址
# - AI 模型 API Key 和端点地址
# - 阿里云 OSS 配置(可选)
# - Authing 配置(可选,微信登录需要)
# - Nacos 地址(可选,Dubbo RPC 需要)- 启动后端服务:
mvn spring-boot:run -Dspring-boot.run.profiles=local服务将在 http://localhost:8123/api 启动。
启动后访问 Swagger 文档:http://localhost:8123/api/doc.html
cd docs/grafana
docker-compose up -d- Prometheus:
http://localhost:9090 - Grafana:
http://localhost:3000(预置 AI 监控仪表盘)
项目使用 MySQL,共 14 张数据表:
| 表名 | 说明 |
|---|---|
user_info |
用户信息、积分余额 |
app |
应用(名称、状态、代码、部署信息) |
chat_history |
对话历史 |
tag / app_tag |
标签、应用-标签关联 |
invite / invite_user |
邀请码 |
redeem / redeem_user |
兑换码 |
credit_transaction |
积分交易流水 |
app_like |
应用点赞记录 |
featured_application |
精选应用申请 |
notification |
用户通知 |
user_usage |
AI 用量统计 |
所有表支持软删除、自动时间戳和索引优化。
项目通过 application-local.yml 配置 AI 模型,支持任何 OpenAI 兼容的 API:
langchain4j:
open-ai:
streaming-chat-model:
model-name: your-model-name
api-key: your-api-key
base-url: https://api.example.com/v1项目使用两类模型:
- 流式生成模型 — 用于代码生成、对话回答(高 Token 上限,Temperature 0.7)
- 审查模型 — 用于安全审查、意图分类、路由判断(低 Temperature 0.3)
| 仓库 | 说明 | 地址 |
|---|---|---|
| CodeFreex 前端 | Vue 3 + TypeScript + Vite + Ant Design Vue | github.com/userwanyong/codefreex-frontend |
欢迎贡献代码!请随时提交 Issue 或 Pull Request。


