Infos du groupe dans les réglages, injectées au prompt IA
Nouveaux champs (nom, style, description, lien) en réglages, transmis au prompt système de génération de messages dans les deux modes (générer et peaufiner). La consigne de format reste en dernière position, non éditable. Bloc omis si aucun champ rempli : prompt identique à l'ancien.
This commit is contained in:
49
ia.py
49
ia.py
@@ -127,6 +127,25 @@ def _infos_prospect(prospect):
|
||||
return "\n".join(f"- {cle} : {val}" for cle, val in champs if (val or "").strip())
|
||||
|
||||
|
||||
def _infos_groupe(groupe):
|
||||
"""Bloc décrivant le groupe (depuis les réglages), injecté dans le prompt système.
|
||||
|
||||
Ne liste que les champs renseignés ; renvoie "" si rien n'est fourni.
|
||||
"""
|
||||
if not groupe:
|
||||
return ""
|
||||
champs = [
|
||||
("Nom du groupe", groupe.get("nom")),
|
||||
("Style", groupe.get("style")),
|
||||
("Description", groupe.get("description")),
|
||||
("Lien", groupe.get("lien")),
|
||||
]
|
||||
lignes = [f"- {cle} : {(val or '').strip()}" for cle, val in champs if (val or "").strip()]
|
||||
if not lignes:
|
||||
return ""
|
||||
return "Tu représentes le groupe suivant :\n" + "\n".join(lignes)
|
||||
|
||||
|
||||
def _message_erreur(exc):
|
||||
bas = str(exc).lower()
|
||||
if "rate" in bas or "429" in bas or "limit" in bas or "quota" in bas:
|
||||
@@ -136,12 +155,15 @@ def _message_erreur(exc):
|
||||
return f"Échec de la génération : {exc}"
|
||||
|
||||
|
||||
def generer_message(prospect, modele, mode="generer", nom_modele=None):
|
||||
def generer_message(prospect, modele, mode="generer", nom_modele=None, groupe=None):
|
||||
"""Génère un message de prise de contact pour un prospect.
|
||||
|
||||
mode == "generer" : l'IA rédige un message sur mesure (modèle = guide de ton/style).
|
||||
mode == "peaufiner" : on substitue d'abord le modèle, puis l'IA le reformule sans en
|
||||
changer le sens.
|
||||
|
||||
`groupe` : dict optionnel (nom, style, description, lien) issu des réglages ; ses champs
|
||||
renseignés sont injectés dans le prompt système pour personnaliser la rédaction.
|
||||
"""
|
||||
nom_modele = nom_modele or MODELE_DEFAUT
|
||||
if not est_connecte():
|
||||
@@ -150,25 +172,36 @@ def generer_message(prospect, modele, mode="generer", nom_modele=None):
|
||||
)
|
||||
|
||||
infos = _infos_prospect(prospect) or "- (aucune information détaillée disponible)"
|
||||
bloc_groupe = _infos_groupe(groupe)
|
||||
|
||||
if mode == "peaufiner":
|
||||
brouillon = _message_modele(prospect, modele)
|
||||
systeme = (
|
||||
parties = [
|
||||
"Tu rédiges des messages de prise de contact en français pour proposer "
|
||||
"l'organisation de concerts à des établissements. On te donne un brouillon : "
|
||||
"reformule-le pour le rendre plus naturel, chaleureux et engageant, sans inventer "
|
||||
"d'information ni changer le sens. Réponds UNIQUEMENT par le message final, sans "
|
||||
"commentaire."
|
||||
"l'organisation de concerts à des établissements."
|
||||
]
|
||||
if bloc_groupe:
|
||||
parties.append(bloc_groupe)
|
||||
parties.append(
|
||||
"On te donne un brouillon : reformule-le pour le rendre plus naturel, chaleureux "
|
||||
"et engageant, sans inventer d'information ni changer le sens. Réponds UNIQUEMENT "
|
||||
"par le message final, sans commentaire."
|
||||
)
|
||||
systeme = "\n\n".join(parties)
|
||||
utilisateur = f"Brouillon à améliorer :\n{brouillon}\n\nInfos sur l'établissement :\n{infos}"
|
||||
else:
|
||||
systeme = (
|
||||
parties = [
|
||||
"Tu rédiges des messages de prise de contact en français pour proposer "
|
||||
"l'organisation de concerts à des établissements (bars, restaurants, salles...). "
|
||||
"l'organisation de concerts à des établissements (bars, restaurants, salles...)."
|
||||
]
|
||||
if bloc_groupe:
|
||||
parties.append(bloc_groupe)
|
||||
parties.append(
|
||||
"Le message doit être court, personnalisé, chaleureux et se terminer par une "
|
||||
"question ouvrant l'échange. Réponds UNIQUEMENT par le message final, sans "
|
||||
"commentaire ni objet d'e-mail."
|
||||
)
|
||||
systeme = "\n\n".join(parties)
|
||||
utilisateur = (
|
||||
f"Rédige un message de prise de contact pour cet établissement :\n{infos}\n\n"
|
||||
f"Inspire-toi de ce modèle pour le ton et le style :\n{modele}"
|
||||
|
||||
Reference in New Issue
Block a user