profile_builder.py 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. from typing import Any
  2. class CaseProfileBuilder:
  3. @staticmethod
  4. def build_profile(elements: dict[str, Any]) -> dict[str, Any]:
  5. cause = elements.get("case_cause", {})
  6. facts = elements.get("facts", {})
  7. claims = elements.get("claims", {})
  8. laws = elements.get("laws", [])
  9. profile = {
  10. "legal_dimension": {
  11. "dispute_focus": cause.get("type", "未识别"),
  12. "laws_count": len(laws),
  13. "laws": laws,
  14. },
  15. "fact_dimension": {
  16. "fact_clarity_score": 70 if facts else 30,
  17. "evidence_completeness_score": 65,
  18. "key_facts": facts,
  19. },
  20. "risk_dimension": {
  21. "claim_support_probability": 0.62 if claims else 0.35,
  22. "conflict_escalation_level": "中" if facts else "高",
  23. },
  24. "tags": [
  25. cause.get("type", "劳动争议"),
  26. "工资争议" if "工资" in str(cause) else "综合争议",
  27. "证据待补强" if len(laws) < 2 else "法条较充分",
  28. ],
  29. }
  30. return profile