feat: v1.3.0 - 五项优化
1. 显存/内存进度条置顶显示 (sticky) - 滚动页面时始终可见 VRAM 和内存占用情况 - GPU+CPU 模式时内存条也同步显示在 sticky 区域 2. 系统内存配置合并到 GPU 配置区域内 - GPU+CPU 模式时无缝衔接在显存占用下方 - 去掉单独面板,去掉单位选择,固定为 GB - 填入 >0 即为有限制,0 为无限制 3. 参数同时显示简写和完整标志 - 如 -ngl / --n-gpu-layers 4. 生成命令区域增加智能提示 - 显存不足时提示调整参数或切换模式 - 内存不足时提示增加上限或减少 GPU 层 - 显存充足时显示确认信息 - 未选模型/GPU 时给出引导提示 5. 自然语言输入改为多行 textarea - 支持多行输入 - placeholder 说明可以自然对话描述需求
This commit is contained in:
+36
-23
@@ -12,6 +12,24 @@
|
||||
<h1>🦙 llama.cpp 命令生成器</h1>
|
||||
</header>
|
||||
|
||||
<!-- Sticky memory bar (always visible on top) -->
|
||||
<div id="sticky-mem-bar" class="sticky-mem-bar">
|
||||
<div class="sticky-vram-row" id="sticky-vram-row">
|
||||
<span class="sticky-label">🎮 VRAM</span>
|
||||
<div class="sticky-bar-container">
|
||||
<div class="sticky-bar" id="sticky-vram-bar"></div>
|
||||
<span class="sticky-bar-text" id="sticky-vram-text">等待配置...</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sticky-ram-row hidden" id="sticky-ram-row">
|
||||
<span class="sticky-label">💾 内存</span>
|
||||
<div class="sticky-bar-container">
|
||||
<div class="sticky-bar ram-sticky-bar" id="sticky-ram-bar"></div>
|
||||
<span class="sticky-bar-text" id="sticky-ram-text">等待配置...</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Version & Mode Selection -->
|
||||
<section class="top-controls">
|
||||
<div class="control-group">
|
||||
@@ -34,11 +52,13 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- GPU Configuration -->
|
||||
<!-- GPU Configuration + System Memory (merged) -->
|
||||
<section class="panel" id="gpu-panel">
|
||||
<h2>🖥️ GPU 配置</h2>
|
||||
<div id="gpu-slots"></div>
|
||||
<button class="btn-add" id="btn-add-gpu" onclick="addGpuSlot()">+ 添加显卡</button>
|
||||
|
||||
<!-- VRAM Display -->
|
||||
<div class="vram-display" id="vram-display">
|
||||
<div class="vram-bar-container">
|
||||
<div class="vram-bar" id="vram-bar"></div>
|
||||
@@ -46,33 +66,27 @@
|
||||
</div>
|
||||
<div class="vram-breakdown" id="vram-breakdown"></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- System Memory (for GPU+CPU mode) -->
|
||||
<section class="panel hidden" id="memory-panel">
|
||||
<h2>💾 系统内存配置</h2>
|
||||
<div class="control-group">
|
||||
<label>系统内存上限</label>
|
||||
<input type="number" id="sys-memory" value="0" min="0" step="1" onchange="updateEstimate()">
|
||||
<select id="sys-memory-unit" onchange="updateEstimate()">
|
||||
<option value="0">无限制</option>
|
||||
<option value="1">GB</option>
|
||||
<option value="2">MB</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="vram-display" id="ram-display">
|
||||
<div class="vram-bar-container">
|
||||
<div class="vram-bar ram-bar" id="ram-bar"></div>
|
||||
<div class="vram-label" id="ram-label">内存: 等待配置...</div>
|
||||
<!-- System Memory (inline, only for GPU+CPU mode) -->
|
||||
<div class="inline-memory-config hidden" id="inline-memory-config">
|
||||
<div class="memory-input-row">
|
||||
<label>系统内存上限</label>
|
||||
<input type="number" id="sys-memory" value="0" min="0" step="1" onchange="updateEstimate()" placeholder="0 = 无限制">
|
||||
<span class="memory-unit">GB</span>
|
||||
</div>
|
||||
<div class="vram-display" id="ram-display">
|
||||
<div class="vram-bar-container">
|
||||
<div class="vram-bar ram-bar" id="ram-bar"></div>
|
||||
<div class="vram-label" id="ram-label">内存: 等待配置...</div>
|
||||
</div>
|
||||
<div class="vram-breakdown" id="ram-breakdown"></div>
|
||||
</div>
|
||||
<div class="vram-breakdown" id="ram-breakdown"></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Model Selection (two-step) -->
|
||||
<section class="panel">
|
||||
<h2>📦 选择模型</h2>
|
||||
<!-- Step 1: Select base model -->
|
||||
<div class="model-step">
|
||||
<label class="model-step-label">第1步:选择模型</label>
|
||||
<div class="model-select-container">
|
||||
@@ -80,12 +94,10 @@
|
||||
<div class="model-dropdown" id="model-dropdown"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Step 2: Select quant -->
|
||||
<div class="model-step hidden" id="quant-step">
|
||||
<label class="model-step-label">第2步:选择量化版本</label>
|
||||
<div id="quant-options"></div>
|
||||
</div>
|
||||
<!-- Selected model info -->
|
||||
<div id="model-selected-info" class="model-selected-info"></div>
|
||||
</section>
|
||||
|
||||
@@ -93,7 +105,7 @@
|
||||
<section class="panel">
|
||||
<h2>💬 自然语言生成</h2>
|
||||
<div class="nl-input-container">
|
||||
<input type="text" id="nl-input" placeholder="例如: 用RTX 4090跑70B模型, 上下文8192, 温度0.7, flash attention" />
|
||||
<textarea id="nl-input" rows="3" placeholder="用自然语言描述你想要的配置,支持多行输入。 例如: 用RTX 4090跑Llama-3-70B,上下文8192 温度0.7,开启flash attention 端口设为8080"></textarea>
|
||||
<button onclick="parseNaturalLanguage()">解析</button>
|
||||
</div>
|
||||
<div id="nl-result" class="nl-result"></div>
|
||||
@@ -123,6 +135,7 @@
|
||||
<section class="panel command-panel">
|
||||
<h2>📋 生成命令</h2>
|
||||
<div class="command-output" id="command-output">请在上方配置参数...</div>
|
||||
<div class="command-hint" id="command-hint"></div>
|
||||
<div class="command-actions">
|
||||
<button onclick="copyCommand()" class="btn-copy">📋 复制命令</button>
|
||||
<button onclick="generateCommand()" class="btn-gen">🔄 重新生成</button>
|
||||
|
||||
Reference in New Issue
Block a user