Commit ·
3a6445b
1
Parent(s): d045bbd
Fix: Humanize responses - increase tokens to 120, persist language override across turns
Browse files- app/agents/orchestrator.py +17 -0
- app/agents/persona_engine.py +1 -1
app/agents/orchestrator.py
CHANGED
|
@@ -417,6 +417,10 @@ class HoneypotOrchestrator:
|
|
| 417 |
if persona:
|
| 418 |
# Ensure the dict has the key so persona_engine knows which one it is
|
| 419 |
persona = {**persona, "selected_persona_key": existing_persona_key}
|
|
|
|
|
|
|
|
|
|
|
|
|
| 420 |
self.logger.info(f"PERSONA LOCKED: Reusing {existing_persona_key}", session_id=conv_id)
|
| 421 |
|
| 422 |
if not ctx.persona_locked:
|
|
@@ -445,11 +449,20 @@ class HoneypotOrchestrator:
|
|
| 445 |
|
| 446 |
# [FIX] LANGUAGE OVERRIDE: Apply GUVI request language to persona
|
| 447 |
# This ensures responses match the requested language (English/Hindi/Hinglish)
|
|
|
|
| 448 |
if request_language and persona:
|
| 449 |
original_lang = persona.get("language", "hinglish")
|
| 450 |
persona["language"] = request_language
|
| 451 |
persona["original_language"] = original_lang # Preserve for debugging
|
|
|
|
|
|
|
|
|
|
| 452 |
self.logger.info(f"Language override: {original_lang} -> {request_language}", session_id=conv_id)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 453 |
|
| 454 |
# [LIFECYCLE] Recalculate finalization state based on newly extracted intel
|
| 455 |
# This ensures that if we just captured a UPI ID, we trigger XAI immediately.
|
|
@@ -637,6 +650,10 @@ class HoneypotOrchestrator:
|
|
| 637 |
agg_intel = ctx.session.get("aggregated_intelligence", {})
|
| 638 |
if agg_intel.get("metadata_agitation_reason"):
|
| 639 |
intelligence["metadata_agitation_reason"] = [agg_intel["metadata_agitation_reason"]]
|
|
|
|
|
|
|
|
|
|
|
|
|
| 640 |
|
| 641 |
await self.conversation_manager.update(
|
| 642 |
conversation_id=conv_id,
|
|
|
|
| 417 |
if persona:
|
| 418 |
# Ensure the dict has the key so persona_engine knows which one it is
|
| 419 |
persona = {**persona, "selected_persona_key": existing_persona_key}
|
| 420 |
+
# Apply stored language from session to preserve language override
|
| 421 |
+
stored_lang = conversation.get("aggregated_intelligence", {}).get("request_language")
|
| 422 |
+
if stored_lang:
|
| 423 |
+
persona["language"] = stored_lang
|
| 424 |
self.logger.info(f"PERSONA LOCKED: Reusing {existing_persona_key}", session_id=conv_id)
|
| 425 |
|
| 426 |
if not ctx.persona_locked:
|
|
|
|
| 449 |
|
| 450 |
# [FIX] LANGUAGE OVERRIDE: Apply GUVI request language to persona
|
| 451 |
# This ensures responses match the requested language (English/Hindi/Hinglish)
|
| 452 |
+
# Also persist language in session for subsequent turns with persona lock
|
| 453 |
if request_language and persona:
|
| 454 |
original_lang = persona.get("language", "hinglish")
|
| 455 |
persona["language"] = request_language
|
| 456 |
persona["original_language"] = original_lang # Preserve for debugging
|
| 457 |
+
# Store in session for persistence
|
| 458 |
+
if ctx and hasattr(ctx, "session") and ctx.session:
|
| 459 |
+
ctx.session["request_language"] = request_language
|
| 460 |
self.logger.info(f"Language override: {original_lang} -> {request_language}", session_id=conv_id)
|
| 461 |
+
elif ctx and hasattr(ctx, "session") and ctx.session:
|
| 462 |
+
# Restore language from session if not in current request
|
| 463 |
+
stored_lang = ctx.session.get("request_language")
|
| 464 |
+
if stored_lang and persona:
|
| 465 |
+
persona["language"] = stored_lang
|
| 466 |
|
| 467 |
# [LIFECYCLE] Recalculate finalization state based on newly extracted intel
|
| 468 |
# This ensures that if we just captured a UPI ID, we trigger XAI immediately.
|
|
|
|
| 650 |
agg_intel = ctx.session.get("aggregated_intelligence", {})
|
| 651 |
if agg_intel.get("metadata_agitation_reason"):
|
| 652 |
intelligence["metadata_agitation_reason"] = [agg_intel["metadata_agitation_reason"]]
|
| 653 |
+
|
| 654 |
+
# 🔥 LANGUAGE PERSISTENCE: Store request language for persona lock on subsequent turns
|
| 655 |
+
if request_language:
|
| 656 |
+
intelligence["request_language"] = request_language
|
| 657 |
|
| 658 |
await self.conversation_manager.update(
|
| 659 |
conversation_id=conv_id,
|
app/agents/persona_engine.py
CHANGED
|
@@ -1022,7 +1022,7 @@ class PersonaEngine:
|
|
| 1022 |
prompt=formatted_prompt,
|
| 1023 |
role=ModelRole.FAST_CHAT,
|
| 1024 |
temperature=0.9,
|
| 1025 |
-
max_tokens=
|
| 1026 |
context=context
|
| 1027 |
)
|
| 1028 |
|
|
|
|
| 1022 |
prompt=formatted_prompt,
|
| 1023 |
role=ModelRole.FAST_CHAT,
|
| 1024 |
temperature=0.9,
|
| 1025 |
+
max_tokens=120, # Increased for more natural responses
|
| 1026 |
context=context
|
| 1027 |
)
|
| 1028 |
|