def save_machine_learning_model_info(self): try: record = MLModel.get_or_none(MLModel.f_model_version == self.job_id, MLModel.f_role == self.role, MLModel.f_model_id == self.model_id, MLModel.f_party_id == self.party_id) if not record: job = Job.get_or_none(Job.f_job_id == self.job_id) pipeline = self.pipelined_model.read_pipeline_model() if job: job_data = job.to_dict() model_info = { 'job_id': job_data.get("f_job_id"), 'role': self.role, 'party_id': self.party_id, 'roles': job_data.get("f_roles"), 'model_id': self.model_id, 'model_version': self.model_version, 'initiator_role': job_data.get('f_initiator_role'), 'initiator_party_id': job_data.get('f_initiator_party_id'), 'runtime_conf': job_data.get('f_runtime_conf'), 'work_mode': job_data.get('f_work_mode'), 'train_dsl': job_data.get('f_dsl'), 'train_runtime_conf': job_data.get('f_train_runtime_conf'), 'size': self.get_model_size(), 'job_status': job_data.get('f_status'), 'parent': pipeline.parent, 'fate_version': pipeline.fate_version, 'runtime_conf_on_party': json_loads(pipeline.runtime_conf_on_party), 'parent_info': json_loads(pipeline.parent_info), 'inference_dsl': json_loads(pipeline.inference_dsl) } model_utils.save_model_info(model_info) schedule_logger(self.job_id).info( 'save {} model info done. model id: {}, model version: {}.'.format(self.job_id, self.model_id, self.model_version)) else: schedule_logger(self.job_id).info( 'save {} model info failed, no job found in db. ' 'model id: {}, model version: {}.'.format(self.job_id, self.model_id, self.model_version)) else: schedule_logger(self.job_id).info('model {} info has already existed in database.'.format(self.job_id)) except Exception as e: schedule_logger(self.job_id).exception(e)
def save_machine_learning_model_info(self): try: record = MLModel.get_or_none( MLModel.f_model_version == self.job_id) if not record: job = Job.get_or_none(Job.f_job_id == self.job_id) if job: job_data = job.to_json() MLModel.create( f_role=self.role, f_party_id=self.party_id, f_roles=job_data.get("f_roles"), f_model_id=self.model_id, f_model_version=self.model_version, f_job_id=job_data.get("f_job_id"), f_create_time=current_timestamp(), f_initiator_role=job_data.get('f_initiator_role'), f_initiator_party_id=job_data.get( 'f_initiator_party_id'), f_runtime_conf=job_data.get('f_runtime_conf'), f_work_mode=job_data.get('f_work_mode'), f_dsl=job_data.get('f_dsl'), f_train_runtime_conf=job_data.get( 'f_train_runtime_conf'), f_size=self.get_model_size(), f_job_status=job_data.get('f_status')) schedule_logger(self.job_id).info( 'save {} model info done. model id: {}, model version: {}.' .format(self.job_id, self.model_id, self.model_version)) else: schedule_logger(self.job_id).info( 'save {} model info failed, no job found in db. ' 'model id: {}, model version: {}.'.format( self.job_id, self.model_id, self.model_version)) else: schedule_logger(self.job_id).info( 'model {} info has already existed in database.'.format( self.job_id)) except Exception as e: schedule_logger(self.job_id).exception(e)