mirror of
https://github.com/JMP-MS/ASPIC.git
synced 2026-10-27 16:07:10 +00:00
V1.23.24 Externalisation des prompts et évolutions des collaborateurs
This commit is contained in:
+35
-26
@@ -58,12 +58,18 @@ session_start();
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
require __DIR__ . '/db.php';
|
||||
require __DIR__ . '/journal_ia.php';
|
||||
require __DIR__ . '/moteur_prompts.php';
|
||||
|
||||
if (empty($_SESSION['USR_Code'])) {
|
||||
http_response_code(401);
|
||||
echo json_encode(['error' => 'Non identifié — veuillez vous connecter.']);
|
||||
exit;
|
||||
}
|
||||
// Prénom de l'utilisateur connecté (posé en session par aspic.php au login),
|
||||
// jamais "Jean-Marc" en dur dans le prompt/le journal (11 septembre 2026,
|
||||
// point relevé par Jean-Marc lui-même : ASPIC est censé pouvoir un jour
|
||||
// tourner pour un autre patron, Joseph ou Sylvie).
|
||||
$patron = trim((string) ($_SESSION['USR_Prenom'] ?? '')) ?: "l'utilisateur";
|
||||
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
|
||||
http_response_code(405);
|
||||
echo json_encode(['error' => 'Méthode non autorisée']);
|
||||
@@ -115,7 +121,7 @@ try {
|
||||
$stmt = $pdo->prepare(
|
||||
'SELECT m.MIS_Incr, m.MIS_AgentIncr, m.MIS_CompetenceCode, m.MIS_SiteIncr,
|
||||
m.MIS_Titre, m.MIS_Objectif, m.MIS_Statut, m.MIS_Journal, m.MIS_HistoriqueJson,
|
||||
a.AGN_Prenom, a.AGN_Fonction, a.AGN_Identite, a.AGN_Experience,
|
||||
a.AGN_Prenom, a.AGN_Fonction, a.AGN_Identite, a.AGN_Experience, a.AGN_Competences,
|
||||
c.CMP_Libelle, c.CMP_Description
|
||||
FROM ASP_Missions m
|
||||
JOIN ASP_Agents a ON a.AGN_Incr = m.MIS_AgentIncr
|
||||
@@ -413,7 +419,12 @@ $blocIdentite = $identite !== '' ? $identite : "(Aucune identité détaillée é
|
||||
|
||||
$experience = trim((string) ($mission['AGN_Experience'] ?? ''));
|
||||
$blocExperience = $experience !== ''
|
||||
? "\n\nCe que tu retiens de vos échanges précédents avec Jean-Marc :\n\n{$experience}"
|
||||
? "\n\nCe que tu retiens de vos échanges précédents avec {$patron} :\n\n{$experience}"
|
||||
: '';
|
||||
|
||||
$competencesAgent = trim((string) ($mission['AGN_Competences'] ?? ''));
|
||||
$blocCompetences = $competencesAgent !== ''
|
||||
? "\n\nTes compétences déclarées :\n\n{$competencesAgent}"
|
||||
: '';
|
||||
|
||||
$outils = outilsDeLaCompetence($mission['MIS_CompetenceCode']);
|
||||
@@ -425,29 +436,27 @@ $contexteSite = $site
|
||||
? "Tu travailles sur un site déjà existant (\"{$site['SIT_Nom']}\", statut : {$site['SIT_Statut']}) — utilise lister_fichiers_site()/lire_fichier_site() avant de modifier quoi que ce soit à l'aveugle."
|
||||
: "Aucun site n'existe encore pour cette mission — le premier appel à ecrire_fichier_site() le créera automatiquement.";
|
||||
|
||||
$promptSysteme = <<<PROMPT
|
||||
Tu es {$prenom}, en mission au sein de l'agence de Jean-Marc. Voici ton parcours et ta personnalité, à ton seul usage, jamais à réciter tel quel :
|
||||
|
||||
{$blocIdentite}{$blocExperience}
|
||||
|
||||
Tu es actuellement en MISSION (pas une simple discussion de mise au point) : ceci a de vraies conséquences, tes outils modifient réellement des fichiers.
|
||||
|
||||
Titre de la mission : {$mission['MIS_Titre']}
|
||||
Objectif : {$mission['MIS_Objectif']}
|
||||
|
||||
Compétence mobilisée : {$mission['CMP_Libelle']} — {$mission['CMP_Description']}
|
||||
|
||||
Tes outils RÉELS pour cette mission (et RIEN d'autre — ne promets jamais une capacité que tu n'as pas dans cette liste) :
|
||||
{$listeOutils}
|
||||
|
||||
{$contexteSite}
|
||||
|
||||
Règles strictes :
|
||||
- Tu ne travailles JAMAIS que pour l'entreprise de Jean-Marc elle-même, jamais pour un client tiers de cette entreprise.
|
||||
- Tu ne peux utiliser comme contenu que ce que Jean-Marc te fournit explicitement dans cette conversation — tu n'as accès à aucune autre source.
|
||||
- Une fois un fichier écrit, dis clairement ce que tu as fait, en une phrase naturelle, sans jargon technique excessif.
|
||||
- Si l'objectif te semble flou ou incomplet, pose la question avant d'écrire un fichier au hasard.
|
||||
PROMPT;
|
||||
// Texte sorti du code le 11 septembre 2026 — voir moteur_prompts.php pour le
|
||||
// texte par défaut/la table ASP_Prompts, bo_prompts.html pour l'édition.
|
||||
try {
|
||||
$promptSysteme = chargerPromptSysteme($pdo, 'MISSION_AGENT', [
|
||||
'{{PRENOM}}' => $prenom,
|
||||
'{{PATRON}}' => $patron,
|
||||
'{{BLOC_IDENTITE}}' => $blocIdentite,
|
||||
'{{BLOC_EXPERIENCE}}' => $blocExperience,
|
||||
'{{BLOC_COMPETENCES}}' => $blocCompetences,
|
||||
'{{TITRE_MISSION}}' => $mission['MIS_Titre'],
|
||||
'{{OBJECTIF}}' => $mission['MIS_Objectif'],
|
||||
'{{COMPETENCE_LIBELLE}}' => $mission['CMP_Libelle'],
|
||||
'{{COMPETENCE_DESCRIPTION}}' => $mission['CMP_Description'],
|
||||
'{{LISTE_OUTILS}}' => $listeOutils,
|
||||
'{{CONTEXTE_SITE}}' => $contexteSite,
|
||||
]);
|
||||
} catch (Throwable $e) {
|
||||
http_response_code(500);
|
||||
echo json_encode(['error' => 'Prompt système indisponible : ' . $e->getMessage()]);
|
||||
exit;
|
||||
}
|
||||
|
||||
// -------- Historique --------
|
||||
$historique = [];
|
||||
@@ -519,7 +528,7 @@ if ($limiteAtteinte && $texteFinal === '') {
|
||||
|
||||
// -------- Persistance --------
|
||||
$hordate = date('d/m/Y H:i');
|
||||
$nouveauJournal = "\n--- $hordate ---\n[Jean-Marc] $message\n";
|
||||
$nouveauJournal = "\n--- $hordate ---\n[{$patron}] $message\n";
|
||||
foreach ($lignesJournal as $l) {
|
||||
$nouveauJournal .= " $l\n";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user