Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -107,15 +107,7 @@ def get_projects_for_supervisor(supervisor_name):
|
|
| 107 |
print(f"⚠️ Error fetching project: {e}")
|
| 108 |
return ""
|
| 109 |
|
| 110 |
-
|
| 111 |
-
try:
|
| 112 |
-
obj_desc = getattr(sf, object_name).describe()
|
| 113 |
-
return field_name in [field['name'] for field in obj_desc['fields']]
|
| 114 |
-
except Exception as e:
|
| 115 |
-
print(f"⚠️ Error checking field {field_name}: {e}")
|
| 116 |
-
return False
|
| 117 |
-
|
| 118 |
-
# Function to generate Salesforce dashboard URL (Visualforce Page)
|
| 119 |
def generate_salesforce_dashboard_url(supervisor_name, project_id):
|
| 120 |
return f"https://aicoachforsitesupervisors-dev-ed--c.develop.vf.force.com/apex/DashboardPage?supervisorName={supervisor_name}&projectId={project_id}"
|
| 121 |
|
|
@@ -124,7 +116,7 @@ def open_dashboard(role, supervisor_name, project_id):
|
|
| 124 |
dashboard_url = generate_salesforce_dashboard_url(supervisor_name, project_id)
|
| 125 |
return f'<a href="{dashboard_url}" target="_blank" rel="noopener noreferrer" style="font-size:16px;">Open Salesforce Dashboard</a>'
|
| 126 |
|
| 127 |
-
# Function to generate
|
| 128 |
def generate_outputs(role, supervisor_name, project_id, milestones, reflection):
|
| 129 |
if not all([role, supervisor_name, project_id, milestones, reflection]):
|
| 130 |
return "❗ Please fill all fields.", ""
|
|
@@ -141,7 +133,7 @@ def generate_outputs(role, supervisor_name, project_id, milestones, reflection):
|
|
| 141 |
with torch.no_grad():
|
| 142 |
outputs = model.generate(
|
| 143 |
inputs['input_ids'],
|
| 144 |
-
max_new_tokens=150,
|
| 145 |
no_repeat_ngram_size=2,
|
| 146 |
do_sample=True,
|
| 147 |
top_p=0.9,
|
|
@@ -161,7 +153,6 @@ def generate_outputs(role, supervisor_name, project_id, milestones, reflection):
|
|
| 161 |
checklist = extract_between(result, "Checklist:\n", "Suggestions:")
|
| 162 |
suggestions = extract_between(result, "Suggestions:\n", None)
|
| 163 |
|
| 164 |
-
# Fallback generation
|
| 165 |
if not checklist.strip():
|
| 166 |
checklist = generate_fallback_checklist(role, milestones)
|
| 167 |
if not suggestions.strip():
|
|
@@ -169,7 +160,7 @@ def generate_outputs(role, supervisor_name, project_id, milestones, reflection):
|
|
| 169 |
|
| 170 |
return checklist, suggestions
|
| 171 |
|
| 172 |
-
# Fallback
|
| 173 |
def generate_fallback_checklist(role, milestones):
|
| 174 |
checklist_items = []
|
| 175 |
if milestones:
|
|
@@ -189,7 +180,7 @@ def generate_fallback_suggestions(reflection):
|
|
| 189 |
suggestions_items.append("- Monitor team coordination")
|
| 190 |
return "\n".join(suggestions_items)
|
| 191 |
|
| 192 |
-
# Function to generate
|
| 193 |
def generate_pdf_report(supervisor_name, project_id, checklist, suggestions):
|
| 194 |
file_path = f"reports/{supervisor_name}_{project_id}_report.pdf"
|
| 195 |
buffer = BytesIO()
|
|
@@ -213,7 +204,7 @@ def generate_pdf_report(supervisor_name, project_id, checklist, suggestions):
|
|
| 213 |
f.write(buffer.read())
|
| 214 |
return file_path
|
| 215 |
|
| 216 |
-
# Function to generate
|
| 217 |
def generate_csv_report(supervisor_name, project_id, checklist, suggestions):
|
| 218 |
file_path = f"reports/{supervisor_name}_{project_id}_report.csv"
|
| 219 |
data = {
|
|
|
|
| 107 |
print(f"⚠️ Error fetching project: {e}")
|
| 108 |
return ""
|
| 109 |
|
| 110 |
+
# New function to generate Salesforce dashboard URL (Visualforce Page)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 111 |
def generate_salesforce_dashboard_url(supervisor_name, project_id):
|
| 112 |
return f"https://aicoachforsitesupervisors-dev-ed--c.develop.vf.force.com/apex/DashboardPage?supervisorName={supervisor_name}&projectId={project_id}"
|
| 113 |
|
|
|
|
| 116 |
dashboard_url = generate_salesforce_dashboard_url(supervisor_name, project_id)
|
| 117 |
return f'<a href="{dashboard_url}" target="_blank" rel="noopener noreferrer" style="font-size:16px;">Open Salesforce Dashboard</a>'
|
| 118 |
|
| 119 |
+
# Function to generate day-by-day tasks
|
| 120 |
def generate_outputs(role, supervisor_name, project_id, milestones, reflection):
|
| 121 |
if not all([role, supervisor_name, project_id, milestones, reflection]):
|
| 122 |
return "❗ Please fill all fields.", ""
|
|
|
|
| 133 |
with torch.no_grad():
|
| 134 |
outputs = model.generate(
|
| 135 |
inputs['input_ids'],
|
| 136 |
+
max_new_tokens=150,
|
| 137 |
no_repeat_ngram_size=2,
|
| 138 |
do_sample=True,
|
| 139 |
top_p=0.9,
|
|
|
|
| 153 |
checklist = extract_between(result, "Checklist:\n", "Suggestions:")
|
| 154 |
suggestions = extract_between(result, "Suggestions:\n", None)
|
| 155 |
|
|
|
|
| 156 |
if not checklist.strip():
|
| 157 |
checklist = generate_fallback_checklist(role, milestones)
|
| 158 |
if not suggestions.strip():
|
|
|
|
| 160 |
|
| 161 |
return checklist, suggestions
|
| 162 |
|
| 163 |
+
# Fallback checklist and suggestions generation
|
| 164 |
def generate_fallback_checklist(role, milestones):
|
| 165 |
checklist_items = []
|
| 166 |
if milestones:
|
|
|
|
| 180 |
suggestions_items.append("- Monitor team coordination")
|
| 181 |
return "\n".join(suggestions_items)
|
| 182 |
|
| 183 |
+
# Function to generate the PDF report
|
| 184 |
def generate_pdf_report(supervisor_name, project_id, checklist, suggestions):
|
| 185 |
file_path = f"reports/{supervisor_name}_{project_id}_report.pdf"
|
| 186 |
buffer = BytesIO()
|
|
|
|
| 204 |
f.write(buffer.read())
|
| 205 |
return file_path
|
| 206 |
|
| 207 |
+
# Function to generate CSV report
|
| 208 |
def generate_csv_report(supervisor_name, project_id, checklist, suggestions):
|
| 209 |
file_path = f"reports/{supervisor_name}_{project_id}_report.csv"
|
| 210 |
data = {
|