1. 增加了数据页面,微调页面,评估页面和模型管理界面
This commit is contained in:
@@ -74,7 +74,7 @@
|
||||
|
||||
<!-- 第二分区:资源管理 -->
|
||||
<div class="sidebar-section-title mt-6">资源管理</div>
|
||||
<a href="main.html?page=model-manage" data-page="model-manage" class="nav-link sidebar-item-active flex items-center px-4 py-2.5 hover:bg-sidebarBg/20 transition-colors">
|
||||
<a href="main.html?page=model-manage" data-page="model-manage" class="nav-link flex items-center px-4 py-2.5 hover:bg-sidebarBg/20 transition-colors">
|
||||
<i class="fa fa-cube w-5 text-center"></i>
|
||||
<span class="ml-2">模型管理</span>
|
||||
</a>
|
||||
@@ -113,10 +113,8 @@
|
||||
<div class="flex items-center space-x-4">
|
||||
<a href="main.html?page=model-manage" class="text-gray-500 hover:text-gray-700 flex items-center">
|
||||
<i class="fa fa-arrow-left"></i>
|
||||
<span class="ml-1">返回</span>
|
||||
<span class="ml-1">上一步</span>
|
||||
</a>
|
||||
<span class="text-gray-300">|</span>
|
||||
<span class="text-gray-800 font-medium">添加模型</span>
|
||||
</div>
|
||||
<div class="flex items-center space-x-4">
|
||||
<div class="relative group">
|
||||
@@ -188,13 +186,52 @@
|
||||
<!-- 模型路径 -->
|
||||
<div class="mb-6">
|
||||
<h3 class="text-sm font-semibold text-gray-700 mb-4 pb-2 border-b border-gray-100">模型路径</h3>
|
||||
<div class="max-w-xl">
|
||||
|
||||
<!-- 模型来源选择 -->
|
||||
<div class="mb-4">
|
||||
<label class="block text-sm text-gray-600 mb-3">模型来源</label>
|
||||
<div class="flex items-center space-x-6">
|
||||
<label class="flex items-center cursor-pointer">
|
||||
<input type="radio" name="model_source" value="local" checked class="mr-2" onchange="toggleModelSource('local')">
|
||||
<span class="text-sm">本地模型</span>
|
||||
</label>
|
||||
<label class="flex items-center cursor-pointer">
|
||||
<input type="radio" name="model_source" value="online" class="mr-2" onchange="toggleModelSource('online')">
|
||||
<span class="text-sm">在线模型</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 本地模型配置 -->
|
||||
<div id="localModelPanel" class="max-w-xl">
|
||||
<label class="form-label">
|
||||
<span class="text-red-500 mr-1">*</span>模型存储路径
|
||||
<span class="text-red-500 mr-1">*</span>模型加载路径
|
||||
</label>
|
||||
<input type="text" name="path" class="form-input" placeholder="如:s3://bucket/models/my-model">
|
||||
<input type="text" name="local_path" class="form-input" placeholder="如:/models/my-model 或 s3://bucket/models/my-model">
|
||||
<p class="text-xs text-gray-400 mt-1">支持本地路径或云存储路径(OSS、S3、HDFS等)</p>
|
||||
</div>
|
||||
|
||||
<!-- 在线模型配置 -->
|
||||
<div id="onlineModelPanel" class="hidden max-w-xl">
|
||||
<div class="mb-4">
|
||||
<label class="form-label">
|
||||
<span class="text-red-500 mr-1">*</span>API 地址
|
||||
</label>
|
||||
<input type="text" name="api_url" class="form-input" placeholder="如:https://api.openai.com/v1">
|
||||
</div>
|
||||
<div class="mb-4">
|
||||
<label class="form-label">
|
||||
<span class="text-red-500 mr-1">*</span>API Key
|
||||
</label>
|
||||
<input type="password" name="api_key" class="form-input" placeholder="请输入API Key">
|
||||
</div>
|
||||
<div class="mb-4">
|
||||
<label class="form-label">
|
||||
<span class="text-red-500 mr-1">*</span>模型名称
|
||||
</label>
|
||||
<input type="text" name="online_model_name" class="form-input" placeholder="如:gpt-4、qwen-turbo">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 描述信息 -->
|
||||
@@ -254,18 +291,58 @@
|
||||
});
|
||||
});
|
||||
|
||||
// 切换模型来源
|
||||
function toggleModelSource(source) {
|
||||
const localPanel = document.getElementById('localModelPanel');
|
||||
const onlinePanel = document.getElementById('onlineModelPanel');
|
||||
if (source === 'local') {
|
||||
localPanel.classList.remove('hidden');
|
||||
onlinePanel.classList.add('hidden');
|
||||
} else {
|
||||
localPanel.classList.add('hidden');
|
||||
onlinePanel.classList.remove('hidden');
|
||||
}
|
||||
}
|
||||
|
||||
// 提交表单
|
||||
async function submitForm() {
|
||||
const form = document.getElementById('modelForm');
|
||||
const formData = new FormData(form);
|
||||
const modelSource = formData.get('model_source');
|
||||
|
||||
const data = {
|
||||
name: formData.get('name'),
|
||||
type: formData.get('type'),
|
||||
version: formData.get('version'),
|
||||
path: formData.get('path'),
|
||||
model_source: modelSource,
|
||||
description: formData.get('description')
|
||||
};
|
||||
|
||||
// 根据模型来源设置不同的字段
|
||||
if (modelSource === 'local') {
|
||||
data.path = formData.get('local_path');
|
||||
if (!data.path) {
|
||||
showMessage('提示', '请输入模型加载路径', 'warning');
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
data.api_url = formData.get('api_url');
|
||||
data.api_key = formData.get('api_key');
|
||||
data.model_name = formData.get('online_model_name');
|
||||
if (!data.api_url) {
|
||||
showMessage('提示', '请输入API地址', 'warning');
|
||||
return;
|
||||
}
|
||||
if (!data.api_key) {
|
||||
showMessage('提示', '请输入API Key', 'warning');
|
||||
return;
|
||||
}
|
||||
if (!data.model_name) {
|
||||
showMessage('提示', '请输入模型名称', 'warning');
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// 验证
|
||||
if (!data.name) {
|
||||
showMessage('提示', '请输入模型名称', 'warning');
|
||||
@@ -279,10 +356,6 @@
|
||||
showMessage('提示', '请输入模型版本', 'warning');
|
||||
return;
|
||||
}
|
||||
if (!data.path) {
|
||||
showMessage('提示', '请输入模型路径', 'warning');
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const response = await fetch(`${API_BASE}/model-manage`, {
|
||||
|
||||
Reference in New Issue
Block a user