added bot prediction for assessments

This commit is contained in:
2024-09-14 01:50:41 +00:00
parent 45bc62c745
commit cd8f499f97
14 changed files with 698 additions and 22 deletions
+132 -1
View File
@@ -1,3 +1,5 @@
def validate_worker_prompt() -> str:
return """
You are a worker in the company "Validate" where you are asked a specific yes or no question:
@@ -15,4 +17,133 @@ def validate_worker_prompt() -> str:
result:"validated"
}
"""
def predict_based_past_assessment_prompt(query,company_info, summary_stats):
# Extract company information from the dictionary
company_name = company_info['company_name']
company_size = company_info['company_size']
departments = company_info['departments']
# Create the prompt with the provided company info and summary statistics
prompt = f"""
**Prompt for the Chatbot:**
**Context:**
You are an AI assistant working for {company_name}, and your primary responsibility is to provide **insights**, **predictions**, and **recommendations** based on the company's past assessment data and organizational structure. You are not allowed to respond to any queries outside of this domain.
**General Company Information:**
- **Company Name**: {company_name}
- **Company Size**: {company_size} (e.g., Small, Medium, Large)
- **Departments**:
{', '.join(departments)}
**Assessment Summary**:
The following is a detailed summary of past assessments at {company_name}. Use this information to provide predictions and recommendations based on trends and data points.
- **Open Items and Red Flags**:
- Total Open Items: {summary_stats['Open Items and Red Flags']['Total Open Items']}
- Average Open Items per Assessment: {summary_stats['Open Items and Red Flags']['Average Open Items per Assessment']}
- Total Red Flags: {summary_stats['Open Items and Red Flags']['Total Red Flags']}
- Average Red Flags per Assessment: {summary_stats['Open Items and Red Flags']['Average Red Flags per Assessment']}
- Max Red Flags in a Single Assessment: {summary_stats['Open Items and Red Flags']['Max Red Flags in a Single Assessment']}
- Most Common Area with Red Flags: {summary_stats['Open Items and Red Flags']['Most Common Area with Red Flags']}
- **Assessment Frequency**:
- Weekly: {summary_stats['Assessment Frequency']['Assessment Type Breakdown'].get('Weekly', 0) * 100}%
- Bi-Weekly: {summary_stats['Assessment Frequency']['Assessment Type Breakdown'].get('Bi-Weekly', 0) * 100}%
- Quarterly: {summary_stats['Assessment Frequency']['Assessment Type Breakdown'].get('Quarterly', 0) * 100}%
- Average Time Between Assessments: {summary_stats['Assessment Frequency']['Average Time Between Assessments']} days
- Average Assessment Duration: {summary_stats['Assessment Frequency']['Average Assessment Duration']} days
- **Assessment Start and End Dates**:
- Longest Assessment Duration: {summary_stats['Assessment Start and End Dates']['Longest Assessment Duration (days)']} days
- Shortest Assessment Duration: {summary_stats['Assessment Start and End Dates']['Shortest Assessment Duration (days)']} days
- **Assessment Areas**:
- Most Assessed Area: {summary_stats['Assessment Areas']['Most Assessed Area']}
- Most Open Items in Area: {summary_stats['Assessment Areas']['Most Open Items in Area']}
- Area with Most Red Flags: {summary_stats['Assessment Areas']['Area with Most Red Flags']}
- **Assessment Status**:
- Completed: {summary_stats['Assessment Status']['Assessment Status Distribution'].get('Completed', 0) * 100}%
- In Progress: {summary_stats['Assessment Status']['Assessment Status Distribution'].get('In Progress', 0) * 100}%
- Incomplete: {summary_stats['Assessment Status']['Assessment Status Distribution'].get('Incomplete', 0) * 100}%
- **Assessment Admin**:
- Most Frequent Admin: {summary_stats['Assessment Admin']['Most Frequent Admin']}
- Admin with Fewest Red Flags: {summary_stats['Assessment Admin']['Admin with Fewest Red Flags']}
- Admin with Most Open Items: {summary_stats['Assessment Admin']['Admin with Most Open Items']}
**Instructions:**
Use the above information to answer user queries. You should:
- Analyze historical data to identify trends and problem areas.
- Predict potential outcomes for future assessments based on past performance (e.g., meeting deadlines, reducing red flags).
- Provide **actionable recommendations** that can help improve performance in future assessments.
**User Query**:
"{query}"
**Your Response**:
Predict and provide recommendations based on the companys historical data, focusing on the areas most relevant to the query. Ensure the response is based on past trends and performance issues.
**Examples of Insightful Responses**:
- "To improve your performance in the next assessment, you should focus on reducing red flags in the Communication department, as it has had the most issues."
- "Based on the company's past performance, there is a 70% chance that you will meet the deadline for the next weekly assessment. To ensure success, focus on completing open items in the IT department."
- "The data indicates that quarterly assessments have the highest rate of incomplete tasks. I recommend prioritizing quarterly assessment tasks to avoid falling behind."
"""
return prompt
def predict_next_n_assessments_prompt():
# Create the prompt with provided company info, summary statistics, and number of assessments (n)
prompt = """
**Prompt for the Chatbot:**
**Context:**
You are an AI assistant responsible for analyzing the past assessment data of , and your primary responsibility is to provide **predictions** for the next {n} assessments.
These assessments can occur on a **weekly**, **bi-weekly**, or **quarterly** basis. Use the company's past performance to predict the following for each of the next {n} assessments:
- **Number of Open Items**.
- **Number of Red Flags**.
- **Predictions for Weekly, Bi-Weekly, and Quarterly assessments**.
input :
- company basic info
- past assessment statitics
- N - number of next assessments to be predicted
**General Company Information:**
**Assessment Summary (Past Data)**:
The Detailed information on past asssessment will be provided. Use this information to make predictions for the next {n} assessments.
**Instructions**:
- Predict the number of open items and red flags for the next n assessments if they are conducted on a weekly, bi-weekly, or quarterly basis.
- Use the historical summary statistics provided above to guide your predictions.
- Return the response in the following JSON format:
**Response Format**:
{
"assessment 1": [
{
"weekly": {"open_items": X, "red_flags": Y}},
"biweekly": {{"open_items": X, "red_flags": Y}},
"quarterly": {{"open_items": X, "red_flags": Y}}
}
],
"assessment 2": [
{
"weekly": {"open_items": X, "red_flags": Y},
"biweekly": {"open_items": X, "red_flags": Y},
"quarterly": {"open_items": X, "red_flags": Y}
}
]
// assuming N is 2
}
```
Ensure each assessment is provided with three predictions: one for Weekly, one for Bi-Weekly, and one for Quarterly assessments.
"""
return prompt