La piste ne recopie plus le constat
Quand il n y a rien a signaler il n y a pas de piste, et le repli sur le constat faisait afficher la meme phrase deux fois de suite sur la carte — et serait parti en double dans la colonne `piste` de la table d observation, ou elle ne serait plus interrogeable pour rien. « [95%] rien a creuser » garde la confiance visible et dit la verite. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GwpFpy2aQ2rJok6tNQSbVj
This commit is contained in:
@@ -42,7 +42,11 @@ if (status === 'ok' && advice) {
|
||||
setText('input_text.evcs_advisor_constat', advice.constat);
|
||||
setText('input_text.evcs_advisor_gravite', advice.gravite);
|
||||
setText('input_text.evcs_advisor_ce_qui_cloche', advice.ceQuiCloche || 'rien de signale');
|
||||
setText('input_text.evcs_advisor_reason', `[${Math.round(advice.confidence * 100)}%] ${advice.piste || advice.constat}`);
|
||||
// Quand il n'y a rien a signaler il n'y a pas de piste, et recopier le
|
||||
// constat faisait afficher la meme phrase deux fois sur la carte — et
|
||||
// partir en double dans la colonne `piste` de la table d'observation.
|
||||
setText('input_text.evcs_advisor_reason',
|
||||
`[${Math.round(advice.confidence * 100)}%] ${advice.piste || 'rien a creuser'}`);
|
||||
|
||||
// Un observateur qui signale en permanence ne sert a rien : on compte le
|
||||
// VOLUME de signalements pour pouvoir le constater.
|
||||
|
||||
@@ -247,7 +247,7 @@
|
||||
-30
|
||||
],
|
||||
"parameters": {
|
||||
"jsCode": "// =====================================================\n// EVCS ADVISOR SHADOW V1 — BUILD_HA_CALLS\n// Écrit les helpers advisor_* + divergence + compteurs + logbook.\n// GARANTIE MODE OMBRE : ce node ne produit QUE des écritures vers\n// des entités advisor_* et le logbook. AUCUN switch, AUCUNE stratégie\n// réelle, AUCUNE commande borne. Ne pas ajouter d'autres entités ici.\n// =====================================================\n\nconst { status, detail, advice, modelUsed, context } = $input.first().json;\n\nfunction stampParis() {\n const p = new Intl.DateTimeFormat('fr-FR', {\n timeZone: 'Europe/Paris', day: '2-digit', month: '2-digit',\n hour: '2-digit', minute: '2-digit', hour12: false,\n }).formatToParts(new Date());\n const g = t => p.find(x => x.type === t)?.value || '';\n return `${g('day')}/${g('month')} ${g('hour')}:${g('minute')}`;\n}\n\nconst calls = [];\nfunction push(domain, service, data) {\n calls.push({ json: { domain, service, data } });\n}\nfunction setText(entity, value) {\n push('input_text', 'set_value', { entity_id: entity, value: (value ?? '').toString().slice(0, 250) });\n}\nfunction setNumber(entity, value) {\n push('input_number', 'set_value', { entity_id: entity, value });\n}\n\n// Statut + horodatage + modèle : écrits à CHAQUE run\nsetText('input_text.evcs_advisor_status', status + (detail ? `: ${detail}` : ''));\nsetText('input_text.evcs_advisor_last_run', stampParis());\nsetText('input_text.evcs_advisor_model', modelUsed);\n\nif (status === 'ok' && advice) {\n // Observation — la seule sortie desormais. Le conseiller ne planifie plus :\n // la planification est faite par le bilan, qui est calcule et mesure, et la\n // campagne du 12/09 a montre que lui demander les deux degradait les deux\n // (ecart de cible passe de 0 a 35 points sur certains cas des l ajout de la\n // mission d observation).\n setText('input_text.evcs_advisor_constat', advice.constat);\n setText('input_text.evcs_advisor_gravite', advice.gravite);\n setText('input_text.evcs_advisor_ce_qui_cloche', advice.ceQuiCloche || 'rien de signale');\n setText('input_text.evcs_advisor_reason', `[${Math.round(advice.confidence * 100)}%] ${advice.piste || advice.constat}`);\n\n // Un observateur qui signale en permanence ne sert a rien : on compte le\n // VOLUME de signalements pour pouvoir le constater.\n if (advice.gravite === 'aucune') {\n setNumber('input_number.evcs_advisor_agree_count', context.agreeCount + 1);\n } else {\n setNumber('input_number.evcs_advisor_diverge_count', context.divergeCount + 1);\n }\n\n push('logbook', 'log', {\n name: 'EVCS Advisor (observateur)',\n message: `[${advice.gravite}] ${advice.constat}`\n + (advice.ceQuiCloche ? ` || ${advice.ceQuiCloche}` : '')\n + (advice.piste ? ` || piste : ${advice.piste}` : ''),\n entity_id: 'input_text.evcs_advisor_constat',\n });\n}\n\nreturn calls;\n"
|
||||
"jsCode": "// =====================================================\n// EVCS ADVISOR SHADOW V1 — BUILD_HA_CALLS\n// Écrit les helpers advisor_* + divergence + compteurs + logbook.\n// GARANTIE MODE OMBRE : ce node ne produit QUE des écritures vers\n// des entités advisor_* et le logbook. AUCUN switch, AUCUNE stratégie\n// réelle, AUCUNE commande borne. Ne pas ajouter d'autres entités ici.\n// =====================================================\n\nconst { status, detail, advice, modelUsed, context } = $input.first().json;\n\nfunction stampParis() {\n const p = new Intl.DateTimeFormat('fr-FR', {\n timeZone: 'Europe/Paris', day: '2-digit', month: '2-digit',\n hour: '2-digit', minute: '2-digit', hour12: false,\n }).formatToParts(new Date());\n const g = t => p.find(x => x.type === t)?.value || '';\n return `${g('day')}/${g('month')} ${g('hour')}:${g('minute')}`;\n}\n\nconst calls = [];\nfunction push(domain, service, data) {\n calls.push({ json: { domain, service, data } });\n}\nfunction setText(entity, value) {\n push('input_text', 'set_value', { entity_id: entity, value: (value ?? '').toString().slice(0, 250) });\n}\nfunction setNumber(entity, value) {\n push('input_number', 'set_value', { entity_id: entity, value });\n}\n\n// Statut + horodatage + modèle : écrits à CHAQUE run\nsetText('input_text.evcs_advisor_status', status + (detail ? `: ${detail}` : ''));\nsetText('input_text.evcs_advisor_last_run', stampParis());\nsetText('input_text.evcs_advisor_model', modelUsed);\n\nif (status === 'ok' && advice) {\n // Observation — la seule sortie desormais. Le conseiller ne planifie plus :\n // la planification est faite par le bilan, qui est calcule et mesure, et la\n // campagne du 12/09 a montre que lui demander les deux degradait les deux\n // (ecart de cible passe de 0 a 35 points sur certains cas des l ajout de la\n // mission d observation).\n setText('input_text.evcs_advisor_constat', advice.constat);\n setText('input_text.evcs_advisor_gravite', advice.gravite);\n setText('input_text.evcs_advisor_ce_qui_cloche', advice.ceQuiCloche || 'rien de signale');\n // Quand il n'y a rien a signaler il n'y a pas de piste, et recopier le\n // constat faisait afficher la meme phrase deux fois sur la carte — et\n // partir en double dans la colonne `piste` de la table d'observation.\n setText('input_text.evcs_advisor_reason',\n `[${Math.round(advice.confidence * 100)}%] ${advice.piste || 'rien a creuser'}`);\n\n // Un observateur qui signale en permanence ne sert a rien : on compte le\n // VOLUME de signalements pour pouvoir le constater.\n if (advice.gravite === 'aucune') {\n setNumber('input_number.evcs_advisor_agree_count', context.agreeCount + 1);\n } else {\n setNumber('input_number.evcs_advisor_diverge_count', context.divergeCount + 1);\n }\n\n push('logbook', 'log', {\n name: 'EVCS Advisor (observateur)',\n message: `[${advice.gravite}] ${advice.constat}`\n + (advice.ceQuiCloche ? ` || ${advice.ceQuiCloche}` : '')\n + (advice.piste ? ` || piste : ${advice.piste}` : ''),\n entity_id: 'input_text.evcs_advisor_constat',\n });\n}\n\nreturn calls;\n"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user