Update pages/02_Workflow_UI.py
Browse files- pages/02_Workflow_UI.py +40 -32
pages/02_Workflow_UI.py
CHANGED
|
@@ -421,40 +421,48 @@ with tab_spec:
|
|
| 421 |
|
| 422 |
stale = is_stale(assess_new, assess_hash0) or is_stale(plan_new, plan_hash0)
|
| 423 |
|
| 424 |
-
#
|
| 425 |
-
|
| 426 |
-
|
| 427 |
-
|
| 428 |
-
|
| 429 |
-
|
| 430 |
-
|
| 431 |
-
|
| 432 |
-
|
| 433 |
-
|
| 434 |
-
|
| 435 |
-
|
| 436 |
-
|
| 437 |
-
|
| 438 |
-
|
| 439 |
-
|
| 440 |
-
points = g.get("rationale", []) or []
|
| 441 |
-
_render_guideline_bullets(points)
|
| 442 |
-
if points:
|
| 443 |
-
store.update_case(selected, {"explainability": {"guideline_rationale": points}})
|
| 444 |
-
else:
|
| 445 |
-
if (not read_only) and (status == "submitted"):
|
| 446 |
-
if st.button("↻ Re-run Guidelines", key=f"rerun_{selected}"):
|
| 447 |
g = generate_guideline_rationale(assessment_text=assess_new, plan_text=plan_new)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 448 |
points = g.get("rationale", []) or []
|
| 449 |
-
|
| 450 |
-
|
| 451 |
-
|
| 452 |
-
|
| 453 |
-
|
| 454 |
-
})
|
| 455 |
-
|
| 456 |
-
|
| 457 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 458 |
|
| 459 |
st.divider()
|
| 460 |
|
|
|
|
| 421 |
|
| 422 |
stale = is_stale(assess_new, assess_hash0) or is_stale(plan_new, plan_hash0)
|
| 423 |
|
| 424 |
+
# ---------------------------------------------------------
|
| 425 |
+
# HARD GUARD: NEVER run guideline rationale before SOAP exists
|
| 426 |
+
# ---------------------------------------------------------
|
| 427 |
+
if _soap_is_empty(soap):
|
| 428 |
+
# Do nothing; skip guideline logic entirely
|
| 429 |
+
# (Prevents early 200-token LLM call)
|
| 430 |
+
pass
|
| 431 |
+
else:
|
| 432 |
+
# Guard: only show guideline rationale if we have SOAP content
|
| 433 |
+
if not _soap_is_empty(soap):
|
| 434 |
+
if not stale and (normalize_text(assess_new + plan_new)):
|
| 435 |
+
# Use stored bullets if available; else compute once and store
|
| 436 |
+
stored_points = (exp.get("guideline_rationale") or [])
|
| 437 |
+
if stored_points:
|
| 438 |
+
_render_guideline_bullets(stored_points)
|
| 439 |
+
else:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 440 |
g = generate_guideline_rationale(assessment_text=assess_new, plan_text=plan_new)
|
| 441 |
+
warn = (g.get("warning") or "").strip()
|
| 442 |
+
if warn:
|
| 443 |
+
st.info(warn)
|
| 444 |
+
try:
|
| 445 |
+
st.page_link("pages/01_RAG_Corpus_Prep.py", label="Open RAG Prep")
|
| 446 |
+
except Exception:
|
| 447 |
+
pass
|
| 448 |
points = g.get("rationale", []) or []
|
| 449 |
+
_render_guideline_bullets(points)
|
| 450 |
+
if points:
|
| 451 |
+
store.update_case(selected, {"explainability": {"guideline_rationale": points}})
|
| 452 |
+
else:
|
| 453 |
+
if (not read_only) and (status == "submitted"):
|
| 454 |
+
if st.button("↻ Re-run Guidelines", key=f"rerun_{selected}"):
|
| 455 |
+
g = generate_guideline_rationale(assessment_text=assess_new, plan_text=plan_new)
|
| 456 |
+
points = g.get("rationale", []) or []
|
| 457 |
+
store.update_case(selected, {
|
| 458 |
+
"explainability": {
|
| 459 |
+
"baseline": {"assessment_hash": text_hash(assess_new), "plan_hash": text_hash(plan_new)},
|
| 460 |
+
"guideline_rationale": points,
|
| 461 |
+
}
|
| 462 |
+
})
|
| 463 |
+
st.rerun()
|
| 464 |
+
else:
|
| 465 |
+
st.caption("Guideline rationale hidden after edits. Click **Re-run Guidelines** to refresh.")
|
| 466 |
|
| 467 |
st.divider()
|
| 468 |
|