async def update_training_data_generator_status( request_data: TrainingDataGeneratorStatusModel, current_user: User = Depends(auth.get_current_user)): """ Update training data generator status """ try: TrainingDataGenerationProcessor.retreive_response_and_set_status( request_data, current_user.get_bot(), current_user.get_user()) except Exception as e: raise AppException(e) return {"message": "Status updated successfully!"}
async def get_latest_data_generation_status( current_user: User = Depends(auth.get_current_user), ): """ Fetches status for latest data generation request """ latest_data_generation_status = TrainingDataGenerationProcessor.fetch_latest_workload( current_user.get_bot(), current_user.get_user()) return {"data": latest_data_generation_status}
async def get_trainData_history( current_user: User = Depends(auth.get_current_user), ): """ Fetches File Data Generation history, when and who initiated the process """ file_history = TrainingDataGenerationProcessor.get_training_data_generator_history( current_user.get_bot()) return {"data": {"training_history": file_history}}
async def add_training_data(request_data: BulkTrainingDataAddRequest, current_user: User = Depends( auth.get_current_user)): """ Adds intents, training examples and responses along with story against the responses """ try: status, training_data_added = mongo_processor.add_training_data( training_data=request_data.training_data, bot=current_user.get_bot(), user=current_user.get_user(), is_integration=current_user.get_integration_status()) TrainingDataGenerationProcessor.update_is_persisted_flag( request_data.history_id, training_data_added) except Exception as e: raise AppException(e) return {"message": "Training data added successfully!", "data": status}
async def upload_file(background_tasks: BackgroundTasks, doc: UploadFile = File(...), current_user: User = Depends(auth.get_current_user)): """ Uploads document for training data generation and triggers event for intent creation """ TrainingDataGenerationProcessor.is_in_progress(current_user.get_bot()) TrainingDataGenerationProcessor.check_data_generation_limit( current_user.get_bot()) file_path = await Utility.upload_document(doc) TrainingDataGenerationProcessor.set_status( bot=current_user.get_bot(), user=current_user.get_user(), status=TRAINING_DATA_GENERATOR_STATUS.INITIATED.value, document_path=file_path) token = auth.create_access_token(data={"sub": current_user.email}) background_tasks.add_task(Utility.trigger_data_generation_event, current_user.get_bot(), current_user.get_user(), token.decode('utf8')) return { "message": "File uploaded successfully and training data generation has begun" }