后端 (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>
远光软件微调平台 - 前端(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。