Skip to main content
Ce guide explique comment intégrer des bibliothèques tierces (par exemple, OpenAI) au SDK TypeScript de Weave. Il s’adresse aux développeurs TypeScript qui souhaitent que Weave trace automatiquement les appels aux bibliothèques prises en charge dans leur application. Weave prend en charge l’instrumentation automatique, ce qui simplifie la configuration et limite les réglages manuels.
Qu’est-ce qui a changé ? Depuis la PR #4554, Weave patche automatiquement les bibliothèques prises en charge, comme OpenAI, dès son chargement. Vous n’avez plus besoin de les encapsuler manuellement :
Dans la plupart des cas, Weave s’en charge automatiquement. Certains cas limites peuvent toutefois se présenter.

Utiliser les intégrations Weave avec votre projet TypeScript

Les sections suivantes expliquent comment identifier le système de modules utilisé par votre projet, puis comment configurer ce projet afin que Weave puisse instrumenter automatiquement les bibliothèques tierces prises en charge. Les projets TypeScript peuvent utiliser le système de modules CommonJS ou ESM, et la configuration requise diffère légèrement de l’un à l’autre.

Si vous ne savez pas de quel type de projet il s’agit

Si vous exécutez directement un fichier TypeScript avec un outil tel que :
votre environnement peut déterminer implicitement le système de modules. Pour garantir un comportement cohérent, définissez explicitement les fichiers package.json et tsconfig.json. Pour déterminer si un projet utilise CommonJS ou ESM, consultez le champ type du fichier package.json :
  • Si type vaut "module", le projet utilise ESM.
  • Si le champ type est absent ou défini sur "commonjs", le projet utilise CommonJS par défaut.

Configurer un projet CommonJS

Pour les projets CommonJS, l’instrumentation automatique fonctionne sans configuration supplémentaire. Pour configurer votre projet pour CommonJS :
  1. Créez ou mettez à jour votre fichier package.json :
  2. Créez un fichier tsconfig.json avec des paramètres compatibles avec CommonJS :
    Ces paramètres configurent TypeScript pour compiler vers CommonJS :
    • module: "CommonJS". Compile les modules au format CommonJS (require ou module.exports). Pour plus de détails sur cette option du compilateur, consultez TypeScript - Module.
    • target: "es2022" (recommandé). Génère du JavaScript moderne compatible avec les versions récentes de Node.js. Pour plus de détails sur cette option du compilateur, consultez TypeScript - Target.
    • rootDir: ".". Définit le répertoire contenant tsconfig.json comme racine de vos fichiers d’entrée. TypeScript s’en sert, avec outDir, pour reproduire l’arborescence de votre dossier source dans la sortie. Pour plus de détails sur cette option du compilateur, consultez TypeScript - Root Dir.
    • outDir: "dist". Écrit le JavaScript généré et les autres sorties du compilateur dans le dossier dist. Pour plus de détails sur cette option du compilateur, consultez TypeScript - Out Dir.
  3. Installez Weave et les autres bibliothèques requises :
  4. Compilez votre fichier TypeScript. Par exemple, pour un fichier test.ts :
    Cette commande génère le fichier compilé dist/test.js.
  5. Exécutez le fichier compilé avec Node.js :
Votre projet CommonJS est désormais configuré pour que Weave instrumente automatiquement les bibliothèques prises en charge à l’exécution de votre code. Comme CommonJS s’appuie sur le chargeur de modules require de Node.js, Weave peut instrumenter automatiquement ces bibliothèques sans l’option --import nécessaire dans les projets ESM.

Configurer un projet ESM

Pour utiliser Weave avec un projet TypeScript ESM, configurez votre projet pour l’ESM de Node.js, compilez votre code, puis lancez Node.js avec l’option --import afin que Weave puisse enregistrer son instrumentation avant le chargement des autres modules. Pour configurer votre projet pour l’ESM :
  1. Créez ou mettez à jour votre fichier package.json :
  2. Créez un fichier tsconfig.json avec des paramètres ESM compatibles avec Node :
    Ces paramètres configurent TypeScript pour compiler vers l’ESM moderne de Node.js :
    • module: "nodenext". Compile les modules selon la sémantique ESM de Node.js. Pour en savoir plus sur cette option du compilateur, consultez TypeScript - Module.
    • moduleResolution: "nodenext". Garantit que la résolution des modules respecte les règles ESM de Node.js. Pour en savoir plus sur cette option du compilateur, consultez TypeScript - Module Resolution.
    • target: "es2022" (recommandé). Génère du JavaScript moderne compatible avec les versions récentes de Node.js. Pour en savoir plus sur cette option du compilateur, consultez TypeScript - Target.
    • rootDir: ".". Définit le répertoire contenant tsconfig.json comme racine de vos fichiers d’entrée. TypeScript s’en sert avec outDir pour reproduire l’arborescence de vos dossiers sources dans la sortie. Pour en savoir plus sur cette option du compilateur, consultez TypeScript - Root Dir.
    • outDir: "dist". Écrit le JavaScript généré et les autres sorties du compilateur dans le dossier dist. Pour en savoir plus sur cette option du compilateur, consultez TypeScript - Out Dir.
  3. Installez Weave ainsi que toute autre bibliothèque requise :
  4. Compilez votre fichier TypeScript. Par exemple, pour un fichier test.ts :
    Cette commande compile le fichier en dist/test.js.
  5. Exécutez le fichier compilé avec Node.js en préchargeant l’instrumentation Weave :
L’option --import garantit que le module weave/instrument est chargé avant les autres modules, ce qui permet à Weave d’instrumenter automatiquement les bibliothèques et intégrations prises en charge. Weave doit être installé localement dans le projet que vous exécutez. Votre projet ESM est désormais configuré : Weave précharge son instrumentation avant les autres modules et trace automatiquement les appels aux bibliothèques prises en charge.

Utilisation avancée et dépannage

Les sections suivantes présentent les cas limites et les solutions de contournement à appliquer lorsque le patching automatique du SDK TypeScript ne fonctionne pas comme prévu. Des problèmes peuvent notamment survenir dans les environnements exclusivement ESM, avec des configurations de bundler comme Next.js ou dans des environnements d’exécution restreints. Si des traces sont manquantes ou si vous rencontrez des problèmes d’intégration, commencez par cette section.

Utiliser NODE_OPTIONS (uniquement pour ESM)

Utilisez NODE_OPTIONS avec prudence, car cette variable affecte tous les processus Node.js de l’environnement et peut provoquer des effets de bord.
Si vous utilisez un projet ESM et ne pouvez pas transmettre d’options en ligne de commande (par exemple, en raison de contraintes imposées par des outils CLI ou des frameworks), définissez la variable d’environnement NODE_OPTIONS :

Compatibilité avec les bundlers

Certains frameworks et bundlers, comme Next.js, peuvent empaqueter les bibliothèques tierces de telle sorte que Node.js ne puisse plus leur appliquer de patch au moment de l’exécution. Si c’est le cas de votre configuration, essayez les étapes suivantes :
  1. Déclarez les bibliothèques LLM comme externes dans la configuration de votre bundler. Le bundler ne les empaquette alors pas, et Weave peut leur appliquer correctement un patch au moment de l’exécution. L’exemple suivant montre comment déclarer le package openai comme externe dans une configuration next.config.js, afin que le bundler ne l’empaquette pas. Le module est chargé au moment de l’exécution, ce qui permet à Weave de lui appliquer automatiquement un patch et d’en assurer le suivi. Utilisez cette configuration avec des frameworks tels que Next.js pour activer l’instrumentation automatique.
  2. Si le patching échoue toujours, rabattez-vous sur l’instrumentation manuelle.

Patching manuel (solution de repli)

Le patching manuel est l’approche historique. Ne l’utilisez que si le patching automatique ne fonctionne pas.
Dans certains cas, vous devrez peut-être encore utiliser l’instrumentation manuelle :
Dernière modification le 30 septembre 2026