Spaces:
Runtime error
Runtime error
| from flask import Flask, request, jsonify | |
| from transformers import pipeline | |
| from simple_salesforce import Salesforce | |
| import json | |
| import datetime | |
| app = Flask(__name__) | |
| # Initialize Hugging Face LLM for text generation | |
| # Using distilgpt2 instead of distilbert-base-uncased | |
| generator = pipeline('text-generation', model='distilgpt2') | |
| # Salesforce credentials (replace with your actual credentials) | |
| sf = Salesforce( | |
| username='your.email@example.com', # Replace with your Salesforce username | |
| password='mypassword', # Replace with your Salesforce password | |
| security_token='XXXXXXXXXXXXXXXXXXXXXXXX', # Replace with your security token | |
| domain='test' # Use 'login' for production org | |
| ) | |
| # Helper function to generate AI content | |
| def generate_ai_content(prompt): | |
| result = generator(prompt, max_length=100, num_return_sequences=1) | |
| return result[0]['generated_text'] | |
| # Endpoint to receive new project data from Salesforce | |
| def generate_coaching_data(): | |
| data = request.get_json() | |
| supervisor_id = data['supervisor_id'] | |
| project_id = data['project_id'] | |
| project_name = data['project_name'] | |
| milestones = data['milestones'] | |
| schedule = data['schedule'] | |
| # Generate AI content | |
| checklist_prompt = f"Generate a daily checklist for a site supervisor working on {project_name} with milestones: {milestones}" | |
| tips_prompt = f"Generate daily tips for a site supervisor on {project_name}" | |
| risk_prompt = f"Identify risks for {project_name} with schedule: {schedule}" | |
| performance_prompt = f"Generate performance trends for {project_name}" | |
| upcoming_prompt = f"List upcoming milestones for {project_name}" | |
| checklist = generate_ai_content(checklist_prompt) | |
| tips = generate_ai_content(tips_prompt) | |
| risks = generate_ai_content(risk_prompt) | |
| performance = generate_ai_content(performance_prompt) | |
| upcoming = generate_ai_content(upcoming_prompt) | |
| # Simulate task filters (in real-world, you'd parse the checklist) | |
| task_all = checklist | |
| task_pending = f"Pending: {checklist[:50]}" | |
| task_completed = "Completed: None" | |
| task_safety = f"Safety: Ensure PPE compliance" | |
| task_high_priority = f"High Priority: {checklist[:30]}" | |
| completion_rate = 75 # Simulated | |
| # Store AI-generated data in Salesforce | |
| sf.AI_Coaching_Data__c.create({ | |
| 'Supervisor_ID__c': supervisor_id, | |
| 'Project_ID__c': project_id, | |
| 'Daily_Checklist__c': checklist, | |
| 'Suggested_Tips__c': tips, | |
| 'Risk_Alerts__c': risks, | |
| 'Performance_Trends__c': performance, | |
| 'Upcoming_Milestones__c': upcoming, | |
| 'Completion_Rate__c': completion_rate, | |
| 'Task_Filter_All__c': task_all, | |
| 'Task_Filter_Pending__c': task_pending, | |
| 'Task_Filter_Completed__c': task_completed, | |
| 'Task_Filter_Safety__c': task_safety, | |
| 'Task_Filter_High_Priority__c': task_high_priority | |
| }) | |
| # Generate a report (simplified PDF link simulation) | |
| report_link = f"https://example.com/report_{project_id}.pdf" | |
| sf.Report_Download__c.create({ | |
| 'Supervisor_ID__c': supervisor_id, | |
| 'Project_ID__c': project_id, | |
| 'Download_Link__c': report_link, | |
| 'Report_Type__c': 'Performance' | |
| }) | |
| return jsonify({'status': 'success', 'message': 'Coaching data generated and stored'}) | |
| if __name__ == '__main__': | |
| app.run(host='0.0.0.0', port=8080) |