CognxSafeTrack commited on
Commit
75c0b4c
·
1 Parent(s): dcdc311

fix(ai): remove hardcoded sector examples from system prompts to prevent AI hallucinations across mismatched domains

Browse files
Files changed (2) hide show
  1. Dockerfile +1 -1
  2. apps/api/src/services/ai/index.ts +10 -25
Dockerfile CHANGED
@@ -41,7 +41,7 @@ EXPOSE 7860
41
  ENV PORT=7860
42
 
43
  # Force Docker cache invalidation - bump date to trigger clean rebuild
44
- ENV REBUILD_DATE="2026-03-01-v11-force-rebuild-railway"
45
 
46
  # SAFETY: Default to skipping DB push to prevent schema drift.
47
  # Only Railway (api service) should push schema — it overrides SKIP_DB_PUSH=false in its variables.
 
41
  ENV PORT=7860
42
 
43
  # Force Docker cache invalidation - bump date to trigger clean rebuild
44
+ ENV REBUILD_DATE="2026-03-01-v12-fix-ai-hallucination"
45
 
46
  # SAFETY: Default to skipping DB push to prevent schema drift.
47
  # Only Railway (api service) should push schema — it overrides SKIP_DB_PUSH=false in its variables.
apps/api/src/services/ai/index.ts CHANGED
@@ -120,25 +120,18 @@ PRAISE (Validation SPÉCIFIQUE — cite un élément RÉEL de sa réponse) :
120
  ❌ MAUVAIS : "Machallah, ta réponse est claire" ← trop générique, sans valeur
121
 
122
  REPHRASE (Reformulation PROFESSIONNELLE en 20 mots max) :
123
- Utilise le vocabulaire de son secteur (${activityLabel}).
124
- Montre comment un entrepreneur confirmé dirait la même chose.
125
- Ex: "Je commercialise des équipements d'irrigation et de forage pour agriculteurs en zone de Nanto, Luga."
126
 
127
  ACTION (Conseil CONCRET adapté à son secteur ET sa région) :
128
- - Si isQualified=true : Défi actionnable immédiat (ex: "Cette semaine, identifie les 3 problèmes de tes agriculteurs clients")
129
- - Si isQualified=false : Guide précisément sur CE QUI MANQUE (ex: "Précise la ZONE géographique et le NOMBRE de clients visés")
130
  JAMAIS : "Essaye de préciser davantage" ← vague, inutile.
131
 
132
- RÈGLES SECTORIELLES :
133
- - AGRICULTURE / ÉQUIPEMENTS AGRICOLES : Parle de saisons des pluies, champs, rendements, zones rurales, forages, irrigation, engrais, stockage.
134
- - RESTAURATION / TANGANA : hygiène (set-setal), gestion pertes (ñàkk), service rapide.
135
- - TEXTILE / COUTURE : précision (natt), finitions, délais, relation client.
136
- - TECH / DIGITAL : ROI, démo, support, adoption.
137
- - COMMERCE : stock, marge bénéficiaire, fidélisation.
138
-
139
  CONTRAINTES :
140
  - LANGUE : ${userLanguage === 'WOLOF' ? 'WOLOF avec accents ñ, ë, é' : 'Français professionnel'}.
141
- - ZÉRO ANGLAIS. ZÉRO HALLUCINATION. Ne cite jamais "Manga Deaf".
142
  - FCFA pour tous les montants.
143
  `;
144
 
@@ -191,23 +184,15 @@ ${businessContext}
191
  ${prevContext}
192
 
193
  RÈGLE N°1 — EXEMPLES PERSONNALISÉS (CRITIQUE) :
194
- Remplace TOUS les exemples génériques (tissu, teinture, couture, boulangerie, etc.)
195
- par des exemples tirés du vrai business de l'étudiant (${activityLabel}).
196
- → Si l'étudiant vend des équipements agricoles : parle de forages, d'irrigation, d'agriculteurs, de saisons.
197
- → Si c'est un restaurateur : parle de plats, de fourneaux, de clients à l'heure du déjeuner.
198
- → N'invente rien qui ne correspond pas à son secteur réel.
199
 
200
  RÈGLE N°2 — Garde la VALEUR PÉDAGOGIQUE EXACTEMENT la même (message principal inchangé).
201
- RÈGLE N°3 — STYLE : WhatsApp (gras *texte*, emojis). Direct. Max 250 mots.
202
  RÈGLE N°4 — LANGUE : ${userLanguage === 'WOLOF' ? 'WOLOF (avec ñ, ë, é)' : 'Français'}. JAMAIS ANGLAIS.
203
  RÈGLE N°5 — Ne jamais citer "Manga Deaf".
204
 
205
- ADAPTATION SECTORIELLE :
206
- - AGRICULTURE / ÉQUIPEMENTS : saisons des pluies, champs, rendements, zones rurales, forages, irrigation.
207
- - RESTAURATION / TANGANA : plats, hygiène, service rapide, gestion des restes (ñàkk).
208
- - TEXTILE / COUTURE : précision, finitions, délais client.
209
- - COMMERCE GÉNÉRAL : stock, marge, fidélisation, livraison.
210
-
211
  LEÇON À ADAPTER :
212
  ${lessonText}
213
 
 
120
  ❌ MAUVAIS : "Machallah, ta réponse est claire" ← trop générique, sans valeur
121
 
122
  REPHRASE (Reformulation PROFESSIONNELLE en 20 mots max) :
123
+ Utilise IMPÉRATIVEMENT le vocabulaire du véritable secteur de l'étudiant (${activityLabel}).
124
+ Ne parle d'agriculture QUE s'il est dans l'agriculture. Ne parle de restauration QUE s'il est dans la restauration.
125
+ Montre comment un entrepreneur confirmé de SON domaine dirait la même chose.
126
 
127
  ACTION (Conseil CONCRET adapté à son secteur ET sa région) :
128
+ - Si isQualified=true : Défi actionnable immédiat.
129
+ - Si isQualified=false : Guide précisément sur CE QUI MANQUE.
130
  JAMAIS : "Essaye de préciser davantage" ← vague, inutile.
131
 
 
 
 
 
 
 
 
132
  CONTRAINTES :
133
  - LANGUE : ${userLanguage === 'WOLOF' ? 'WOLOF avec accents ñ, ë, é' : 'Français professionnel'}.
134
+ - ZÉRO ANGLAIS. ZÉRO HALLUCINATION EN DEHORS DU SECTEUR ($activityLabel). Ne cite jamais "Manga Deaf".
135
  - FCFA pour tous les montants.
136
  `;
137
 
 
184
  ${prevContext}
185
 
186
  RÈGLE N°1 — EXEMPLES PERSONNALISÉS (CRITIQUE) :
187
+ Adapte TOUS les exemples de la leçon pour qu'ils soient directement liés à la véritable activité de l'étudiant (${activityLabel}).
188
+ Si l'étudiant vend des produits physiques, cite ces produits. S'il offre un service, parle de ce service.
189
+ N'invente RIEN qui soit en dehors de son domaine réel. INTERDICTION D'UTILISER DES EXEMPLES AGRICOLES SI L'ÉTUDIANT N'EST PAS DANS L'AGRICULTURE. N'utilise que son vrai domaine.
 
 
190
 
191
  RÈGLE N°2 — Garde la VALEUR PÉDAGOGIQUE EXACTEMENT la même (message principal inchangé).
192
+ RÈGLE N°3 — STYLE : WhatsApp (gras *texte*, emojis). Sois direct, dynamique et encourageant.
193
  RÈGLE N°4 — LANGUE : ${userLanguage === 'WOLOF' ? 'WOLOF (avec ñ, ë, é)' : 'Français'}. JAMAIS ANGLAIS.
194
  RÈGLE N°5 — Ne jamais citer "Manga Deaf".
195
 
 
 
 
 
 
 
196
  LEÇON À ADAPTER :
197
  ${lessonText}
198