feat(fusion_accounting_followup): tone_selector service

Made-with: Cursor
This commit is contained in:
gsinghpal
2026-04-19 20:39:17 -04:00
parent 397fb238c5
commit 63f3e0ec14
5 changed files with 46 additions and 1 deletions

View File

@@ -1,3 +1,4 @@
from . import overdue_aging
from . import level_resolver
from . import risk_scorer
from . import tone_selector

View File

@@ -0,0 +1,18 @@
"""Tone selector: pick gentle/firm/legal based on follow-up level + risk score."""
TONE_BY_LEVEL = {
1: 'gentle',
2: 'firm',
3: 'legal',
4: 'legal',
}
def select_tone(*, level_sequence: int, risk_score: int = 0) -> str:
"""Default tone follows level sequence; high risk can escalate."""
base_tone = TONE_BY_LEVEL.get(level_sequence, 'gentle')
if risk_score >= 80 and base_tone == 'gentle':
return 'firm'
if risk_score >= 90 and base_tone == 'firm':
return 'legal'
return base_tone