lokeshloki143 commited on
Commit
8136580
·
verified ·
1 Parent(s): 70abb90

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +55 -51
app.py CHANGED
@@ -1,4 +1,4 @@
1
- import gradio as gr
2
  import torch
3
  from transformers import AutoModelForCausalLM, AutoTokenizer
4
  from simple_salesforce import Salesforce
@@ -6,6 +6,8 @@ import os
6
  from datetime import datetime
7
  import logging
8
 
 
 
9
  # Configure logging
10
  logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
11
  logger = logging.getLogger(__name__)
@@ -177,7 +179,7 @@ def fetch_and_process_salesforce_data():
177
  role = supervisor.get('Role__c', 'Supervisor')
178
 
179
  # Fetch other fields
180
- project_id = project.get('Name', '') # Use Name instead of Project_ID__c
181
  milestones = project.get('Milestones__c', 'No milestones')
182
 
183
  # Fetch Reflection from Supervisor_AI_Coaching__c
@@ -202,7 +204,7 @@ def fetch_and_process_salesforce_data():
202
  'Supervisor_ID__c': project.get('Supervisor__c', ''),
203
  'Daily_Checklist__c': checklist,
204
  'Suggested_Tips__c': suggestions,
205
- 'Motivational_Quote__c': quote, # Assumed field for Quote
206
  'Reflection_Log__c': reflection,
207
  'Last_Refresh_Date__c': datetime.utcnow().isoformat(),
208
  'Engagement_Score__c': 50 if checklist != 'Not generated.' else 0,
@@ -221,52 +223,54 @@ def fetch_and_process_salesforce_data():
221
  logger.error(f"Error processing Salesforce data: {e}")
222
  return f"Error processing Salesforce data: {e}"
223
 
224
- def create_interface():
225
- """Create Gradio interface for manual testing."""
226
- with gr.Blocks() as demo:
227
- gr.Markdown("### Construction Supervisor AI Coach")
228
- with gr.Row():
229
- role = gr.Dropdown(choices=["Supervisor", "Foreman", "Project Manager"], label="Role", value="Supervisor")
230
- project_id = gr.Textbox(label="Project ID", placeholder="e.g., PROJ-123")
231
- milestones = gr.Textbox(
232
- label="Milestones (comma-separated)",
233
- placeholder="e.g., Foundation complete, Framing started, Roof installed"
234
- )
235
- reflection = gr.Textbox(
236
- label="Reflection",
237
- lines=3,
238
- placeholder="e.g., Facing delays due to weather and equipment issues."
239
- )
240
- with gr.Row():
241
- submit = gr.Button("Generate")
242
- clear = gr.Button("Clear")
243
- sf_button = gr.Button("Process Salesforce Data")
244
- checklist_output = gr.Textbox(label="Checklist", lines=4)
245
- suggestions_output = gr.Textbox(label="Suggestions", lines=4)
246
- quote_output = gr.Textbox(label="Quote", lines=2)
247
- sf_output = gr.Textbox(label="Salesforce Processing Result", lines=2)
248
-
249
- submit.click(
250
- fn=generate_outputs,
251
- inputs=[role, project_id, milestones, reflection],
252
- outputs=[checklist_output, suggestions_output, quote_output]
253
- )
254
- clear.click(
255
- fn=lambda: ("Supervisor", "", "", ""),
256
- inputs=None,
257
- outputs=[role, project_id, milestones, reflection]
258
- )
259
- sf_button.click(
260
- fn=fetch_and_process_salesforce_data,
261
- inputs=None,
262
- outputs=sf_output
263
- )
264
-
265
- return demo
266
 
267
- if __name__ == "__main__":
268
- try:
269
- demo = create_interface()
270
- demo.launch(server_name="0.0.0.0", server_port=7860, share=False)
271
- except Exception as e:
272
- logger.error(f"Error launching Gradio interface: {e}")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from flask import Flask, render_template, request, redirect, url_for
2
  import torch
3
  from transformers import AutoModelForCausalLM, AutoTokenizer
4
  from simple_salesforce import Salesforce
 
6
  from datetime import datetime
7
  import logging
8
 
9
+ app = Flask(__name__)
10
+
11
  # Configure logging
12
  logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
13
  logger = logging.getLogger(__name__)
 
179
  role = supervisor.get('Role__c', 'Supervisor')
180
 
181
  # Fetch other fields
182
+ project_id = project.get('Name', '')
183
  milestones = project.get('Milestones__c', 'No milestones')
184
 
185
  # Fetch Reflection from Supervisor_AI_Coaching__c
 
204
  'Supervisor_ID__c': project.get('Supervisor__c', ''),
205
  'Daily_Checklist__c': checklist,
206
  'Suggested_Tips__c': suggestions,
207
+ 'Motivational_Quote__c': quote,
208
  'Reflection_Log__c': reflection,
209
  'Last_Refresh_Date__c': datetime.utcnow().isoformat(),
210
  'Engagement_Score__c': 50 if checklist != 'Not generated.' else 0,
 
223
  logger.error(f"Error processing Salesforce data: {e}")
224
  return f"Error processing Salesforce data: {e}"
225
 
226
+ @app.route('/', methods=['GET', 'POST'])
227
+ def index():
228
+ # Default values
229
+ role = "Supervisor"
230
+ project_id = ""
231
+ milestones = ""
232
+ reflection = ""
233
+ checklist = ""
234
+ suggestions = ""
235
+ quote = ""
236
+ sf_result = ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
237
 
238
+ if request.method == 'POST':
239
+ action = request.form.get('action')
240
+
241
+ if action == 'generate':
242
+ # Get form inputs
243
+ role = request.form.get('role', 'Supervisor')
244
+ project_id = request.form.get('project_id', '')
245
+ milestones = request.form.get('milestones', '')
246
+ reflection = request.form.get('reflection', '')
247
+
248
+ # Generate outputs
249
+ checklist, suggestions, quote = generate_outputs(role, project_id, milestones, reflection)
250
+
251
+ elif action == 'clear':
252
+ # Clear the form
253
+ role = "Supervisor"
254
+ project_id = ""
255
+ milestones = ""
256
+ reflection = ""
257
+ checklist = ""
258
+ suggestions = ""
259
+ quote = ""
260
+
261
+ elif action == 'process_salesforce':
262
+ # Process Salesforce data
263
+ sf_result = fetch_and_process_salesforce_data()
264
+
265
+ return render_template('index.html',
266
+ role=role,
267
+ project_id=project_id,
268
+ milestones=milestones,
269
+ reflection=reflection,
270
+ checklist=checklist,
271
+ suggestions=suggestions,
272
+ quote=quote,
273
+ sf_result=sf_result)
274
+
275
+ if __name__ == '__main__':
276
+ app.run(host='0.0.0.0', port=5000, debug=True)