fix: export/import SQL Sample management

This commit is contained in:
ulleo
2026-07-10 16:12:33 +08:00
committed by ulleo
parent aa594a5681
commit 487f5fd584
+19 -28
View File
@@ -45,7 +45,8 @@ async def pager(session: SessionDep, current_user: CurrentUser, current_page: in
@router.put("", response_model=int, summary=f"{PLACEHOLDER_PREFIX}create_or_update_dt")
@require_permissions(permission=SqlbotPermission(role=['ws_admin'], type='ds', keyExpression="info.datasource"))
@system_log(LogConfig(operation_type=OperationType.CREATE_OR_UPDATE, module=OperationModules.DATA_TRAINING,resource_id_expr='info.id', result_id_expr="result_self"))
@system_log(LogConfig(operation_type=OperationType.CREATE_OR_UPDATE, module=OperationModules.DATA_TRAINING,
resource_id_expr='info.id', result_id_expr="result_self"))
async def create_or_update(session: SessionDep, current_user: CurrentUser, trans: Trans, info: DataTrainingInfo):
oid = current_user.oid
if info.id:
@@ -55,14 +56,16 @@ async def create_or_update(session: SessionDep, current_user: CurrentUser, trans
@router.delete("", summary=f"{PLACEHOLDER_PREFIX}delete_dt")
@system_log(LogConfig(operation_type=OperationType.DELETE, module=OperationModules.DATA_TRAINING,resource_id_expr='id_list'))
@system_log(
LogConfig(operation_type=OperationType.DELETE, module=OperationModules.DATA_TRAINING, resource_id_expr='id_list'))
@require_permissions(permission=SqlbotPermission(role=['ws_admin']))
async def delete(session: SessionDep, id_list: list[int]):
delete_training(session, id_list)
@router.get("/{id}/enable/{enabled}", summary=f"{PLACEHOLDER_PREFIX}enable_dt")
@system_log(LogConfig(operation_type=OperationType.UPDATE, module=OperationModules.DATA_TRAINING,resource_id_expr='id'))
@system_log(
LogConfig(operation_type=OperationType.UPDATE, module=OperationModules.DATA_TRAINING, resource_id_expr='id'))
@require_permissions(permission=SqlbotPermission(role=['ws_admin']))
async def enable(session: SessionDep, id: int, enabled: bool, trans: Trans):
enable_training(session, id, enabled, trans)
@@ -89,9 +92,7 @@ async def export_excel(session: SessionDep, trans: Trans, current_user: CurrentU
fields.append(AxisObj(name=trans('i18n_data_training.problem_description'), value='question'))
fields.append(AxisObj(name=trans('i18n_data_training.sample_sql'), value='description'))
fields.append(AxisObj(name=trans('i18n_data_training.effective_data_sources'), value='datasource_name'))
if current_user.oid == 1:
fields.append(
AxisObj(name=trans('i18n_data_training.advanced_application'), value='advanced_application_name'))
fields.append(AxisObj(name=trans('i18n_data_training.advanced_application'), value='advanced_application_name'))
md_data, _fields_list = DataFormat.convert_object_array_for_pandas(fields, data_list)
@@ -127,10 +128,9 @@ async def excel_template(trans: Trans, current_user: CurrentUser):
fields.append(AxisObj(name=trans('i18n_data_training.sample_sql_template'), value='description'))
fields.append(
AxisObj(name=trans('i18n_data_training.effective_data_sources_template'), value='datasource_name'))
if current_user.oid == 1:
fields.append(
AxisObj(name=trans('i18n_data_training.advanced_application_template'),
value='advanced_application_name'))
fields.append(
AxisObj(name=trans('i18n_data_training.advanced_application_template'),
value='advanced_application_name'))
md_data, _fields_list = DataFormat.convert_object_array_for_pandas(fields, data_list)
@@ -175,10 +175,7 @@ async def upload_excel(trans: Trans, current_user: CurrentUser, file: UploadFile
oid = current_user.oid
use_cols = [0, 1, 2] # 问题, 描述, 数据源名称
# 根据oid确定要读取的列
if oid == 1:
use_cols = [0, 1, 2, 3] # 问题, 描述, 数据源名称, 高级应用名称
use_cols = [0, 1, 2, 3] # 问题, 描述, 数据源名称, 高级应用名称
def inner():
@@ -211,19 +208,14 @@ async def upload_excel(trans: Trans, current_user: CurrentUser, file: UploadFile
description = row[1].strip() if pd.notna(row[1]) and row[1].strip() else ''
datasource_name = row[2].strip() if pd.notna(row[2]) and row[2].strip() else ''
advanced_application_name = ''
if oid == 1 and len(row) > 3:
advanced_application_name = None
if len(row) > 3:
advanced_application_name = row[3].strip() if pd.notna(row[3]) and row[3].strip() else ''
if oid == 1:
import_data.append(
DataTrainingInfo(oid=oid, question=question, description=description,
datasource_name=datasource_name,
advanced_application_name=advanced_application_name))
else:
import_data.append(
DataTrainingInfo(oid=oid, question=question, description=description,
datasource_name=datasource_name))
import_data.append(
DataTrainingInfo(oid=oid, question=question, description=description,
datasource_name=datasource_name,
advanced_application_name=advanced_application_name))
res = batch_create_training(session, import_data, oid, trans)
@@ -247,9 +239,8 @@ async def upload_excel(trans: Trans, current_user: CurrentUser, file: UploadFile
fields.append(AxisObj(name=trans('i18n_data_training.problem_description'), value='question'))
fields.append(AxisObj(name=trans('i18n_data_training.sample_sql'), value='description'))
fields.append(AxisObj(name=trans('i18n_data_training.effective_data_sources'), value='datasource_name'))
if current_user.oid == 1:
fields.append(
AxisObj(name=trans('i18n_data_training.advanced_application'), value='advanced_application_name'))
fields.append(
AxisObj(name=trans('i18n_data_training.advanced_application'), value='advanced_application_name'))
fields.append(AxisObj(name=trans('i18n_data_training.error_info'), value='errors'))
md_data, _fields_list = DataFormat.convert_object_array_for_pandas(fields, data_list)