更新了模型评估页面的新建

This commit is contained in:
2026-01-22 17:29:48 +08:00
parent 1a847996c8
commit 8c89e9907f
5 changed files with 15202 additions and 43 deletions

View File

@@ -84,6 +84,7 @@ def init_database():
# 模型评测表
"""CREATE TABLE IF NOT EXISTS model_eval (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
model_name VARCHAR(255) NOT NULL,
dataset VARCHAR(255),
metric VARCHAR(100),
@@ -215,12 +216,14 @@ def init_database():
except Exception as e:
print(f"{i+1} 创建失败: {e}")
# 为已存在的 model_manage 表添加 purpose 列
try:
cursor.execute("ALTER TABLE model_manage ADD COLUMN purpose VARCHAR(50) DEFAULT 'inference'")
print(" model_manage 表添加 purpose 列成功")
except Exception as e:
print(f" model_manage 表 purpose 列处理: {e}")
# 为已存在的表添加缺失的列(静默处理,不显示重复列的提示)
for table_col in [("model_manage", "purpose"), ("model_eval", "name")]:
try:
table_name, col_name = table_col
cursor.execute(f"ALTER TABLE {table_name} ADD COLUMN {col_name} VARCHAR(255) DEFAULT ''")
print(f" {table_name} 表添加 {col_name} 列成功")
except Exception as e:
pass # 列已存在时不输出任何信息
# 插入默认管理员用户
cursor.execute("SELECT * FROM users WHERE username = 'admin'")
@@ -240,13 +243,8 @@ def init_database():
app = Flask(__name__)
app.config['SECRET_KEY'] = CONFIG['secret_key']
app.config['CORS_HEADERS'] = 'Content-Type'
CORS(app, resources={
r"/api/*": {
"origins": "*",
"methods": ["GET", "POST", "PUT", "DELETE", "OPTIONS"],
"allow_headers": ["Content-Type", "Authorization"]
}
}, supports_credentials=False)
# 使用字符串形式的 origins
CORS(app, origins="*", methods=["GET", "POST", "PUT", "DELETE", "OPTIONS"], allow_headers=["Content-Type", "Authorization"], supports_credentials=False)
# 注册蓝图
register_blueprints(app)
@@ -434,14 +432,85 @@ def get_model_eval():
@app.route('/api/model-eval', methods=['POST'])
def create_model_eval():
data = request.json
new_id = generic_create('model_eval', data)
# 获取模型名称和数据集名称
model_id = data.get('model_id')
dataset_id = data.get('dataset_id')
eval_dimension = data.get('eval_dimension', '')
# 获取模型名称
model_name = ''
if model_id:
conn = get_db_connection()
cursor = conn.cursor()
cursor.execute("SELECT name FROM model_manage WHERE id = %s", (model_id,))
model_result = cursor.fetchone()
cursor.close()
conn.close()
if model_result:
model_name = model_result['name']
# 获取数据集名称
dataset_name = ''
if dataset_id:
conn = get_db_connection()
cursor = conn.cursor()
cursor.execute("SELECT name FROM dataset_manage WHERE id = %s", (dataset_id,))
dataset_result = cursor.fetchone()
cursor.close()
conn.close()
if dataset_result:
dataset_name = dataset_result['name']
# 构建插入数据,映射到数据库字段
insert_data = {
'name': data.get('name', ''),
'model_name': model_name,
'dataset': dataset_name,
'metric': eval_dimension,
'status': 'pending'
}
new_id = generic_create('model_eval', insert_data)
return jsonify({'code': 0, 'message': '创建成功', 'id': new_id})
@app.route('/api/model-eval/<int:id>', methods=['PUT'])
def update_model_eval(id):
data = request.json
generic_update('model_eval', id, data)
# 构建更新数据,映射到数据库字段
update_data = {}
if 'name' in data:
update_data['name'] = data['name']
if 'model_id' in data:
model_id = data['model_id']
conn = get_db_connection()
cursor = conn.cursor()
cursor.execute("SELECT name FROM model_manage WHERE id = %s", (model_id,))
model_result = cursor.fetchone()
cursor.close()
conn.close()
update_data['model_name'] = model_result['name'] if model_result else ''
if 'dataset_id' in data:
dataset_id = data['dataset_id']
conn = get_db_connection()
cursor = conn.cursor()
cursor.execute("SELECT name FROM dataset_manage WHERE id = %s", (dataset_id,))
dataset_result = cursor.fetchone()
cursor.close()
conn.close()
update_data['dataset'] = dataset_result['name'] if dataset_result else ''
if 'eval_dimension' in data:
update_data['metric'] = data['eval_dimension']
if update_data:
generic_update('model_eval', id, update_data)
return jsonify({'code': 0, 'message': '更新成功'})