MCPcopy Index your code
hub / github.com/dataease/SQLBot / update_training

Function update_training

backend/apps/data_training/curd/data_training.py:212–259  ·  view source on GitHub ↗
(session: SessionDep, info: DataTrainingInfo, oid: int, trans: Trans)

Source from the content-addressed store, hash-verified

210
211
212def update_training(session: SessionDep, info: DataTrainingInfo, oid: int, trans: Trans):
213 # 基本验证
214 if not info.question or not info.question.strip():
215 raise Exception(trans("i18n_data_training.question_cannot_be_empty"))
216
217 if not info.description or not info.description.strip():
218 raise Exception(trans("i18n_data_training.description_cannot_be_empty"))
219
220 if info.datasource is None and info.advanced_application is None:
221 raise Exception(trans("i18n_data_training.datasource_assistant_cannot_be_none"))
222
223 count = session.query(DataTraining).filter(
224 DataTraining.id == info.id
225 ).count()
226 if count == 0:
227 raise Exception(trans('i18n_data_training.data_training_not_exists'))
228
229 stmt = select(DataTraining.id).where(
230 and_(DataTraining.question == info.question, DataTraining.oid == oid, DataTraining.id != info.id))
231
232 if info.datasource is not None and info.advanced_application is not None:
233 stmt = stmt.where(
234 or_(DataTraining.datasource == info.datasource,
235 DataTraining.advanced_application == info.advanced_application))
236 elif info.datasource is not None and info.advanced_application is None:
237 stmt = stmt.where(and_(DataTraining.datasource == info.datasource))
238 elif info.datasource is None and info.advanced_application is not None:
239 stmt = stmt.where(and_(DataTraining.advanced_application == info.advanced_application))
240
241 exists = session.query(stmt.exists()).scalar()
242
243 if exists:
244 raise Exception(trans("i18n_data_training.exists_in_db"))
245
246 stmt = update(DataTraining).where(and_(DataTraining.id == info.id)).values(
247 question=info.question.strip(),
248 description=info.description.strip(),
249 datasource=info.datasource,
250 advanced_application=info.advanced_application,
251 enabled=info.enabled if info.enabled is not None else True
252 )
253 session.execute(stmt)
254 session.commit()
255
256 # embedding
257 run_save_data_training_embeddings([info.id])
258
259 return info.id
260
261
262def batch_create_training(session: SessionDep, info_list: List[DataTrainingInfo], oid: int, trans: Trans):

Callers 1

create_or_updateFunction · 0.90

Calls 5

updateFunction · 0.50
filterMethod · 0.45
existsMethod · 0.45
valuesMethod · 0.45

Tested by

no test coverage detected