Skip to content

userwanyong/codefreex

Repository files navigation

Java 21 Spring Boot 3.5 LangChain4j License: MIT

CodeFreex

AI 驱动的零代码应用生成平台 — 后端

前端仓库 · 快速开始 · 功能特性 · 技术栈


项目简介

CodeFreex 是一个 AI 驱动的零代码应用生成平台。用户只需用自然语言描述想要的应用,AI 即可自动完成需求分析、素材收集、代码生成、质量检查和构建部署,生成可直接运行的前端应用。

本仓库为 CodeFreex 的后端项目,基于 Spring Boot 3 + LangChain4j + LangGraph4j 构建,实现了完整的 AI 工作流编排、应用管理、用户系统和后台管理功能。

项目速览

首页

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 模型调用仪表盘

功能特性

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]
Loading
  • 安全审查 — 关键词过滤 + 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

配置

  1. 创建 MySQL 数据库,执行初始化脚本:
mysql -u root -p < docs/sql/init.sql
  1. 复制配置文件并填写本地环境信息:
# application-local.yml 需要配置以下信息:
# - MySQL 连接地址、用户名、密码
# - Redis 连接地址
# - AI 模型 API Key 和端点地址
# - 阿里云 OSS 配置(可选)
# - Authing 配置(可选,微信登录需要)
# - Nacos 地址(可选,Dubbo RPC 需要)
  1. 启动后端服务:
mvn spring-boot:run -Dspring-boot.run.profiles=local

服务将在 http://localhost:8123/api 启动。

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 用量统计

所有表支持软删除、自动时间戳和索引优化。

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。

开源协议

MIT License


Made with ❤️ by wanyj & BanXia

About

🤖 基于 Spring Boot、LangChain4j、LangGraph4j 的 AI 零代码应用生成平台,支持自然语言生成应用、AI 工作流编 排、代码生成、可视化编辑、应用部署、用户系统和管理后台

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages