improved on sops generations on questions and added bot suggestion

This commit is contained in:
2024-09-16 23:38:33 +00:00
parent cd8f499f97
commit 47a274741f
10 changed files with 228 additions and 21 deletions
+4 -2
View File
@@ -32,7 +32,7 @@ def generate_questions_from_sop():
input_data = request.get_json()
# Validate required fields
required_fields = ['sops', 'assessment_type', 'frequency_type', 'duration']
required_fields = ['sops', 'assessment_type', 'frequency_type', 'duration',"roles_data"]
for field in required_fields:
if field not in input_data:
return jsonify({"error": "Missing data", "message": f"'{field}' is required."}), 400
@@ -43,13 +43,15 @@ def generate_questions_from_sop():
assessment_type = input_data['assessment_type']
frequency_type = input_data['frequency_type']
duration = input_data['duration']
roles_data = input_data["roles_data"]
# Prepare the data for the generator
generator_input = {
"sops": json.dumps(sops), # Convert SOPs to JSON string
"assessment_type": assessment_type,
"frequency_type": frequency_type,
"duration": duration
"duration": duration,
"roles_data":roles_data
}
# Call the generator to create questions
+27 -1
View File
@@ -19,7 +19,7 @@ def allowed_file(filename):
"""Check if the file has an allowed extension."""
return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS
@sops_bp.route('/personal_assessment/get_roles', methods=['POST'])
@sops_bp.route('/personal_assessment/get_roles_from_doc', methods=['POST'])
def get_roles():
# Check if the post request has the file part
if 'document' not in request.files:
@@ -62,6 +62,29 @@ def get_roles():
@sops_bp.route('/personal_assessment/get_roles_from_questionnaire', methods=['POST'])
def get_roles_questionnaire():
# Check if the post request has the file part
questionnaire_data = request.json
# Validate the required fields in the questionnaire data
if not questionnaire_data.get('vision') or not questionnaire_data.get('roles') or not questionnaire_data.get('responsibilities'):
return jsonify({
"error": "Missing required fields",
"message": "Please provide 'vision', 'roles', and 'responsibilities' in the request body."
}), 400
generator = SopPersonalAssessment()
roles = generator.generate_roles_from_questionnaire(questionnaire_data)
if not roles:
return jsonify({"error": "No roles found", "message": "No roles were extracted from the questionnaire."}), 404
return jsonify({"roles": roles, "message": "Roles successfully extracted from the questionnaire."}), 200
@sops_bp.route('/personal_assessment/generate_sops_from_doc', methods=['POST'])
def generate_sops():
@@ -180,6 +203,8 @@ def generate_sops_by_roles_and_areas():
@sops_bp.route('/executive/generate_sop_mission_from_vision', methods=['POST'])
def generate_executive_sops_from_doc():
"""
@@ -411,6 +436,7 @@ def get_roles_for_reference_workers():
return jsonify({"error": "Processing error", "message": f"An error occurred while processing the request: {str(e)}"}), 500
@sops_bp.route('/manager/generate_sop_workers_doc', methods=['POST'])
def generate_sop_workers_doc():
try: