diff --git a/scripts/jyotish_api_server.py b/scripts/jyotish_api_server.py index 232c4e96..43a1e8c9 100644 --- a/scripts/jyotish_api_server.py +++ b/scripts/jyotish_api_server.py @@ -2805,10 +2805,12 @@ class JyotishAPIHandler(BaseHTTPRequestHandler): if not isinstance(item, dict): raise BadRequest('evidence items must be objects') strength = strength_map.get(str(item.get('strength', 'moderate')).strip().lower(), report_orchestrator.StrengthLevel.MODERATE) + technique = str(item.get('technique') or f'{theme.value}_evidence_{index + 1}') + conclusion_limit = 4000 if technique.endswith('-strict-narrative') else 800 results.append(report_orchestrator.TechniqueResult( - technique=str(item.get('technique') or f'{theme.value}_evidence_{index + 1}')[:80], + technique=technique[:80], chart=str(item.get('chart') or 'D1')[:24], - conclusion=str(item.get('conclusion') or item.get('summary') or '未提供结论')[:800], + conclusion=str(item.get('conclusion') or item.get('summary') or '未提供结论')[:conclusion_limit], sentiment=str(item.get('sentiment') or 'neutral').strip().lower(), strength=strength, details=item.get('details') if isinstance(item.get('details'), dict) else {}, @@ -3377,10 +3379,11 @@ class JyotishAPIHandler(BaseHTTPRequestHandler): return items def _theme_evidence(self, technique, chart, conclusion, sentiment, strength, *, source, details=None): + conclusion_limit = 4000 if str(technique).endswith('-strict-narrative') else 800 return { 'technique': technique, 'chart': chart, - 'conclusion': str(conclusion)[:800], + 'conclusion': str(conclusion)[:conclusion_limit], 'sentiment': sentiment, 'strength': strength, 'details': {