Quotidien Shaarli

Tous les liens d'un jour sur une page.

Hier - November 3, 2026

Building a minimal RAG pipeline with Symfony AI · Johannes Wachter

Tutoriel pratique pour construire un pipeline RAG minimal avec Symfony AI, Cohere et SQLite, à partir de plusieurs versions de la documentation Symfony. Il détaille l’indexation des documents, la génération d’embeddings, la recherche des cinq passages les plus proches et la production d’une réponse contextualisée. L’auteur met aussi en évidence les limites de la recherche purement vectorielle : confusion entre versions, résultats sémantiquement proches mais peu pertinents et absence de reclassement. Une base reproductible pour comprendre pourquoi un RAG fiable nécessite des étapes supplémentaires.

Symfony 8.2 : le message n’est jamais parti. Ou il a été traité deux fois.

Symfony 8.2 introduit dans Messenger des mécanismes natifs pour fiabiliser les échanges asynchrones : le transactional outbox évite de perdre un événement entre la validation en base et sa publication vers un broker, tandis que l’inbox aide à prévenir les traitements en double lors des redélivraisons. L’article présente la configuration avec Doctrine, RabbitMQ et MongoDB, ainsi que les contraintes de transaction, de retry et d’ordre des messages. Il rappelle que l’atomicité ne garantit pas une exécution exactement une fois.

How to run an LLM locally on macOS, Linux, and Windows

Panorama des solutions pour exécuter des modèles de langage en local sous macOS, Linux et Windows. Le guide compare les applications graphiques (LM Studio, Jan, GPT4All), les moteurs et gestionnaires (Ollama, llama.cpp), les interfaces web, les bibliothèques de développement et les serveurs d’inférence. Il explique comment choisir selon les usages, le matériel disponible et les besoins d’intégration, en abordant la mémoire RAM/VRAM, la quantification, les formats de modèles et les possibilités d’exécution sur CPU, GPU, navigateur ou machine distante auto-hébergée.

Two-factor authentication with Symfony 8.2: one authenticator, one voter, and that's it - DEV Community

Symfony 8.2 simplifie l’authentification à deux facteurs sans bundle dédié grâce aux preuves d’authentification conservées dans le token. L’exemple combine un mot de passe et un code SMS : un authenticator ajoute la seconde preuve, un voter exige les deux pour accéder à l’application et un point d’entrée redirige vers l’étape manquante. La configuration protège les routes par défaut, gère le cas « remember me » et limite les tentatives. Le code est testé sur la version de développement de Symfony 8.2.

400 or 422? Designing validation errors for a Symfony API

Depuis Symfony 8.2, une ValidationFailedException non interceptée produit directement une réponse HTTP 422 structurée. L’article distingue les erreurs 400 (requête illisible), 415 (format non pris en charge), 422 (données invalides) et 409 (conflit). Il recommande le format Problem Details (RFC 9457), des chemins de champs et codes d’erreur stables pour les clients, ainsi qu’une gestion cohérente des violations d’unicité Doctrine. Enfin, il conseille de limiter le bruit des logs, surveiller les pics de 422 et tester le contrat de réponse plutôt que les messages traduits.

Mon manager d'artiste est une IA · Camille Roux

Camille Roux explique comment il utilise Claude Code comme manager d’artiste pour développer ses activités au-delà des ventes de NFT. Son dispositif repose sur de simples fichiers texte regroupant mémoire des projets, suivi des opportunités, objectifs et commandes récurrentes. L’agent prépare les candidatures, surveille les échéances, suggère des relances et facilite les bilans. L’artiste conserve toutefois la création, les décisions, les relations humaines et la validation des messages. Une approche légère et reproductible pour déléguer l’organisation sans abandonner le contrôle.

Encrypting columns with Symfony 8.2: what #[Encrypted] protects, and what it doesn't

Symfony 8.2 introduit un composant expérimental KeyManagement permettant de chiffrer des colonnes Doctrine avec l’attribut #[Encrypted]. L’article explique les menaces couvertes (fuite de base ou de sauvegarde) et les limites : une application compromise peut toujours déchiffrer les données, tandis que les recherches et tris SQL deviennent impossibles. Les index aveugles rétablissent la recherche par égalité, mais révèlent certaines fréquences. Sont également abordés le stockage des clés dans un KMS et la migration des données existantes, qui exige un traitement spécifique.

Authentik avec Nginx Proxy Manager : SSO et passkeys

Guide pratique pour centraliser l’authentification de services auto-hébergés avec Authentik et Nginx Proxy Manager, sans remplacer le reverse proxy. L’article explique les différences entre OIDC/OAuth2, SAML et Forward Auth, puis détaille la migration progressive d’une protection Basic Auth vers Authentik. Il couvre l’utilisation de passkeys et de clés YubiKey, les permissions par groupes et l’enrôlement des nouveaux utilisateurs. Il insiste sur les tests d’accès, les particularités des applications et la conservation de moyens de connexion de secours.

Votre gain de temps ne doit pas devenir notre dette technique

Stéphane Robert alerte sur les applications générées par IA par les équipes métier puis transférées à l’informatique sans accord ni moyens. Un prototype fonctionnel ne garantit ni sécurité, ni maintenabilité, ni exploitation fiable : il peut créer une dette de compréhension et reporter les incidents sur d’autres équipes. Il propose de distinguer expérimentation et production, de clarifier les besoins et critères d’acceptation, de choisir une pile maîtrisée et de désigner explicitement les responsables du support. Le gain de temps doit intégrer le coût de maintenance sur toute la durée de vie.