| 123456789101112131415161718192021222324252627282930313233 |
- from typing import Any
- class CaseProfileBuilder:
- @staticmethod
- def build_profile(elements: dict[str, Any]) -> dict[str, Any]:
- cause = elements.get("case_cause", {})
- facts = elements.get("facts", {})
- claims = elements.get("claims", {})
- laws = elements.get("laws", [])
- profile = {
- "legal_dimension": {
- "dispute_focus": cause.get("type", "未识别"),
- "laws_count": len(laws),
- "laws": laws,
- },
- "fact_dimension": {
- "fact_clarity_score": 70 if facts else 30,
- "evidence_completeness_score": 65,
- "key_facts": facts,
- },
- "risk_dimension": {
- "claim_support_probability": 0.62 if claims else 0.35,
- "conflict_escalation_level": "中" if facts else "高",
- },
- "tags": [
- cause.get("type", "劳动争议"),
- "工资争议" if "工资" in str(cause) else "综合争议",
- "证据待补强" if len(laws) < 2 else "法条较充分",
- ],
- }
- return profile
|