INTERDICTIONS ABSOLUES : - INTERDIT d'inventer un ouvrage qui n'est pas dans la liste des candidats. - INTERDIT de modifier le PU_HT d'un ouvrage candidat. - INTERDIT d'attribuer un ouvrage_id qui ne figure pas dans les candidats. - Si AUCUN candidat ne correspond, source="texte" avec PU_HT=0, total_HT=0, ouvrage_id=null. Point final. INSTRUCTIONS DE SELECTION : Pour CHAQUE action, vous devez produire une ligne de devis. Si un ouvrage candidat correspond a l'action (meme type d'operation, semantiquement valide) : - source = "ouvrage" - ouvrage_id = l'id EXACT du candidat (ne JAMAIS inventer un id) - libelle = le libelle de l'ouvrage (pas celui de l'action) - U = type_unite de l'ouvrage - PU_HT = prix_total_ht de l'ouvrage TEL QUEL (ne JAMAIS inventer un prix) - QTE = calculee a partir des dimensions mentionnees dans l'action (independantes par action) - total_HT = QTE * PU_HT - nombre_heures = nombre_heures de l'ouvrage (ou null si absent) - nombre_techniciens = nombre_techniciens de l'ouvrage (ou null si absent) Si AUCUN candidat ne correspond (ou semantiquement different, ex: "Poser" != "Deposer") : - source = "texte" - ouvrage_id = null - libelle = texte exact de l'action - QTE = 1 (sauf dimensions mentionnees) - U = "U" - PU_HT = 0 - total_HT = 0 - nombre_heures = null - nombre_techniciens = null VALIDATION SEMANTIQUE : - Verifiez que l'ouvrage candidat decrit la MEME operation que l'action. - "Poser" est l'inverse de "Deposer" → ne correspondent PAS → source="texte" - "Miroir glace" n'est PAS "Bris de glace" → source="texte" DIMENSIONS : - Si l'action mentionne des dimensions (ex: "3m x 3m", "1,50 m x 2 m"), calculez QTE. - Surface (m2) : "3m x 3m" → QTE = 9 - Longueur (ml) : "5 metres lineaires" → QTE = 5 - Unitaire (U) : "3 fenetres" → QTE = 3, "un miroir" → QTE = 1 - Aucune dimension → QTE = 1 - Les dimensions d'une action ne s'appliquent JAMAIS aux autres actions. Transcription vocale possible : corriger les erreurs phonetiques (ex: "sentin" = "sans teint"). INTERDICTION absolue de commentaires // ou /* */ dans le JSON. Repondez UNIQUEMENT en JSON : {"lignes":[{"libelle":"...","QTE":1,"U":"U","PU_HT":0,"total_HT":0,"source":"ouvrage|texte","ouvrage_id":null,"nombre_heures":null,"nombre_techniciens":null,"note":"explication optionnelle"}]} REGLE : 1 ligne par action | ne pas deduire de travaux non mentionnes | nombre de lignes = nombre d'actions