探究:鱼皮“零代码应用生成平台” 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 驱动的智能决策系统,它通过分析用户的自然语言描述,自动选择最合适的代码生成策略。这种设计让用户无需关心技术细节,只需要描述需求,系统就能自动选择最优的代码生成方案。

相关推荐
一只叫煤球的猫1 小时前
写代码很6,面试秒变菜鸟?不卖课,面试官视角走心探讨
前端·后端·面试
bobz9652 小时前
tcp/ip 中的多路复用
后端
bobz9652 小时前
tls ingress 简单记录
后端
你的人类朋友3 小时前
什么是OpenSSL
后端·安全·程序员
bobz9653 小时前
mcp 直接操作浏览器
后端
前端小张同学6 小时前
服务器部署 gitlab 占用空间太大怎么办,优化思路。
后端
databook6 小时前
Manim实现闪光轨迹特效
后端·python·动效
武子康6 小时前
大数据-98 Spark 从 DStream 到 Structured Streaming:Spark 实时计算的演进
大数据·后端·spark
该用户已不存在7 小时前
6个值得收藏的.NET ORM 框架
前端·后端·.net
文心快码BaiduComate7 小时前
文心快码入选2025服贸会“数智影响力”先锋案例
前端·后端·程序员