Spaces:
Sleeping
Sleeping
| # task_processing.py (Updated for new VerdictAI modes) | |
| # - Adds labels/headers for new modes introduced in app.py | |
| # - Keeps lightweight, post-processing-only behavior | |
| # - No redundant model calls (no extra Grok/GPT invocations) | |
| # - Safe default passthrough if a mode/task_type is unrecognized | |
| # Retained import in case you reference it elsewhere; not used here. | |
| from gpt_helpers import ask_gpt41_mini # noqa: F401 | |
| def _wrap(title: str, jurisdiction: str, content: str) -> str: | |
| """Minimal, consistent wrapper for returning labeled content.""" | |
| jur = f" ({jurisdiction})" if jurisdiction else "" | |
| return f"{title}{jur}:\n\n{content}" | |
| def process_task_response(task_type: str, grok_response: str, prompt: str, jurisdiction: str) -> str: | |
| """ | |
| Post-process Grok output for display/download. This function is intentionally lightweight: | |
| - No additional retrieval or model calls | |
| - Just adds consistent headings or minimal formatting per task type | |
| - Safe passthrough for unknown types | |
| """ | |
| tt = (task_type or "").lower() | |
| # Legacy/primary types | |
| if tt in ("case_law", "irac"): | |
| return _wrap("Case Law / IRAC Analysis", jurisdiction, grok_response) | |
| if tt == "statute": | |
| return _wrap("Statute Analysis", jurisdiction, grok_response) | |
| if tt == "document_creation": | |
| return _wrap("Final Document", jurisdiction, grok_response) | |
| if tt == "document_analysis": | |
| return _wrap("Document Analysis", jurisdiction, grok_response) | |
| if tt == "legal_strategy": | |
| return _wrap("Legal Strategy", jurisdiction, grok_response) | |
| # Existing misc types (kept for compatibility with any callers you might have) | |
| if tt == "analogical_reasoning": | |
| return _wrap("Analogical Reasoning", jurisdiction, grok_response) | |
| if tt in ("deposition_questions", "deposition_qs"): | |
| return _wrap("Deposition Questions", jurisdiction, grok_response) | |
| if tt == "verdict_predictor": | |
| return _wrap("Verdict Prediction", jurisdiction, grok_response) | |
| if tt == "damages_estimator": | |
| return _wrap("Damages Estimate", jurisdiction, grok_response) | |
| if tt == "pleading_validator": | |
| return _wrap("Pleading Validation", jurisdiction, grok_response) | |
| if tt == "legal_inbox": | |
| return _wrap("Legal Inbox Processing", jurisdiction, grok_response) | |
| if tt == "privilege_analyzer": | |
| return _wrap("Privilege/PII Analysis", jurisdiction, grok_response) | |
| if tt == "eli5": | |
| return _wrap("Plain-English Explanation", jurisdiction, grok_response) | |
| if tt == "workflow_template": | |
| return _wrap("Workflow Template", jurisdiction, grok_response) | |
| # New modes introduced in app.py | |
| if tt == "citation_check": | |
| return _wrap("Citation Check / Shepardizing-lite", jurisdiction, grok_response) | |
| if tt == "brief_builder": | |
| return _wrap("Brief Builder (IRAC Sections)", jurisdiction, grok_response) | |
| if tt in ("deposition_qa",): | |
| return _wrap("Deposition Q&A Generator", jurisdiction, grok_response) | |
| if tt == "checklist": | |
| return _wrap("Checklist & Red Flags", jurisdiction, grok_response) | |
| if tt == "comparative_law": | |
| return _wrap("Comparative Law", jurisdiction, grok_response) | |
| if tt == "client_summary": | |
| return _wrap("Client-Friendly Summary", jurisdiction, grok_response) | |
| if tt == "motion_skeleton": | |
| return _wrap("Motion Skeleton", jurisdiction, grok_response) | |
| if tt == "opposing_argument": | |
| return _wrap("Opposing Argument (Devil's Advocate)", jurisdiction, grok_response) | |
| if tt == "case_extractor": | |
| return _wrap("Case/Citation Extractor", jurisdiction, grok_response) | |
| if tt == "judge_style": | |
| return _wrap("Judge/County Style Adaptation", jurisdiction, grok_response) | |
| if tt == "general_qa": | |
| return _wrap("General Q&A", jurisdiction, grok_response) | |
| # Fallback passthrough | |
| return grok_response | |