Medica_DecisionSupportAI / clarifier.py
Rajan Sharma
Create clarifier.py
f935214 verified
raw
history blame
1.23 kB
# clarifier.py
from __future__ import annotations
from typing import Dict, Any, List
def missing_inputs_questions(plan: Dict[str,Any], binding: Dict[str,Dict[str,Any]]) -> List[str]:
"""
For each required input in plan['requires'], if binding[name]['match'] is None or score too low,
produce a specific question asking for the exact data or where it lives.
"""
reqs = [r.get("input") or r.get("name") or "" for r in (plan.get("requires") or [])]
out: List[str] = []
for r in reqs:
b = binding.get(r, {})
if (not b) or (b.get("match") is None) or (float(b.get("score", 0.0)) < 0.46):
out.append(f"Where can I find **{r}** in your files (exact column name), or please provide its value?")
# Always end with planning constraints
if out:
out.append("Any constraints (time windows, cohorts, or routing/scheduling rules) I should apply?")
return out
def render_phase1_markdown(questions: List[str]) -> str:
if not questions:
return "**Clarification Questions**\n- No data gaps detected. Please confirm to proceed with analysis."
out = ["**Clarification Questions**"]
for q in questions:
out.append(f"- {q}")
return "\n".join(out)