Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
|
|
| 1 |
import gradio as gr
|
| 2 |
import logging
|
| 3 |
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
|
|
@@ -25,6 +26,7 @@ logger = logging.getLogger(__name__)
|
|
| 25 |
# Salesforce connection
|
| 26 |
def get_salesforce_connection():
|
| 27 |
try:
|
|
|
|
| 28 |
sf = Salesforce(
|
| 29 |
username=os.getenv("SF_USERNAME"),
|
| 30 |
password=os.getenv("SF_PASSWORD"),
|
|
@@ -72,7 +74,7 @@ app = FastAPI()
|
|
| 72 |
@app.post("/generate")
|
| 73 |
async def generate_checklist(data: ChecklistInput):
|
| 74 |
try:
|
| 75 |
-
logger.info(f"
|
| 76 |
inputs = f"Role: {data.role} Project: {data.project_id} ({data.project_name}) Milestones: {data.milestones}"
|
| 77 |
logger.info(f"Input for model: {inputs[:100]}...")
|
| 78 |
input_ids = tokenizer(inputs, return_tensors="pt", max_length=128, truncation=True).input_ids
|
|
@@ -96,6 +98,7 @@ async def generate_checklist(data: ChecklistInput):
|
|
| 96 |
'Daily_Checklist__c': '',
|
| 97 |
'Suggested_Tips__c': ''
|
| 98 |
})
|
|
|
|
| 99 |
update_data = {
|
| 100 |
'Daily_Checklist__c': checklist,
|
| 101 |
'Suggested_Tips__c': tips,
|
|
@@ -117,7 +120,7 @@ async def generate_checklist(data: ChecklistInput):
|
|
| 117 |
"kpi_flag": kpi_flag
|
| 118 |
}
|
| 119 |
except Exception as e:
|
| 120 |
-
logger.error(f"Error
|
| 121 |
return {"error": str(e)}
|
| 122 |
|
| 123 |
# Login and display records
|
|
@@ -169,6 +172,7 @@ def gradio_generate_checklist(record_id, role="Supervisor", project_id="Unknown"
|
|
| 169 |
'Daily_Checklist__c': '',
|
| 170 |
'Suggested_Tips__c': ''
|
| 171 |
})
|
|
|
|
| 172 |
inputs = f"Role: {role} Project: {project_id} ({project_name}) Milestones: {milestones}"
|
| 173 |
logger.info(f"Model input: {inputs[:100]}...")
|
| 174 |
input_ids = tokenizer(inputs, return_tensors="pt", max_length=128, truncation=True).input_ids
|
|
@@ -200,7 +204,9 @@ def gradio_generate_checklist(record_id, role="Supervisor", project_id="Unknown"
|
|
| 200 |
def get_logs():
|
| 201 |
try:
|
| 202 |
with open('app.log', 'r') as f:
|
| 203 |
-
|
|
|
|
|
|
|
| 204 |
except Exception as e:
|
| 205 |
logger.error(f"Error reading logs: {str(e)}")
|
| 206 |
return "No logs available."
|
|
@@ -226,7 +232,7 @@ with gr.Blocks() as iface:
|
|
| 226 |
role = gr.Textbox(label="Role", value="Supervisor")
|
| 227 |
project_id = gr.Textbox(label="Project ID", value="P001")
|
| 228 |
project_name = gr.Textbox(label="Project Name", value="Building A")
|
| 229 |
-
milestones = gr.Textbox(label="
|
| 230 |
supervisor_id = gr.Textbox(label="Supervisor ID (Salesforce User ID, optional)", value="")
|
| 231 |
project_id_sf = gr.Textbox(label="Project ID (Salesforce Project__c ID, optional)", value="")
|
| 232 |
reflection_log = gr.Textbox(label="Reflection Log (optional)", value="")
|
|
@@ -253,3 +259,4 @@ if __name__ == "__main__":
|
|
| 253 |
except Exception as e:
|
| 254 |
logger.error(f"Failed to launch Gradio interface: {str(e)}")
|
| 255 |
raise e
|
|
|
|
|
|
| 1 |
+
```python
|
| 2 |
import gradio as gr
|
| 3 |
import logging
|
| 4 |
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
|
|
|
|
| 26 |
# Salesforce connection
|
| 27 |
def get_salesforce_connection():
|
| 28 |
try:
|
| 29 |
+
logger.info("Attempting to connect to Salesforce")
|
| 30 |
sf = Salesforce(
|
| 31 |
username=os.getenv("SF_USERNAME"),
|
| 32 |
password=os.getenv("SF_PASSWORD"),
|
|
|
|
| 74 |
@app.post("/generate")
|
| 75 |
async def generate_checklist(data: ChecklistInput):
|
| 76 |
try:
|
| 77 |
+
logger.info(f"API request to /generate for project_id_sf: {data.project_id_sf}, record_id: {data.record_id}")
|
| 78 |
inputs = f"Role: {data.role} Project: {data.project_id} ({data.project_name}) Milestones: {data.milestones}"
|
| 79 |
logger.info(f"Input for model: {inputs[:100]}...")
|
| 80 |
input_ids = tokenizer(inputs, return_tensors="pt", max_length=128, truncation=True).input_ids
|
|
|
|
| 98 |
'Daily_Checklist__c': '',
|
| 99 |
'Suggested_Tips__c': ''
|
| 100 |
})
|
| 101 |
+
logger.info(f"Fetched record {data.record_id}: {existing_record}")
|
| 102 |
update_data = {
|
| 103 |
'Daily_Checklist__c': checklist,
|
| 104 |
'Suggested_Tips__c': tips,
|
|
|
|
| 120 |
"kpi_flag": kpi_flag
|
| 121 |
}
|
| 122 |
except Exception as e:
|
| 123 |
+
logger.error(f"Error in /generate endpoint: {str(e)}")
|
| 124 |
return {"error": str(e)}
|
| 125 |
|
| 126 |
# Login and display records
|
|
|
|
| 172 |
'Daily_Checklist__c': '',
|
| 173 |
'Suggested_Tips__c': ''
|
| 174 |
})
|
| 175 |
+
logger.info(f"Fetched record {record_id}: {existing_record}")
|
| 176 |
inputs = f"Role: {role} Project: {project_id} ({project_name}) Milestones: {milestones}"
|
| 177 |
logger.info(f"Model input: {inputs[:100]}...")
|
| 178 |
input_ids = tokenizer(inputs, return_tensors="pt", max_length=128, truncation=True).input_ids
|
|
|
|
| 204 |
def get_logs():
|
| 205 |
try:
|
| 206 |
with open('app.log', 'r') as f:
|
| 207 |
+
logs = f.read()
|
| 208 |
+
logger.info("Retrieved logs from app.log")
|
| 209 |
+
return logs
|
| 210 |
except Exception as e:
|
| 211 |
logger.error(f"Error reading logs: {str(e)}")
|
| 212 |
return "No logs available."
|
|
|
|
| 232 |
role = gr.Textbox(label="Role", value="Supervisor")
|
| 233 |
project_id = gr.Textbox(label="Project ID", value="P001")
|
| 234 |
project_name = gr.Textbox(label="Project Name", value="Building A")
|
| 235 |
+
milestones = gr.Textbox(label="Project ID (Salesforce Project__c ID, optional)", value="")
|
| 236 |
supervisor_id = gr.Textbox(label="Supervisor ID (Salesforce User ID, optional)", value="")
|
| 237 |
project_id_sf = gr.Textbox(label="Project ID (Salesforce Project__c ID, optional)", value="")
|
| 238 |
reflection_log = gr.Textbox(label="Reflection Log (optional)", value="")
|
|
|
|
| 259 |
except Exception as e:
|
| 260 |
logger.error(f"Failed to launch Gradio interface: {str(e)}")
|
| 261 |
raise e
|
| 262 |
+
```
|