experimental_telemetry.
Ce guide vous montre comment configurer OTel pour envoyer des traces du Vercel AI SDK vers Weave afin que vous puissiez observer et déboguer vos appels de l’AI SDK dans l’interface Weave. Vous pouvez utiliser l’AI SDK avec Next.js ou comme application Node.js autonome. Ce guide s’adresse aux développeurs qui créent des applications d’IA avec le Vercel AI SDK et qui souhaitent ajouter le traçage à une application existante.
Pour plus d’informations sur le traçage OTel dans Weave, voir Send OTel traces to Weave.
Prérequis
-
Installez les bibliothèques Vercel et OTel suivantes :
-
Définissez les variables d’environnement suivantes :
Vous pouvez obtenir votre clé API W&B dans les Paramètres utilisateur.
Configurer le traçage OTel pour Next.js
Configurer l’instrumentation
instrumentation.ts pour configurer OTel. Ce fichier s’exécute une seule fois au démarrage du serveur et configure le fournisseur de traceurs utilisé par l’AI SDK.
Pour intégrer Weave à la fonctionnalité OTel de Vercel, créez un fichier instrumentation.ts à la racine de votre projet et ajoutez-y le code suivant, puis mettez à jour la fonction resourceFromAttributes() avec le nom de votre équipe et celui de votre projet :
instrumentation.ts
Configurer la télémétrie sur une fonction
experimental_telemetry de Vercel sur n’importe quel appel de fonction de l’AI SDK pour émettre des spans OTel :
route.ts
generateText avec la télémétrie activée génèrent des spans OTel exportés vers Weave. Votre application Next.js est désormais configurée pour envoyer les traces du Vercel AI SDK vers Weave.
Configurer le traçage OTel pour Node.js
test-app.ts
BatchSpanProcessor vide les spans de manière asynchrone. Dans les processus de courte durée, comme les scripts autonomes, les fonctions serverless ou les outils CLI, appelez provider.shutdown() avant la fin du processus afin de vous assurer que tous les spans sont envoyés vers Weave. Pour les serveurs de longue durée d’exécution (comme un serveur de dév Next.js démarré via instrumentation.ts), ce n’est pas nécessaire.