探究:鱼皮“零代码应用生成平台” AI 驱动的智能决策系统原理

最近在研究鱼皮大佬的项目零代码应用生成平台,对于项目模式自动决策很感兴趣,能自动根据用户的需求自动确定前端该用那种模式

以下是借助cursor的回答:

codeGenType 自动确定机制详解

1. 整体流程

codeGenType 的自动确定是通过 AI 智能路由服务 实现的,整个流程如下:

复制代码
用户输入提示词 → AI 路由服务分析 → 自动选择生成类型 → 保存到数据库 → 前端显示

2. 核心组件

2.1 AI 路由服务接口

src/main/java/com/yupi/yuaicodemother/ai/AiCodeGenTypeRoutingService.java

java 复制代码
@SystemMessage(fromResource = "prompt/codegen-routing-system-prompt.txt")
CodeGenTypeEnum routeCodeGenType(String userPrompt);

2.2 路由服务工厂

java:src/main/java/com/yupi/yuaicodemother/ai/AiCodeGenTypeRoutingServiceFactory.java 复制代码
public AiCodeGenTypeRoutingService createAiCodeGenTypeRoutingService() {
    ChatModel chatModel = SpringContextUtil.getBean("routingChatModelPrototype", ChatModel.class);
    return AiServices.builder(AiCodeGenTypeRoutingService.class)
            .chatModel(chatModel)
            .build();
}

3. 自动确定时机

codeGenType应用创建时 自动确定,具体在 AppServiceImpl.createApp() 方法中:

src/main/java/com/yupi/yuaicodemother/service/impl/AppServiceImpl.java

java 复制代码
@Override
public Long createApp(AppAddRequest appAddRequest, User loginUser) {
    // ... 参数校验和对象构造 ...
    
    // 使用 AI 智能选择代码生成类型(多例模式)
    AiCodeGenTypeRoutingService aiCodeGenTypeRoutingService = 
        aiCodeGenTypeRoutingServiceFactory.createAiCodeGenTypeRoutingService();
    CodeGenTypeEnum selectedCodeGenType = 
        aiCodeGenTypeRoutingService.routeCodeGenType(initPrompt);
    app.setCodeGenType(selectedCodeGenType.getValue());
    
    // ... 保存到数据库 ...
}

4. AI 决策逻辑

AI 路由服务基于系统提示词进行决策:

src/main/resources/prompt/codegen-routing-system-prompt.txt

txt 复制代码
你是一个专业的代码生成方案路由器,需要根据用户需求返回最合适的代码生成类型。

可选的代码生成类型:
1. HTML - 适合简单的静态页面,单个 HTML 文件,包含内联 CSS 和 JS
2. MULTI_FILE - 适合简单的多文件静态页面,分离 HTML、CSS、JS 代码
3. VUE_PROJECT - 适合复杂的现代化前端项目

判断规则:
- 如果用户需求简单,只需要一个展示页面,选择 HTML
- 如果用户需要多个页面但不涉及复杂交互,选择 MULTI_FILE
- 如果用户需求复杂,涉及多页面、复杂交互、数据管理等,选择 VUE_PROJECT

5. 生成类型枚举

系统支持三种代码生成类型:

java:src/main/java/com/yupi/yuaicodemother/model/enums/CodeGenTypeEnum.java 复制代码
public enum CodeGenTypeEnum {
    HTML("原生 HTML 模式", "html"),
    MULTI_FILE("原生多文件模式", "multi_file"),
    VUE_PROJECT("Vue 工程模式", "vue_project");
}

6. 前端显示

前端通过 formatCodeGenType 函数格式化显示:

yu-ai-code-mother-frontend/src/utils/codeGenTypes.ts

typescript 复制代码
export const formatCodeGenType = (type: string | undefined): string => {
  if (!type) return '未知类型'
  
  const config = CODE_GEN_TYPE_CONFIG[type as CodeGenTypeEnum]
  return config ? config.label : type
}

7. 工作流程示例

7.1 简单需求 → HTML 类型

arduino 复制代码
用户输入:"做一个简单的个人介绍页面"
AI 分析:简单展示页面,无复杂交互
决策结果:HTML

7.2 中等需求 → MULTI_FILE 类型

arduino 复制代码
用户输入:"做一个公司官网,需要首页、关于我们、联系我们三个页面"
AI 分析:多页面但相对简单
决策结果:MULTI_FILE

7.3 复杂需求 → VUE_PROJECT 类型

arduino 复制代码
用户输入:"做一个电商管理系统,包含用户管理、商品管理、订单管理,需要路由和状态管理"
AI 分析:复杂业务逻辑,需要现代化框架
决策结果:VUE_PROJECT

8. 容错机制

如果 AI 路由失败,系统会使用默认类型:

src/main/java/com/yupi/yuaicodemother/langgraph4j/node/RouterNode.java

java 复制代码
try {
    generationType = routingService.routeCodeGenType(context.getOriginalPrompt());
    log.info("AI智能路由完成,选择类型: {} ({})", generationType.getValue(), generationType.getText());
} catch (Exception e) {
    log.error("AI智能路由失败,使用默认HTML类型: {}", e.getMessage());
    generationType = CodeGenTypeEnum.HTML; // 默认使用 HTML 类型
}

9. 技术特点

  • AI 驱动:基于大语言模型的智能决策
  • 实时分析:根据用户输入动态确定
  • 多例模式:每次创建新的路由服务实例
  • 类型安全:完整的 TypeScript 类型支持
  • 容错处理:AI 失败时的降级策略

总结

codeGenType 的自动确定是一个 AI 驱动的智能决策系统,它通过分析用户的自然语言描述,自动选择最合适的代码生成策略。这种设计让用户无需关心技术细节,只需要描述需求,系统就能自动选择最优的代码生成方案。

相关推荐
陈小桔8 分钟前
Springboot之常用注解
java·spring boot·后端
数据知道39 分钟前
Go基础:一文掌握Go语言泛型的使用
开发语言·后端·golang·go语言
楼田莉子1 小时前
python学习:爬虫+项目测试
后端·爬虫·python·学习
阿挥的编程日记2 小时前
基于SpringBoot的高校(学生综合)服务平台的设计与实现
java·spring boot·后端·spring·mybatis
她说彩礼65万2 小时前
Asp.net core appsettings.json` 和 `appsettings.Development.json`文件区别
后端·json·asp.net
用户21411832636022 小时前
国产化算力实战:手把手教你在魔乐社区用华为昇腾 NPU 跑通模型推理
后端
IT_陈寒2 小时前
SpringBoot性能飞跃:5个关键优化让你的应用吞吐量提升300%
前端·人工智能·后端
M1A12 小时前
你的认知模式,决定了你的人生高度
后端
追逐时光者3 小时前
Everything替代工具,一款基于 .NET 开源免费、高效且用户友好文件搜索工具!
后端·.net
QX_hao3 小时前
【Go】--数据类型
开发语言·后端·golang