|
|
| from typing import List, Dict, Tuple
|
| import data_models
|
| from rich.console import Console
|
|
|
| console = Console()
|
|
|
|
|
| FALLACY_THRESHOLD_LOW = 1
|
| FALLACY_THRESHOLD_MEDIUM = 0
|
|
|
|
|
| RHETORIC_THRESHOLD_HIGH = 5
|
| RHETORIC_THRESHOLD_MEDIUM = 2
|
|
|
| def generate_summary_ratings(
|
| components: List[data_models.ArgumentComponent],
|
| findings: List[data_models.Finding]
|
| ) -> Dict[str, str]:
|
| """
|
| Bulunan bileşenlere ve bulgulara göre basit özet değerlendirmeler üretir.
|
| (Kanıt değerlendirmesi kaldırıldı).
|
| """
|
| summary = {}
|
|
|
|
|
| fallacies = [f for f in findings if f.finding_type == "Fallacy"]
|
| num_fallacies = len(fallacies)
|
|
|
| if num_fallacies >= FALLACY_THRESHOLD_LOW:
|
| summary["Logical Soundness"] = "Low (Potential fallacies detected)"
|
| elif num_fallacies == FALLACY_THRESHOLD_MEDIUM:
|
| summary["Logical Soundness"] = "Medium (No obvious fallacies detected by current rules/model)"
|
| else:
|
| summary["Logical Soundness"] = "High (Potentially sound)"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| summary["Evidential Basis"] = "Not Evaluated"
|
|
|
|
|
|
|
| rhetorical_findings = [f for f in findings if f.finding_type == "RhetoricalDevice"]
|
| num_rhetoric = len(rhetorical_findings)
|
| if num_rhetoric >= RHETORIC_THRESHOLD_HIGH:
|
| summary["Rhetorical Clarity"] = "Questionable (High use of rhetorical devices detected)"
|
| elif num_rhetoric >= RHETORIC_THRESHOLD_MEDIUM:
|
| summary["Rhetorical Clarity"] = "Mixed (Some rhetorical devices detected)"
|
| else:
|
| summary["Rhetorical Clarity"] = "Appears Clear (Few rhetorical devices detected)"
|
|
|
|
|
| console.print(f" -> Synthesis engine generated summary ratings (Evidence analysis excluded).", style="dim")
|
| return summary |