ai_____app___4 / app.py
lokesh341's picture
Update app.py
1621ada verified
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
@app.route('/generate_coaching_data', methods=['POST'])
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)