chore: Update project configuration and improve chat prompts

Configuration Updates:
- .claude/settings.local.json: Add security permissions for WebFetch, WebSearch, nvidia-smi
- package.json: Add puppeteer dependency for browser automation tests
- package-lock.json: Update lockfile with puppeteer@24.34.0 and dependencies
- Remove root .env.example (superseded by generations/library_rag/.env.example)

Flask App Improvements:
- Enhanced chat prompt to REQUIRE "Sources utilisées" section in responses
- Added explicit warnings against inventing citations not in provided passages
- Improved source citation format with mandatory author, work, and passage number
- Strengthened instructions to prevent hallucinated references

Benefits:
- Chat responses now consistently include proper source citations
- Better academic rigor in philosophical analyses
- Prevents LLM from inventing non-existent references
- Automated testing infrastructure with Puppeteer

Related to GPU embedder migration testing and validation.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-09 12:45:20 +01:00
parent 054cc52a76
commit eb2bf45281
5 changed files with 1153 additions and 19 deletions

View File

@@ -1269,18 +1269,19 @@ def build_prompt_with_context(user_question: str, rag_context: List[Dict[str, An
'Vous êtes un assistant spécialisé en philosophie...'
"""
# System instruction
system_instruction = """Vous êtes un assistant expert en philosophie. Votre rôle est de fournir des analyses APPROFONDIES et DÉTAILLÉES en vous appuyant sur les passages philosophiques fournis.
system_instruction = """Vous êtes un assistant expert en philosophie. Votre rôle est de fournir des analyses APPROFONDIES et DÉTAILLÉES en vous appuyant EXCLUSIVEMENT sur les passages philosophiques fournis.
INSTRUCTIONS IMPÉRATIVES :
- Fournissez une réponse LONGUE et DÉVELOPPÉE (minimum 500-800 mots)
- Analysez EN PROFONDEUR tous les aspects de la question
- Citez ABONDAMMENT les passages fournis avec références précises (auteur, œuvre)
- Citez ABONDAMMENT les passages fournis avec références précises (auteur, œuvre, numéro de passage)
- Développez les concepts philosophiques, ne vous contentez PAS de résumés superficiels
- Explorez les NUANCES, les implications, les relations entre les idées
- Structurez votre réponse en sections claires (introduction, développement avec sous-parties, conclusion)
- Si les passages ne couvrent pas tous les aspects, indiquez-le mais développez ce qui est disponible
- Adoptez un style académique rigoureux digne d'une analyse philosophique universitaire
- N'inventez JAMAIS d'informations absentes des passages, mais exploitez à fond celles qui y sont"""
- N'inventez JAMAIS d'informations absentes des passages, mais exploitez à fond celles qui y sont
- Terminez OBLIGATOIREMENT par une section "## Sources utilisées" listant les passages que vous avez cités"""
# Build context section
context_section = "\n\nPASSAGES PHILOSOPHIQUES :\n\n"
@@ -1319,7 +1320,20 @@ Votre réponse doit :
3. Explorer les implications philosophiques, les concepts-clés, les relations entre les idées
4. Conclure en synthétisant l'apport des passages à la question posée
Ne vous limitez PAS à un résumé superficiel. Développez, analysez, approfondissez. C'est une discussion philosophique universitaire, pas un tweet."""
Ne vous limitez PAS à un résumé superficiel. Développez, analysez, approfondissez. C'est une discussion philosophique universitaire, pas un tweet.
⚠️ OBLIGATION CRITIQUE - SOURCES :
Vous DEVEZ terminer votre réponse par une section "## Sources utilisées" listant UNIQUEMENT les passages que vous avez cités.
Format OBLIGATOIRE :
## Sources utilisées
- **Auteur, Titre de l'œuvre** (Passage N)
- **Auteur, Titre de l'œuvre** (Passage N)
❌ INTERDIT : N'ajoutez JAMAIS de références bibliographiques qui ne sont pas dans les passages fournis ci-dessus.
❌ INTERDIT : N'inventez PAS de citations de Chalmers, Dennett, Baars, etc. si elles ne sont pas dans les passages.
✅ OBLIGATOIRE : Listez UNIQUEMENT les sources des passages numérotés ci-dessus que vous avez effectivement utilisés."""
# Combine all sections
full_prompt = system_instruction + context_section + question_section + final_instruction