perf: achica la ventana de historial de uMind (10 -> 6 mensajes)

Ese historial se reenvía completo en cada turno junto con el system prompt
y las tools — con Gemini como proveedor principal, sin acceso fácil a
caching de contexto (su API de caching no pasa por la capa de
compatibilidad OpenAI que usamos), la forma más directa de bajar el costo
por mensaje en charlas largas es mandar menos historial repetido.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-08-12 22:10:40 -05:00
co-authored by Claude Sonnet 5
parent 9dc44decd7
commit e0c2f77f8c
+5 -1
View File
@@ -244,7 +244,11 @@ func ProcessWidgetMessage(tenant *models.UmindTenant, sessionID, userText string
return "", fmt.Errorf("configuración de IA del tenant no encontrada: %w", err)
}
historial, _ := models.GetUmindHistorial(tenant.ID, sessionID, 10)
// Ventana chica a propósito: en cada turno se reenvía este historial
// completo al modelo junto con el system prompt y las tools — cuanto más
// larga la ventana, más tokens se repiten en cada mensaje de una charla
// larga. 6 alcanza para mantener contexto en un chat de soporte típico.
historial, _ := models.GetUmindHistorial(tenant.ID, sessionID, 6)
messages := []agentMessage{{Role: "system", Content: umindSystemPrompt(tenant)}}
for _, h := range historial {
messages = append(messages, agentMessage{Role: h.Role, Content: h.Content})