|
|
|
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 |