Revue : etat des leviers joint a chaque constat, transmis au conseiller et historise
This commit is contained in:
@@ -35,7 +35,7 @@ const ctx = {
|
||||
jour: jourParis,
|
||||
revueDuJour,
|
||||
dejaRepondu,
|
||||
constats: aExaminer.map((c) => ({ code: c.code, texte: String(c.texte), contexte: String(c.contexte || '') })),
|
||||
constats: aExaminer.map((c) => ({ code: c.code, texte: String(c.texte), contexte: String(c.contexte || ''), etat: String(c.etat || '') })),
|
||||
};
|
||||
|
||||
const systemPrompt = [
|
||||
@@ -56,6 +56,11 @@ const systemPrompt = [
|
||||
'- Si tu ne vois pas de cause, dis « cause non identifiable avec ces donnees ».',
|
||||
'- Une piste fait au plus 280 caracteres, en francais, sans jargon inutile.',
|
||||
'- Le contexte est la raison publiee par le controleur au debut de l episode.',
|
||||
'- L etat donne les leviers a ce moment-la : consigne reseau, courant de charge max fixe',
|
||||
' par l ACM, mode de nuit (sans_edf : la voiture ne fait pas fermer EDF ; complete : elle',
|
||||
' charge sur EDF en HC), budget voiture sans EDF, SOC requis, cible du matin. Cherche la',
|
||||
' cause d abord dans ces leviers (un courant ACM bas, une consigne egale a la maison, un',
|
||||
' mode sans_edf avec budget 0 expliquent souvent le constat).',
|
||||
'',
|
||||
'Reponds UNIQUEMENT en JSON : {"pistes":[{"code":"<code du constat>","piste":"<texte>"}]}',
|
||||
].join('\n');
|
||||
@@ -63,7 +68,7 @@ const systemPrompt = [
|
||||
const userPrompt = [
|
||||
`Revue du ${jourParis}. ${aExaminer.length} constat(s) a examiner :`,
|
||||
'',
|
||||
...aExaminer.map((c, i) => `${i + 1}. code=${c.code}\n constat : ${c.texte}\n contexte : ${String(c.contexte || '(aucun)').slice(0, 400)}`),
|
||||
...aExaminer.map((c, i) => `${i + 1}. code=${c.code}\n constat : ${c.texte}\n contexte : ${String(c.contexte || '(aucun)').slice(0, 400)}\n etat : ${String(c.etat || '(inconnu)').slice(0, 600)}`),
|
||||
'',
|
||||
'JSON uniquement.',
|
||||
].join('\n');
|
||||
|
||||
@@ -54,7 +54,8 @@ for (const p of obj.pistes) {
|
||||
const c = parCode.get(code);
|
||||
if (!piste) { ecarter(code, '', 'piste vide'); continue; }
|
||||
if (!c) { ecarter(code, piste, 'code inconnu ou constat non a examiner'); continue; }
|
||||
const permis = new Set(nombres(`${c.texte} ${c.contexte}`));
|
||||
const permis = new Set(nombres(`${c.texte} ${c.contexte} ${c.etat || ''}`)
|
||||
.flatMap((n) => [n, String(Math.round(Number(n))), String(Math.round(Number(n) * 10) / 10)]));
|
||||
const inventes = nombres(piste).filter((n) => !permis.has(n));
|
||||
if (inventes.length) { ecarter(code, piste, `chiffre absent du constat : ${inventes.join(', ')}`); continue; }
|
||||
if (pistes.some((x) => x.code === code)) { ecarter(code, piste, 'doublon'); continue; }
|
||||
|
||||
Reference in New Issue
Block a user