Login / Sign up
Discover Bonzai
Terms of Use
Legal notice
Privacy
Region
Language
matyo91
matyo91
12
Subscribers
Facebook
X
Whatsapp
Telegram
👉 You must follow matyo91 to access chat.
Feed Shop About

🚹 Darkwood IaExceptionBundle — Quand les erreurs commencent Ă  s'expliquer d'elles-mĂȘmes

Facebook
Twitter
Whatsapp
Telegram
1 month ago

Les erreurs ne sont pas le problĂšme. Le silence, si.

Tous les développeurs back-end connaissent les erreurs HTTP 500. Elles surviennent. Elles sont inévitables. Et lorsqu'elles se produisent, le systÚme réagit généralement comme il le fait depuis des décennies :

Crash. Journal. Passer Ă  autre chose.

Et si une erreur pouvait faire plus que simplement Ă©chouer ? Et si elle pouvait s'expliquer d'elle-mĂȘme ?

C’est ainsi qu’est nĂ© Darkwood IaExceptionBundle : un bundle Symfony qui enrichit les erreurs HTTP 500 avec des explications gĂ©nĂ©rĂ©es par l’IA, les causes probables et des suggestions de correction, le tout basĂ© sur Symfony AI.

🧭 L'observation

Les frameworks modernes excellent dans les domaines suivants :

  • LevĂ©e d'exceptions prĂ©cises

  • Production de traces de pile

  • Exportation des journaux vers des plateformes d'observabilitĂ©

Pourtant, la responsabilité de comprendre une erreur incombe toujours aux humains.

Le systÚme sait :

  • quelle exception a Ă©tĂ© levĂ©e

  • oĂč cela s'est produit

  • dans quelles conditions

Mais le silence persiste. Le développeur doit reconstituer le sens à partir de fragments.

🧠 Une idĂ©e simple

Au lieu de demander :

Comment corrigeons-nous les erreurs automatiquement ?

Nous avons demandé quelque chose de plus modeste :

Et si le systùme pouvait expliquer ce qui vient de se passer — en termes humains ?

Non pas pour remplacer les outils de débogage. Non pas pour réparer quoi que ce soit. Juste pour formuler des hypothÚses plus rapidement.

⚙ Pourquoi Symfony ?

Symfony est particuliÚrement bien placé pour ce type d'expérimentation :

  • un environnement d'exĂ©cution unique et bien dĂ©fini

  • un point d'extension kernel.exception explicite

  • une culture de modules optionnels

  • et maintenant, un point d'intĂ©gration de premier ordre via Symfony AI

Il ne s'agit pas d'une fonctionnalitĂ© essentielle du framework, et cela ne devrait pas l'ĂȘtre. Son utilisation doit rester optionnelle, limitĂ©e et rĂ©versible.

đŸ§© Ce que le bundle fait (et ne fait pas)

✅ Ce que ça fait

En cas d'erreur HTTP 500, le bundle peut générer :

  • Une explication claire en anglais de l'exception

  • Les causes probables

  • Les solutions proposĂ©es / les prochaines Ă©tapes

  • Un score de confiance

  • Un identifiant d'erreur pour la corrĂ©lation

❌ Ce qu'il ne fait pas

  • Ce programme ne corrige pas les bogues.

  • Il ne remplace pas Sentry/les journaux.

  • Il ne garantit pas l'exactitude des rĂ©sultats.

  • Il ne s'exĂ©cute pas s'il n'est pas activĂ©.

C'est un assistant, pas une autorité.

🔐 La sĂ©curitĂ© avant tout (non nĂ©gociable)

Les erreurs peuvent contenir des informations sensibles. C'est pourquoi le package est conçu pour ĂȘtre sĂ©curisĂ© par dĂ©faut :

  • Il n'envoie jamais d'en-tĂȘtes, de cookies, de variables d'environnement ni de donnĂ©es de requĂȘte au modĂšle.

  • Les traces de pile sont exclues par dĂ©faut (option rĂ©servĂ©e aux dĂ©veloppeurs).

  • En cas d'Ă©chec ou de dĂ©lai d'attente de l'IA : la gestion des erreurs 500 par dĂ©faut de Symfony s'exĂ©cute normalement (compatibilitĂ© avec les dĂ©faillances).

  • Le statut de la rĂ©ponse reste 500 ; seul le corps de la rĂ©ponse est modifiĂ©.

📩 Installez-le et utilisez-le dans un projet Symfony existant

Exigences

  • PHP 8.2+

  • Symfony 6.4+ Ă©galement compatible avec 7.x / 8.x

  • Plateforme et agent symfony/ai-bundle configurĂ©s

Installez le bundle

composer require darkwood/ia-exception-bundle

Enregistrez le bundle (si nécessaire)

Si Symfony Flex ne l'enregistre pas automatiquement, ajoutez-le à config/bundles.php :

return [ // ... Darkwood\IaExceptionBundle\DarkwoodIaExceptionBundle::class => ['all' => true], ];

Configurer Symfony AI

Exemple de configuration OpenAI :

# config/packages/ai.yaml
ai:
platform:
openai:
api_key: '%env(OPENAI_API_KEY)%'
agent:
default:
model: 'gpt-4o-mini'

Activer et configurer le bundle

# config/packages/darkwood_ia_exception.yaml darkwood_ia_exception:
enabled: true
only_status_codes: [500]
agent: 'ai.agent.default'
timeout_ms: 800
cache_ttl: 600
cache: 'cache.app'
include_trace: false

Appliquer correctement le délai d'expiration

Pour garantir le délai d'expiration au niveau HTTP, configurez un client HTTP à portée limitée pour votre plateforme d'IA :

# config/packages/ai.yaml
framework:
http_client:
scoped_clients:
ai.timeout_client:
base_uri: 'https://api.openai.com'
timeout: 0.8
ai:
platform:
openai:
api_key: '%env(OPENAI_API_KEY)%'
http_client: 'ai.timeout_client'

đŸ§Ÿ Formats de sortie

JSON (pour les API)

Si la requĂȘte inclut Accept: application/json, le bundle renvoie un JSON structurĂ© comme suit :

{
"error_id": "a1b2c3d4e5f6g7h8",
"english_exception": "La connexion à la base de données a échoué ou une table requise est manquante.",
"probable_causes": ["..."],
"suggested_fixes": ["..."],
"confidence": 0.85
}

HTML (par défaut)

Sinon, il génÚre une page HTML affichant :

  • ID de l'erreur

  • Explication de l'IA

  • Causes et suggestions

  • Score de confiance

  • Classe/message d'exception d'origine

  • Avertissement : les rĂ©sultats sont des hypothĂšses

🧠 DerniĂšre rĂ©flexion

Nous avons passé des années à rendre nos systÚmes plus résilients. Nous avons amélioré les journaux, les tableaux de bord et les alertes.

L'Ă©tape suivante est peut-ĂȘtre plus simple :

Améliorer la capacité des systÚmes à s'expliquer.

Non pas pour remplacer les développeurs, mais pour les aider à penser plus vite, avec un meilleur contexte.

📖 Le code est Open Source

Ce bundle est aussi une expérimentation de l'intégration des erreurs générés par l'IA dans Symfony

Vous pouvez contribuer en vous rendant sur le dépot github Darkwood IaExceptionBundle

Follow matyo91 to comment
matyo91

matyo91

Je t'aide Ă  automatiser tes process
12
Visit this Bonzai
Follow matyo91 to get the latest updates.

🧠 Ne rien dĂ©voiler. Tout montrer – BĂątir des systĂšmes publics sur des fondations privĂ©es

1 day ago
4

🎬 La vidĂ©o la plus chĂšre de ma chaĂźne YouTube 💰

1 week ago
14

🎹 Darkwood v1.0.4 - PrĂ©sentation du design V4

1 week ago
22

đŸ‘Ÿ Darkwood : CrĂ©er un jeu tactique axĂ© sur les API

3 weeks ago
30

🚀 CrĂ©ation d'une application PHP MCP pour publier des articles Darkwood

3 weeks ago
29

🚀 Je construis un moteur de dictĂ©e en PHP (Flow + Symfony + Whisper.cpp)

1 month ago
33

⚔ DĂ©couverte de l'extension cataclysme Hearthstone

1 month ago
39

đŸ€– DĂ©veloppement parallĂšle d'IA avec Cursor et Git Worktrees

1 month ago
47

đŸ€– Comment rendre Darkwood prĂȘt pour les agents

1 month ago
89

đŸ§‘â€đŸ’» Codeur vs Vibe codeur

1 month ago
45

⚙ FOSDEM 2026 : signaux structurels de l’écosystĂšme open source

1 month ago
77

♟ DĂ©gĂąts de dĂ©fausse infini

2 months ago
74

📝 Gouvernance IT : reprendre le contrîle sans ralentir l’innovation

2 months ago
70

⭐ Monter LĂ©gende avec le Guerrier QuĂȘte (Enter the Lost City)

2 months ago
82

⭐ Monter lĂ©gende avec le deck Paladin Aggro Bubule

3 months ago
78

🎄 Offre de fin d’annĂ©e – Formation Flow (PHP)

3 months ago
84

⭐ Meetup AFUP Paris DĂ©cembre 2025

3 months ago
84

đŸ›ïž Open Source Experience 2025 : un Ă©cosystĂšme qui s’organise, s’affirme et accĂ©lĂšre

3 months ago
87

ai-PULSE 2025 : l'Europe de l'IA passe à la vitesse supérieure

3 months ago
91

đŸ§© Meetup AFUP Paris – Novembre 2025

4 months ago
97
© 2026 Bonzai Privacy Legal notice Terms of Use