Spaces:
Sleeping
Sleeping
Commit ·
3a6a99b
1
Parent(s): 709645a
Génération: prompt strict format + nettoyage sortie + temp 0.2
Browse files- generer_texte.py +27 -5
generer_texte.py
CHANGED
|
@@ -111,9 +111,15 @@ def construire_prompt(concepts, theme=None):
|
|
| 111 |
theme_txt = f"\nThème souhaité : {theme}." if theme else ""
|
| 112 |
|
| 113 |
system = (
|
| 114 |
-
"Tu écris des textes très simples pour aider des enfants
|
| 115 |
-
"
|
| 116 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 117 |
)
|
| 118 |
|
| 119 |
user = f"""Écris un court texte (6 à 10 phrases) en français.{theme_txt}
|
|
@@ -128,6 +134,8 @@ Chaque nom, verbe et adjectif que tu écris DOIT figurer dans la palette ci-dess
|
|
| 128 |
est listé ; écrire "enfourner" alors que seuls "placer" et "four" sont listés.
|
| 129 |
- Seuls les petits mots de liaison sont libres (le, la, un, des, dans, et, avec,
|
| 130 |
pour, il, elle, ils, elles, son, sa, ses...).
|
|
|
|
|
|
|
| 131 |
|
| 132 |
POUR TESTER LA CORÉFÉRENCE :
|
| 133 |
- Choisis UN seul personnage de la liste, nomme-le au début.
|
|
@@ -171,7 +179,7 @@ def generer(theme=None):
|
|
| 171 |
"Content-Type": "application/json"},
|
| 172 |
json={
|
| 173 |
"model": MODELE,
|
| 174 |
-
"temperature": 0.
|
| 175 |
"messages": [
|
| 176 |
{"role": "system", "content": system},
|
| 177 |
{"role": "user", "content": user},
|
|
@@ -180,7 +188,21 @@ def generer(theme=None):
|
|
| 180 |
timeout=60,
|
| 181 |
)
|
| 182 |
resp.raise_for_status()
|
| 183 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 184 |
|
| 185 |
|
| 186 |
def envoyer_au_serveur(texte, url="http://localhost:5006/pictogramiser"):
|
|
|
|
| 111 |
theme_txt = f"\nThème souhaité : {theme}." if theme else ""
|
| 112 |
|
| 113 |
system = (
|
| 114 |
+
"Tu écris des textes très simples pour aider des enfants à lire avec des "
|
| 115 |
+
"pictogrammes. Phrases courtes, une idée par phrase. "
|
| 116 |
+
"RÈGLES DE FORME STRICTES : "
|
| 117 |
+
"(1) Conjugue les verbes au PRÉSENT de l'indicatif (ex: « elle prépare », "
|
| 118 |
+
"JAMAIS « elle préparer »). "
|
| 119 |
+
"(2) AUCUN formatage : pas de gras, pas d'astérisques (*), pas de listes, "
|
| 120 |
+
"pas d'emoji. "
|
| 121 |
+
"(3) AUCUN commentaire, note, parenthèse explicative ni texte entre crochets. "
|
| 122 |
+
"Réponds UNIQUEMENT par le texte de l'histoire."
|
| 123 |
)
|
| 124 |
|
| 125 |
user = f"""Écris un court texte (6 à 10 phrases) en français.{theme_txt}
|
|
|
|
| 134 |
est listé ; écrire "enfourner" alors que seuls "placer" et "four" sont listés.
|
| 135 |
- Seuls les petits mots de liaison sont libres (le, la, un, des, dans, et, avec,
|
| 136 |
pour, il, elle, ils, elles, son, sa, ses...).
|
| 137 |
+
- CONJUGUE les verbes au présent (« elle coupe », pas « elle couper »).
|
| 138 |
+
- AUCUN astérisque, AUCUN gras, AUCUNE note ni explication entre parenthèses/crochets.
|
| 139 |
|
| 140 |
POUR TESTER LA CORÉFÉRENCE :
|
| 141 |
- Choisis UN seul personnage de la liste, nomme-le au début.
|
|
|
|
| 179 |
"Content-Type": "application/json"},
|
| 180 |
json={
|
| 181 |
"model": MODELE,
|
| 182 |
+
"temperature": 0.2,
|
| 183 |
"messages": [
|
| 184 |
{"role": "system", "content": system},
|
| 185 |
{"role": "user", "content": user},
|
|
|
|
| 188 |
timeout=60,
|
| 189 |
)
|
| 190 |
resp.raise_for_status()
|
| 191 |
+
texte = resp.json()["choices"][0]["message"]["content"].strip()
|
| 192 |
+
return nettoyer_sortie(texte)
|
| 193 |
+
|
| 194 |
+
|
| 195 |
+
def nettoyer_sortie(texte):
|
| 196 |
+
"""Filet de sécurité : retire le formatage et les notes que le modèle
|
| 197 |
+
ajoute parfois (gras **, emoji, note finale entre crochets ou après ---)."""
|
| 198 |
+
# Couper toute note/commentaire en fin de réponse
|
| 199 |
+
for sep in ["\n---", "\n*[", "\n[Note", "\n(Note", "\nNote :"]:
|
| 200 |
+
idx = texte.find(sep)
|
| 201 |
+
if idx != -1:
|
| 202 |
+
texte = texte[:idx]
|
| 203 |
+
# Retirer le gras/italique markdown
|
| 204 |
+
texte = texte.replace("**", "").replace("__", "").replace("*", "")
|
| 205 |
+
return texte.strip()
|
| 206 |
|
| 207 |
|
| 208 |
def envoyer_au_serveur(texte, url="http://localhost:5006/pictogramiser"):
|