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:
co-authored by
Claude Opus 5
parent
b1a8b1abf8
commit
25a099c6ef
@@ -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';
|
||||
|
||||
Reference in New Issue
Block a user