Files
YG_FT/frontend
wuyongtao c7c9ed925b feat: 模型推理端到端闭环 — 真实流式推理 + 释放/删除 + GPU 状态同步
后端 (platform.py + platform_store.py):
- 新增 _build_messages_payload() 转换前端格式为 OpenAI messages
- 新增 _stream_chat_proxy() SSE 流式代理到算力节点
- 新增 _unload_from_compute_node() 真正释放算力节点 GPU 显存
- 重写 model_compare_load: 从假 PID/端口改为真正调用算力节点加载模型
- 修复 model_compare_unload: 调用 _unload_from_compute_node 释放 GPU
- 修复 model_compare_delete: 先释放 GPU 再删除记录
- 修复 model_compare_stream_chat: 从 mock 改为 StreamingResponse 代理
- 修复 model_chat_local/stream: 消息格式转换 + 路径修正
- PlatformStore 新增 _inference_nodes 追踪,gpus() 同步推理占用状态
- preload/unload 端点标记/清除推理节点占用

算力节点 (compute):
- inference.py: 适配新版 LLaMA-Factory API (get_infer_args 4 返回值、ChatModel args dict、stream_chat 新签名)
- inference.py: unload() 增加 gc.collect + torch.cuda.empty_cache + synchronize 彻底释放显存
- main.py: inference/load 移除 HTTPException(500),错误以 200 正常返回

前端:
- InferenceChatView: 真实模式下走 SSE 流式推理,mock 模式保留兼容
- InferenceCreateView: 调用 preloadLocalModel + createCompare 真实创建推理任务,失败回退 mock
- InferenceListView: 「停止」改为「释放」,删除前先释放算力节点,改进错误提示
- compare.ts: 新增 streamChatReal() fetch SSE,preload 超时提升至 5 分钟
- useStreamChat.ts: send() 支持 useMock 参数,真实模式调用 streamChatReal
- GPU 选择过滤: 仅显示在线算力节点上的空闲 GPU

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-28 17:29:16 +08:00
..
2026-07-10 16:44:49 +08:00

远光软件微调平台 - 前端Vue 3

由原 web/ 静态多页面 HTML 项目改造而来。

技术栈

  • Vue 3 + TypeScript + Vite
  • Vue Router 4 - 路由
  • Pinia - 状态管理
  • Element Plus - UI 组件库(主色 #1890ff
  • axios - HTTP 请求
  • Chart.js - 训练曲线图表
  • marked + DOMPurify - Markdown 渲染
  • md-editor-v3 - Prompt 编辑器
  • @vueuse/core - 组合式工具

快速开始

cd frontend
npm install
npm run dev

开发服务器默认运行在 http://localhost:16801

后端 API 默认通过 Vite 代理转发到 http://localhost:17861(见 vite.config.ts)。

开发环境默认联调真实后端接口。如需进行隔离前端开发,可显式启用 Mock

VITE_ENABLE_MOCK=true npm run dev

真实联调、测试环境和生产环境不应启用 Mock。

构建

npm run build      # 类型检查 + 生产构建,产物在 dist/
npm run preview    # 本地预览构建产物
npm run type-check # 仅类型检查

目录结构

src/
├── api/           # axios 封装 + 各业务模块 API
├── components/    # 公共组件(侧边栏、顶部栏、通用列表等)
├── composables/   # 组合式函数(流式对话、图表、轮询等)
├── constants/     # 常量与映射表
├── layouts/       # 主布局
├── router/        # 路由配置 + 登录守卫
├── stores/        # Pinia 状态auth/system/models/tools
├── styles/        # 全局样式与主题
├── types/         # TypeScript 类型定义
└── views/         # 页面视图
    ├── login/     # 登录
    ├── fine-tune/ # 模型调优
    ├── eval/      # 模型评测
    ├── inference/ # 模型推理
    ├── compare/   # 模型对比
    ├── model/     # 模型管理
    ├── dataset/   # 数据集
    ├── tools/     # 其他工具
    └── system/    # 平台性能 / 日志

与原 web/ 项目的关系

  • web/ 目录保留不动,作为功能对照参照。
  • 新前端位于 frontend/,新旧可并存。
  • 后端 API 端点完全不变,仅前端实现方式改为 Vue SPA。