def get_questions_prompt(): # Header part of the prompt, explaining the context prompt = """ You are generating a variable number of assessment questions for different assessment types, which can be daily, weekly, biweekly, etc. The assessment frequency and the specific frequency number should be taken into account when generating the questions. For a particular assessment, based on the type (e.g., daily, weekly, biweekly) and total duration (e.g., if it is weekly and the total duration is 6 weeks, generate at least 20 questions weekly for up to six weeks). Each question will be based on the SOPs of specific workers in different departments, and the questions should vary depending on the assessment frequency type and frequency number. The goal of the assessment is to focus on the progress of the tasks outlined in each worker's SOPs. Make sure each question is relevant to the worker's SOP, and attach a tag to each question indicating the topic area (e.g., communication, timeline, development). The questions should become more detailed or challenging as the assessment progresses over time and the question is If either the name or role of the assigned person is available in the SOP, use it to formulate the questions. Input: assessment type: (e.g., daily, weekly, biweekly) frequency type: (e.g., daily, weekly, biweekly) frequency number(the current week or frequency e.g if assessment is weekly and frequcny number is 2 , it means week 2): (e.g., day 3, week 2, biweekly 1) total duration: (e.g., 6 weeks, 12 days) SOPs of the assessment: roles_data e.g [{"position""test position","mame":"name of staff"}] Instructions: 1. Review the SOPs of the assessment and generate questions for the workers based on the frequency type, frequency number, and topic areas and roles data provided 2. Regardless of the assement type, always use 1,2,3 for the frequency numbering, nothing else 3. All questions are "yes" or "no" questions nothing extra and precise ,not long 4. Generate a total of at least 20 questions all rounda based on the sops and roles for each frequency number 5. make sure the questions are up to 20 for the current frequency NOTE: !!! MAKE SURE YOU CORRECTLY ATTACH "assigned_to" AS THE ID OF THE MEMBER OF THE ROLE AS STATED IN THE SOP. CHECK MEMBERS UNDER THE ROLE IN THE PROVIDED SOP AND USE THE CORRECT ID OF THE MEMBER, DO NOT USE MEMBER iD THAT IS NOT PROVIDED AS "assigned_to" pls !!! Example response: questions { "questions": [ { "frequency_number": "2", "questions": [ { "assigned_to": "id",----id of the member attached to the role, check the member unde the role and attacj the id here "role": "person role", "question": "e.g., Is the internal project team being followed according to the SOP?" "area_tag":"timeline", "postion":"person position" } ] ## up to at least 20 questions }, { "frequency_number": "3", "questions": [ { "assigned_to": "id",----id of the member attached to the role, check the member unde the role and attacj the id here "role": "person role", "question": "e.g., Have communication protocols been followed for the task at hand?". "area_tag":"communication", "position":"person position" } ## up to at least 20 questions ] } ] } """ return prompt def get_questions_prompt_v2(): prompt = """ You are tasked with generating assessment questions for workers based on their SOPs. These questions should vary by assessment type (daily, weekly, biweekly), frequency number (e.g., day 2, week 3), and total duration (e.g., 6 weeks). You are generating a variable number of assessment questions for different assessment types, which can be daily, weekly, biweekly, etc. The assessment frequency and the specific frequency number should be taken into account when generating the questions. For a particular assessment, based on the type (e.g., daily, weekly, biweekly) and total duration (e.g., if it is weekly and the total duration is 6 weeks, generate at least 20 questions weekly for up to six weeks). Each question will be based on the SOPs of specific workers in different departments, and the questions should vary depending on the assessment frequency type and frequency number. The goal of the assessment is to focus on the progress of the tasks outlined in each worker's SOPs. Make sure each question is relevant to the worker's SOP, and attach an area tag ID, aissgned_to ID, role ID, beacuse each role sop will the provided with area tags and member for that role, so questions should be generated based on that area The questions should become more detailed or challenging as the assessment progresses over time and the question is Guidelines: 1. Generate yes/no questions relevant to each worker's SOP based on their role. 2. Use frequency numbers as 1, 2, 3, etc., regardless of the type. 3. Tag each question with the provided topic area ID (e.g., 1, 2, 3, 4, 5). 4. Tag each question with the provided role ID (e.g., 1, 2, 3, 4, 5). 5. Tag each question with the provided assigned_to ID (the ID of the person in charge) (e.g., 1, 2, 3, 4, 5). 4. The questions should evolve in detail as assessments progress over time. 6. For example if ans assement_type is weekly and the duration is 4, this means we generate questions for 4 weeks , frequency_number 1 to top 4 using the sop and all data 7 For each frequency_number, generate at least 15 - 20 questions. Example response: { "questions": { "questions": [ { frequency_number: 1, items: [ { "area_tag": 5, "assigned_to": 8, "questions": "Has the content calendar been developed and shared with the team?", "role": 4 }, { } ] }, {      }         ] """ return prompt def get_questions_prompt_v3(): prompt = """ You are tasked with generating assessment questions for workers based on their SOPs. These questions should vary by assessment type (daily, weekly, biweekly), frequency number (e.g., day 2, week 3), and total duration (e.g., 6 weeks). INPUT: SOPS Guidelines: 1. Generate yes/no questions relevant to each worker's SOP based on their role. 2. Use frequency numbers as 1, 2, 3, etc., regardless of the type. 3. Tag each question with the provided topic area ID (e.g., 1, 2, 3, 4, 5). 4. Tag each question with the provided role ID (e.g., 1, 2, 3, 4, 5). 5. Tag each question with the provided assigned_to ID (the ID of the person in charge) (e.g., 1, 2, 3, 4, 5). 6. The questions should evolve in detail as assessments progress over time. 7. For each frequency_number, generate at least 15 - 20 questions. NOTE: !!! MAKE SURE YOU CORRECTLY ATTACH "assigned_to" AS THE ID OF THE MEMBER OF THE ROLE AS STATED IN THE SOP. CHECK MEMBERS UNDER THE ROLE IN THE PROVIDED SOP AND USE THE CORRECT ID OF THE MEMBER, DO NOT USE MEMBER iD THAT IS NOT PROVIDED AS "assigned_to" pls !!! Provide the response in the following JSON format: { "questions": { "questions": [ { "frequency_number": 1, "items": [ { "area_tag": id of the rea tag, "assigned_to": "id",----id of the member attached to the role, check the member unde the role and attacj the id here , "questions": "Has the content calendar been developed and shared with the team?", "role": 4"role id" in SOP }, ... ] }, ... ] } } """ return prompt def get_questions_prompt_v5(): prompt = """ Comprehensive Assessment Question Generation Methodology Objective: Generate a robust, long-term assessment framework for organizational performance evaluation, focusing on systematic and consistent monitoring of operational procedures. Strategic Design Principles: 1. Question Generation Framework: - Create a holistic set of assessment questions - Designed for sustained use across multiple assessment periods - Provides comprehensive organizational insight - Enables continuous performance tracking and improvement 2. Structural Requirements: a. Question Attributes: - Binary (Yes/No) response format - Directly mapped to specific organizational roles - Aligned with Standard Operating Procedures (SOPs) - Covers multiple performance dimensions b. Taxonomical Tagging: - area_tag: Precise topic/domain identifier - role: Specific organizational role classification - assigned_to: Exact responsible team member identifier 3. Question Design Criteria: a. Content Depth: - Reveal operational effectiveness - Uncover potential process improvements - Highlight compliance and procedural adherence - Capture nuanced performance indicators b. Evaluation Dimensions: - Operational efficiency - Quality control - Safety protocols - Procedural compliance - Resource utilization - Knowledge application - Risk management 4. Contextual Considerations: - Reflect current organizational structure - Adaptable to evolving operational landscapes - Maintain consistency in assessment approach - Support data-driven decision-making Tagging Requirements: - area_tag: Unique identifier for topic area - role: Corresponding role ID from SOP - assigned_to: Exact ID of specific team member responsible Output Specification: { "questions": { "items": [ { "area_tag": int, # Domain/Topic Identifier "area_name":str # Name of the area "assigned_to": str, # Responsible Member ID "questions": str, # Assessment Query "role": int # Organizational Role Identifier } ] } } Implementation Guidelines: - Develop questions that transcend mere compliance - Encourage reflective and proactive organizational learning - Ensure questions are clear, unambiguous, and actionable - Prioritize questions that drive continuous improvement Critical Mandate: Craft questions that are: - Precise and targeted - Aligned with organizational SOPs - Capable of revealing substantive operational insights - Supportive of strategic organizational objectives NOTE: Generate at least 25 questions and can be more depending on the structure of the sop NOTE: !!! MAKE SURE YOU CORRECTLY ATTACH "assigned_to" AS THE ID OF THE MEMBER OF THE ROLE AS STATED IN THE SOP. CHECK MEMBERS UNDER THE ROLE IN THE PROVIDED SOP AND USE THE CORRECT ID OF THE MEMBER, DO NOT USE MEMBER iD THAT IS NOT PROVIDED AS "assigned_to" pls FOLLOW THIS STRICTLY!!! NOTE: CHECK THE "role_id" UNDER THE PROVIDED SOP AND USE THE CORRECT ID OF THE ROLE, DO NOT USE OR FORMULATE "role_id" THAT IS NOT PROVIDED AS "role" pls FOLLOW THIS STRICTLY!!! NOTE: IF area tags is not provided for specicfic role SOPS, kindly formulate an area name based on the sop and make the area_tag null but forumlate rea name, only do this if area tags info is not provided for specific role sops NOTE: Use exactly the area names provided if available unless area tags is missing and you need to forumalate one """ return prompt