AI 集成架构 
本文档详细介绍了 VTJ 平台中 AI 驱动的代码生成与设计辅助功能。AI 子系统与 VTJ 核心引擎深度集成,支持通过自然语言提示、图像上传和元数据文件生成 Vue 组件和页面。有关底层处理机制,请参阅核心架构文档;关于可视化设计实现,请参考设计器与渲染器文档。
AI 系统架构 
VTJ 的 AI 集成采用分层架构设计,各层协同工作实现用户输入到可执行 Vue 代码的转换:

AI 集成架构层次:
- 接口层:负责收集用户输入(文本、图像、JSON)
- 逻辑控制层:管理状态机、API 通信和错误处理
- AI 处理层:执行自然语言理解、图像识别和代码生成
- 引擎集成层:将生成的代码与 VTJ 核心引擎对接
AI 输入处理机制 
VTJ 支持三种输入模式,每种模式针对不同的开发场景:
| 输入类型 | 前端组件 | 支持格式 | 典型应用场景 | 
|---|---|---|---|
| 自然语言文本 | ChatInput | 纯文本 | 功能需求描述、代码优化 | 
| 设计图像 | ImageInput | .png, .jpg, .jpeg | 界面原型、设计稿转代码 | 
| 结构化元数据 | JsonInput | .json | Figma/Sketch 设计文件导出 | 
文本输入处理流程 
文本输入通过 AISendData 接口处理自然语言提示,处理流程如下:

处理流程:
- 提取当前项目上下文(包括 DSL 定义和 Vue 源码)
- 构建包含完整上下文的提示词
- 通过 AI 模型生成 Vue SFC 代码
- 解析并验证生成代码的有效性
图像输入处理流程 
图像处理管线将视觉设计转换为语义化的 Vue 组件:

转换流程:
- 图像预处理(尺寸归一化、特征增强)
- 基于 CV 模型识别 UI 元素和布局结构
- 生成组件层次结构和样式定义
- 输出符合 VTJ DSL 规范的中间表示
AI 聊天系统与实时流处理 
AI 聊天系统通过状态机管理对话交互,支持实时响应流:

状态机关键状态:
- INITIAL: 等待用户输入
- STREAMING: 处理 AI 流式响应
- COMPLETED: 生成最终代码结果
- ERROR: 处理异常情况
实时流式响应实现 
使用 Server-Sent Events (SSE) 实现低延迟响应传输:
ts
// 聊天补全核心逻辑
const chatCompletions = async (
  topicId: string,
  chatId: string,
  callback?: (data: any, done?: boolean) => void,
  error?: (err: any, cancel?: boolean) => void
) => {
  const controller = new AbortController();
  try {
    // 建立 SSE 连接
    const response = await fetch(API_ENDPOINT, {
      method: 'POST',
      signal: controller.signal,
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({ topicId, chatId })
    });
    // 处理流式数据块
    const reader = response.body.getReader();
    const decoder = new TextDecoder();
    let buffer = '';
    while (true) {
      const { value, done } = await reader.read();
      if (done) break;
      buffer += decoder.decode(value, { stream: true });
      const lines = buffer.split('\n');
      for (const line of lines) {
        if (line.startsWith('data:')) {
          const data = JSON.parse(line.substring(5));
          callback(data, false);
        }
      }
    }
    callback(null, true); // 流处理完成
  } catch (err) {
    error(err, true); // 错误处理
  }
};代码生成与 DSL 集成 
AI 系统通过双向转换管道与 VTJ 核心引擎集成:

集成工作流:
- 从 AI 响应中提取 Vue SFC 代码
- 将 Vue 代码转换为 DSL 中间表示
- 应用变更到当前块模型
- 通过渲染引擎更新 UI
代码转换关键函数 
| 函数 | 功能描述 | 输入 | 输出 | 
|---|---|---|---|
| getVueCode | 从 Markdown 提取 Vue 代码 | AI 响应文本 | Vue SFC 代码 | 
| vue2Dsl | Vue SFC 转 DSL 表示 | Vue SFC 代码 | 块架构定义 | 
| applyAI | 应用变更到引擎 | 块架构定义 | 更新后的 UI 状态 | 
转换过程包含严格验证:
- 组件命名符合 PascalCase 规范
- 属性类型与值匹配验证
- 样式作用域隔离检查
- 依赖项完整性校验
主题管理与对话上下文 
AI 系统通过主题机制管理对话上下文:

数据模型关系:
- 每个 BlockModel关联多个Topic
- 每个 Topic包含多个Chat对话
- 每个 Chat包含多条Message记录
主题生命周期管理 
- 主题创建
 通过onPostTopic创建新主题,关联项目上下文
- 对话管理onPostChat向主题添加消息,维护完整对话历史
- 上下文加载
 根据 BlockModel 状态动态加载关联主题
- 资源清理onRemoveTopic级联删除主题及关联对话
用户体验增强功能 
自动应用机制 
启用后,系统自动应用验证通过的生成代码:
ts
// 自动应用逻辑
function handleAutoApply(generatedCode) {
  if (config.autoApplyEnabled) {
    const dsl = vue2Dsl(generatedCode);
    if (validateDSL(dsl)) {
      engine.applyDSL(dsl);
    }
  }
}交互式代码审查 
提供多维度代码审查界面:
- 源码编辑器:支持直接修改生成的 Vue 代码
- DSL 预览面板:实时显示转换后的 DSL 结构
- 版本比对:对比不同生成版本的代码差异
- 手动应用控制:选择性应用审查后的代码
错误恢复机制 
全面错误处理框架:
| 错误类型 | 处理机制 | 恢复策略 | 
|---|---|---|
| 语法解析错误 | vue2Dsl 异常捕获 | 高亮错误位置,提供修复建议 | 
| 网络通信异常 | 请求超时/中断处理 | 自动重试机制(最多3次) | 
| 验证错误 | DSL 模式校验 | 过滤无效节点,保留有效部分 | 
| 用户取消操作 | onCancelChat 事件处理 | 清理中间状态,释放资源 | 
错误处理系统提供上下文感知的恢复建议,支持用户迭代优化 AI 生成的代码。