{
  "name": "Automate de génération de prompt optimisé - Direction EPLE",
  "nodes": [
    {
      "id": "Webhook_Trigger",
      "name": "Webhook - Entrée formulaire",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [0, 0],
      "parameters": {
        "httpMethod": "POST",
        "path": "generation-prompt-direction",
        "responseMode": "responseNode",
        "options": {}
      },
      "notes": "Déclenchement du workflow après soumission d’un formulaire externe."
    },
    {
      "id": "Set_Context",
      "name": "Préparation du contexte institutionnel",
      "type": "n8n-nodes-base.set",
      "typeVersion": 2,
      "position": [300, 0],
      "parameters": {
        "values": {
          "string": [
            {
              "name": "instructions_systeme",
              "value": "Tu es l'assistant personnel de direction du [Collège/Lycée X]. Ton ton est professionnel, précis et institutionnel.\n\nMISSIONS :\n- Rédiger et synthétiser des notes de service ou courriers aux familles\n- Analyser les textes réglementaires (BO, circulaires)\n- Proposer des plans d'action issus du Projet d'Établissement\n\nCONTRAINTES :\n- Respect strict de la laïcité et du Code de l'Éducation\n- Toute procédure disciplinaire doit rappeler les étapes légales obligatoires\n- Réponses structurées avec titres et listes à puces\n\nCONNAISSANCES INTERNES :\n- Règlement intérieur\n- Projet d’établissement\n- Contrat d’objectifs"
            }
          ]
        },
        "options": {}
      },
      "notes": "Injection du cadre institutionnel, juridique et rédactionnel."
    },
    {
      "id": "AI_Agent",
      "name": "Agent IA - Optimisation du prompt (Gemini)",
      "type": "n8n-nodes-base.aiAgent",
      "typeVersion": 1,
      "position": [650, 0],
      "parameters": {
        "provider": "googleGemini",
        "model": "gemini-1.5-pro",
        "memory": true,
        "systemPrompt": "={{$json.instructions_systeme}}",
        "userPrompt": "Demande initiale : {{$json.body.demande}}\n\nContexte : {{$json.body.contexte}}\n\nObjectif : Générer un PROMPT optimisé prêt à être utilisé par une IA, conforme au cadre institutionnel.",
        "temperature": 0.3
      },
      "notes": "Analyse sémantique, enrichissement et génération d’un prompt institutionnel optimisé avec mémoire."
    },
    {
      "id": "Webhook_Response",
      "name": "Retour du prompt optimisé",
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1,
      "position": [950, 0],
      "parameters": {
        "responseBody": "={{$json.output}}",
        "responseCode": 200,
        "options": {
          "responseHeaders": {
            "Content-Type": "text/plain; charset=utf-8"
          }
        }
      },
      "notes": "Affichage du prompt optimisé directement dans la page du formulaire."
    },
    {
      "id": "Error_Trigger",
      "name": "Gestion des erreurs",
      "type": "n8n-nodes-base.errorTrigger",
      "typeVersion": 1,
      "position": [650, 250],
      "notes": "Capture toute erreur du workflow."
    },
    {
      "id": "Error_Response",
      "name": "Réponse erreur institutionnelle",
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1,
      "position": [950, 250],
      "parameters": {
        "responseBody": "Une erreur est survenue lors du traitement de la demande. Merci de vérifier les informations transmises ou de contacter l’administrateur du système.",
        "responseCode": 500
      },
      "notes": "Retour d’erreur maîtrisé, conforme à un contexte institutionnel."
    }
  ],
  "connections": {
    "Webhook - Entrée formulaire": {
      "main": [[{ "node": "Préparation du contexte institutionnel", "type": "main", "index": 0 }]]
    },
    "Préparation du contexte institutionnel": {
      "main": [[{ "node": "Agent IA - Optimisation du prompt (Gemini)", "type": "main", "index": 0 }]]
    },
    "Agent IA - Optimisation du prompt (Gemini)": {
      "main": [[{ "node": "Retour du prompt optimisé", "type": "main", "index": 0 }]]
    },
    "Gestion des erreurs": {
      "main": [[{ "node": "Réponse erreur institutionnelle", "type": "main", "index": 0 }]]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1"
  }
}
