Spaces:
Running
Running
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'
- 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 |
-
|
| 328 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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"
|