diff --git a/backend/apps/data_training/curd/data_training.py b/backend/apps/data_training/curd/data_training.py index 78c533b8..15260a9a 100644 --- a/backend/apps/data_training/curd/data_training.py +++ b/backend/apps/data_training/curd/data_training.py @@ -94,7 +94,8 @@ def create_training(session: SessionDep, info: DataTrainingInfo, oid: int, trans exists = session.query( session.query(DataTraining).filter( - and_(DataTraining.question == info.question, DataTraining.oid == oid)).exists()).scalar() + and_(DataTraining.question == info.question, DataTraining.oid == oid, + DataTraining.datasource == info.datasource)).exists()).scalar() if exists: raise Exception(trans("i18n_data_training.exists_in_db")) @@ -114,8 +115,10 @@ def create_training(session: SessionDep, info: DataTrainingInfo, oid: int, trans def update_training(session: SessionDep, info: DataTrainingInfo, oid: int, trans: Trans): + if info.datasource is None: + raise Exception(trans("i18n_data_training.datasource_cannot_be_none")) + count = session.query(DataTraining).filter( - DataTraining.oid == oid, DataTraining.id == info.id ).count() if count == 0: @@ -124,6 +127,7 @@ def update_training(session: SessionDep, info: DataTrainingInfo, oid: int, trans exists = session.query( session.query(DataTraining).filter( and_(DataTraining.question == info.question, DataTraining.oid == oid, + DataTraining.datasource == info.datasource, DataTraining.id != info.id)).exists()).scalar() if exists: raise Exception(trans("i18n_data_training.exists_in_db")) @@ -131,6 +135,7 @@ def update_training(session: SessionDep, info: DataTrainingInfo, oid: int, trans stmt = update(DataTraining).where(and_(DataTraining.id == info.id)).values( question=info.question, description=info.description, + datasource=info.datasource, ) session.execute(stmt) session.commit() diff --git a/frontend/src/views/system/training/index.vue b/frontend/src/views/system/training/index.vue index fadbd961..7c6dfac6 100644 --- a/frontend/src/views/system/training/index.vue +++ b/frontend/src/views/system/training/index.vue @@ -19,6 +19,7 @@ interface Form { id?: string | null question: string | null datasource: string | null + datasource_name: string | null description: string | null } @@ -55,6 +56,7 @@ const defaultForm = { question: null, description: null, datasource: null, + datasource_name: null, } const pageForm = ref