Isaac Quarenta commited on
Commit
f1f078c
·
1 Parent(s): a3e8a18

fix: preservar info de autor no ThinkingEngine para corrigir inversão de papéis

Browse files

- Mantém tags [autor], [↩ respondendo a X], [GRUPO autor] no STM
- Adiciona instruções de direção para evitar inversão quem-pergunta/quem-responde
- Corrige bug onde Kiami dizia 'Quer saber o quê?' em vez de 'Não vias contar mesmo'

Files changed (1) hide show
  1. modules/thinking_engine.py +21 -2
modules/thinking_engine.py CHANGED
@@ -320,12 +320,31 @@ class ThinkingEngine:
320
  sys_prompt += " NÃO diga 'não falei disso' — VERIFIQUE o STM completo antes de responder.\n"
321
  sys_prompt += " O STM contém TANTO mensagens do usuário QUANTO as suas respostas anteriores.\n"
322
  sys_prompt += " Antes de negar ter dito algo, PROCURE por [KIAMIA] no historico.\n"
 
 
 
323
  for msg in historico_recente[-40:]:
324
  if isinstance(msg, dict):
325
  role = msg.get('role', 'user')
326
  content = msg.get('content', '')
327
- prefix = f" [KIAMIA]" if role == 'assistant' else f" [{usuario}]"
328
- sys_prompt += f"{prefix}: {str(content)[:500]}\n"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
329
  else:
330
  sys_prompt += f" {str(msg)[:500]}\n"
331
  sys_prompt += "</SHORT_TERM_MEMORY>\n"
 
320
  sys_prompt += " NÃO diga 'não falei disso' — VERIFIQUE o STM completo antes de responder.\n"
321
  sys_prompt += " O STM contém TANTO mensagens do usuário QUANTO as suas respostas anteriores.\n"
322
  sys_prompt += " Antes de negar ter dito algo, PROCURE por [KIAMIA] no historico.\n"
323
+ sys_prompt += " 🔄 DIREÇÃO: Formato [autor] indica QUEM falou. [KIAMIA] = tu, [outro] = utilizador.\n"
324
+ sys_prompt += " Se o utilizador pergunta e tu respondes 'Não', e ele diz 'Ótimo', ele está a REAGIR à tua resposta.\n"
325
+ sys_prompt += " NÃO inverta os papéis — tu és quem responde, o utilizador é quem pergunta.\n"
326
  for msg in historico_recente[-40:]:
327
  if isinstance(msg, dict):
328
  role = msg.get('role', 'user')
329
  content = msg.get('content', '')
330
+ # 🔧 FIX: Preserve author info already in content from api.py
331
+ # Content may already be formatted as:
332
+ # "[author]: text" - user message with author
333
+ # "[GRUPO author]: text" - observed group message
334
+ # "[↩ respondendo a author]: text" - assistant responding to someone
335
+ # "[KIAMIA respondeu]: text" - assistant response
336
+ if role == 'assistant':
337
+ # Assistant messages - preserve existing tag or add KIAMIA tag
338
+ if content.startswith('[↩ respondendo a') or content.startswith('[KIAMIA'):
339
+ sys_prompt += f" {str(content)[:500]}\n"
340
+ else:
341
+ sys_prompt += f" [KIAMIA]: {str(content)[:500]}\n"
342
+ elif content.startswith('[') and ']: ' in content:
343
+ # Content already has author info - preserve it
344
+ sys_prompt += f" {str(content)[:500]}\n"
345
+ else:
346
+ # No author info - add user prefix
347
+ sys_prompt += f" [{usuario}]: {str(content)[:500]}\n"
348
  else:
349
  sys_prompt += f" {str(msg)[:500]}\n"
350
  sys_prompt += "</SHORT_TERM_MEMORY>\n"