
Offres commerciales assistées par IA
Mettre l'IA au service des décisions d'avant-vente, de l'analyse d'un appel d'offres à la rédaction de la proposition.
Tech Lead
- NestJS
- TypeScript
- Next.js
- RAG
- PostgreSQL
- pgvector
- Langflow
- Azure
- d'adoption après 4 mois
- 70 %
- livraison en production
- 1 / mois
- temps de réponse
- -25 %
Le contexte
- L'avant-vente se gère à la main : des échanges de mails et des fichiers Excel, sans centralisation.
- Chacun rédige ses propositions à partir de ses seules offres passées, sans voir celles du reste du département.
- Le temps manque pour élaborer la stratégie de réponse à un appel d'offres.
- Le projet existe déjà, mais il avance au ralenti et n'arrive presque pas en production.
Ma mission
- Reprise du rôle de tech lead sur un projet au ralenti, remise en production dès la première semaine puis une livraison par mois.
- Définition de l'architecture, côté code comme côté infrastructure.
- Arbitrage des décisions techniques et relecture des pull requests.
- Rédaction des documents techniques et de l'analyse d'impact métier (BIA).
- Orchestration de deux applications et de deux développeurs, un senior sur le portail, un alternant sur le moteur IA.
- Interface avec le métier, et latitude sur la composition de l'équipe.
Décisions et arbitrages
- 01
Rapatrier la recherche vectorielle dans la base plutôt qu'un service managé
ProblèmeLa recherche s'appuie sur un service managé, qui n'est pas conforme au provider LLM imposé et coûte cher même à faible usage.
SolutionMigration du stockage et de la recherche vers PostgreSQL et son extension pgvector. Un service externe produit toujours les embeddings, à travers une interface que l'entreprise fournit et qui garantit que les données ne quittent pas l'infrastructure.
Pourquoi ce choixLa gouvernance des données prime : garder embeddings et recherche dans la base maison lève le point de conformité, préalable posé avant tout lancement de la partie IA, et réutiliser Postgres évite le coût d'un service dédié sous-employé. En contrepartie, la recherche vectorielle est à opérer et à régler soi-même.
- 02
Indexer par chapitre plutôt que par tokens
ProblèmeLa première version découpe les documents par tokens, ce qui fragmente des sections cohérentes et brouille la recherche.
SolutionDécoupage par section métier, enrichi de métadonnées (client, secteur, type). La récupération filtre d'abord sur ces critères structurés, puis classe par similarité sémantique.
Pourquoi ce choixQuelques réunions avec le métier ont montré que la pertinence d'une offre passée tient d'abord à des critères structurés, avant la proximité sémantique. Le filtre structuré rend aussi le résultat explicable et compense l'absence d'index vectoriel dédié.
- 03
Confier les prompts au métier, comme une donnée versionnée
ProblèmeLe prompt d'un cas d'usage est une donnée profondément métier, mais le modifier suppose un développeur et un redéploiement.
SolutionLes prompts vivent dans un store versionné ; un senior bid manager les édite dans une interface dédiée, les teste, puis les promeut lui-même en production. Chaque version reste tracée et se restaure en un clic.
Pourquoi ce choixRendre le métier autonome sur sa propre donnée raccourcit la boucle d'itération et l'implique dans la qualité. Le risque de casser ce qui marche reste contenu par la traçabilité, le retour arrière immédiat et la formation des utilisateurs.
Ce que ce projet m'a apporté
- Reprise d'un projet au ralenti et retour en production en une semaine, puis à cadence mensuelle.
- Encadrement différencié selon le profil : arbitrage léger avec un senior de confiance, accompagnement rapproché d'un alternant.
- Décision d'architecture sous contrainte de gouvernance, posée comme préalable au lancement de la partie IA.
- Conception d'un moteur de récupération hybride, structuré et sémantique, dans une base unique.
- Autonomisation du métier sur une donnée technique, avec traçabilité et retour arrière.
- Rédaction de l'analyse d'impact métier (BIA) et arbitrage FinOps sur les services retenus.
Avec le recul
- Basculer les workflows IA longs et ponctuels sur du serverless (Durable Functions), où le démarrage à froid reste négligeable au regard de temps de réponse en secondes.
- Outiller la pré-ingestion du corpus pour accélérer son alimentation, aujourd'hui trop lente.