LIA: historial de conversación y prompt que no fuerza brevedad

Cada pregunta se enviaba sola, sin los intercambios previos, así que un
seguimiento del tipo "¿y de esos cuántos en la mañana?" no tenía contexto.
Ahora el dashboard acumula los últimos 4 intercambios y los envía; el
backend los valida y antepone a la pregunta actual (recortados para no
inflar el consumo).

El prompt pedía "responde de forma concisa" en todos los casos, lo que
sumado al tope de tokens producía respuestas cortadas. Ahora ajusta el
detalle a lo que pide la pregunta y sabe que tiene historial disponible.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-08-03 15:03:43 -05:00
co-authored by Claude Opus 5
parent b1a8b1abf8
commit 25a099c6ef
2 changed files with 24 additions and 6 deletions
+6 -1
View File
@@ -393,6 +393,7 @@ const API = '<?= BASE_URL ?>modules/turnero/api/';
const BASE_WA = '<?= BASE_URL ?>';
let _turnos = []; // cache para búsqueda local
let _autoReloadId = null;
let _liaHistorial = []; // últimos intercambios con LIA (contexto de seguimiento)
// ── Entrada ──────────────────────────────────────────────────
document.addEventListener('DOMContentLoaded', () => {
@@ -874,13 +875,17 @@ async function enviarIA() {
const res = await fetch(`${API}ai_chat.php`, {
method: 'POST',
headers: {'Content-Type':'application/json'},
body: JSON.stringify({ pregunta }),
body: JSON.stringify({ pregunta, historial: _liaHistorial }),
});
const d = await res.json();
typing.className = 'ai-msg bot';
if (d.ok) {
typing.innerHTML = mdToHtml(d.respuesta);
hablarIA(d.respuesta);
// Guardar el intercambio para que las preguntas de seguimiento tengan contexto
_liaHistorial.push({ rol: 'user', texto: pregunta });
_liaHistorial.push({ rol: 'model', texto: d.respuesta });
if (_liaHistorial.length > 8) _liaHistorial = _liaHistorial.slice(-8);
if (d.tokens_max) _actualizarTokens(d.tokens_usados, d.tokens_max);
} else {
typing.textContent = d.error || 'Error al conectar con la IA';