TraceStudio-dev/docs/web1.0/PHASE1_COMPLETE.md
2026-01-07 19:34:45 +08:00

7.1 KiB
Raw Blame History

TraceStudio 第一阶段开发完成总结

已完成的功能

前端 (Web)

1. 智能算子侧边栏 (NodePalette)

  • 搜索置顶:固定在顶部的搜索框,支持实时过滤
  • 即时过滤:输入关键词立即过滤算子列表
  • 分类折叠:算子按 Loaders、Transforms、Filters、Visualizers 分组
  • 跨组搜索:搜索结果可跨类别显示
  • 拖拽反馈:拖拽时的视觉反馈和状态指示
  • 图标标识:每种类别都有独特的 emoji 图标
  • 预览徽章:支持预览的节点显示 标识

2. 全局控制顶栏 (HeaderBar)

  • 运行按钮:大型、醒目的主操作按钮,支持运行/停止切换
  • 状态指示器:实时显示系统状态(运行中/空闲)
  • 状态灯动画:运行时带呼吸动画的绿色指示灯
  • 图统计:实时显示节点数和连接数
  • 采样率控制1%/10%/25%/100% 四档采样率选择
  • 时间窗口:可配置的数据时间范围
  • 视图切换:快速切换左右侧面板的显示/隐藏
  • 语言切换:中文/英文界面切换
  • 设置入口:访问全局设置的快捷按钮

3. 响应式画布与侧板 (Workspace & Inspector)

  • React Flow 集成:完整的节点编辑器功能
  • 空状态提示:画布为空时的引导界面
  • 节点拖拽:从侧边栏拖拽算子到画布
  • 节点选择:点击节点查看属性
  • 属性编辑:在右侧面板编辑节点参数
  • 概览面板:未选中节点时显示工作流统计
  • 数据预览:支持运行节点预览输出数据
  • 小地图:画布全局视图导航
  • 缩放控制:内置的缩放和适应视图控件
  • 响应式布局:侧边栏可折叠,画布自适应

4. 设置模态框 (SettingsModal)

  • 语言设置:切换界面语言
  • 关于信息:显示版本和项目信息
  • 优雅动画:淡入和滑动动画效果

后端 (Server)

1. 基础 API 结构

  • FastAPI 框架:现代化的 Python Web 框架
  • CORS 配置:支持跨域请求
  • 自动文档:访问 /docs 查看 Swagger UI

2. 核心端点

  • GET /plugins:返回所有可用算子的元数据
  • POST /node/preview:预览节点输出(模拟数据)
  • POST /graph/execute:执行计算图(占位实现)

3. 测试数据

  • 8 种算子类型:覆盖 Loaders、Transforms、Filters、Visualizers
  • 参数模式:每个算子都有详细的参数定义
  • 模拟预览数据CSV 和 Transform 节点的示例输出

🎨 设计特色

ComfyUI 风格体现

  1. 节点即视觉:所有数据流通过节点连线可见化
  2. 原子化算子:每个节点职责单一,易于组合
  3. 实时反馈:运行时的动画和状态变化
  4. 深色工业风:保护视力的深色配色方案
  5. 搜索优先:快速定位需要的算子

交互细节

  • 🎯 Hover 效果:所有交互元素都有悬停反馈
  • 🎨 渐变按钮:主要操作使用渐变色突出
  • 平滑动画0.15-0.3s 的过渡动画
  • 📊 信息密度:在紧凑空间内展示最大信息量
  • 🔍 清晰层次:通过颜色、大小、间距区分重要性

📁 项目结构

TraceStudio/
├── web/                          # React 前端
│   ├── src/
│   │   ├── components/
│   │   │   ├── AppShell.tsx      ✅ 主布局容器
│   │   │   ├── HeaderBar.tsx     ✅ 全局控制栏
│   │   │   ├── NodePalette.tsx   ✅ 算子侧边栏
│   │   │   ├── Workspace.tsx     ✅ 画布编辑器
│   │   │   ├── Inspector.tsx     ✅ 属性检查器
│   │   │   └── SettingsModal.tsx ✅ 设置弹窗
│   │   ├── stores/
│   │   │   └── useStore.ts       ✅ Zustand 状态管理
│   │   ├── utils/
│   │   └── i18n.ts               ✅ 国际化支持
│   └── package.json
│
└── server/                       # Python 后端
    ├── main.py                   ✅ FastAPI 入口
    ├── requirements.txt          ✅ 依赖列表
    └── README.md                 ✅ 后端文档

🚀 启动指南

1. 启动后端服务

# 进入 server 目录
cd server

# 创建虚拟环境(可选)
conda create -n tracestudio python=3.11
conda activate tracestudio

# 安装依赖
pip install -r requirements.txt

# 启动服务
python main.py

后端将在 http://127.0.0.1:8000 启动。

2. 启动前端开发服务器

# 进入 web 目录
cd web

# 安装依赖(首次运行)
npm install

# 启动开发服务器
npm run dev

前端将在 http://localhost:5173 启动Vite 默认端口)。

3. 验证功能

  1. 打开浏览器访问前端地址
  2. 查看算子面板:左侧应显示 8 种算子
  3. 搜索测试:在搜索框输入 "CSV" 应过滤显示相关节点
  4. 拖拽节点:将 "CSV 数据加载器" 拖到画布
  5. 查看属性:点击节点,右侧显示属性面板
  6. 运行预览:点击 "运行预览" 按钮查看模拟数据

📊 测试用例

前端测试

  • 搜索功能:输入关键词能正确过滤
  • 节点拖拽:能从侧边栏拖拽到画布
  • 节点选择:点击节点能显示属性
  • 属性编辑:修改属性值能实时更新
  • 视图切换:左右面板能正常折叠/展开
  • 语言切换:中英文能正确切换
  • 运行按钮:点击能切换运行状态

后端测试

  • API 可访问:http://127.0.0.1:8000 返回成功
  • 插件列表:GET /plugins 返回 8 种算子
  • 预览功能:POST /node/preview 返回模拟数据
  • API 文档:http://127.0.0.1:8000/docs 可访问

🎯 下一阶段计划

第二阶段:数据流引擎

  1. 实现节点之间的数据传递
  2. DAG 拓扑排序和执行顺序
  3. 粗细线策略(采样/全量)
  4. 缓存系统

第三阶段Unreal Insights 集成

  1. utrace 文件解析
  2. 真实数据加载
  3. 性能数据处理
  4. 可视化图表

第四阶段:高级功能

  1. 工作流保存/加载(.tsflow
  2. 自定义节点支持
  3. Python 脚本节点
  4. 用户目录管理

💡 技术亮点

  1. TypeScript + React:类型安全的前端开发
  2. Zustand:轻量级状态管理
  3. React Flow:专业的节点编辑器
  4. FastAPI:现代 Python Web 框架
  5. 响应式设计:适配不同屏幕尺寸
  6. ComfyUI 范式:遵循成熟的节点编辑器设计模式

🙏 参考资料


开发状态:第一阶段 完成
下一步:启动前后端服务,进行功能验证测试