experimental_telemetry オプションによる OpenTelemetry サポートが組み込まれています。
このガイドでは、Vercel AI SDK のトレースを Weave に送信するよう OTel を設定し、Weights & Biases UI で AI SDK の Call を監視・デバッグできるようにする方法を説明します。AI SDK は Next.js と組み合わせて使用することも、スタンドアロンの Node.js アプリケーションで使用することもできます。このガイドは、Vercel AI SDK を使って AI を活用したアプリケーションを構築しており、既存のアプリケーションにトレースを追加したい開発者を対象としています。
Weave での OTel トレースの詳細については、OTel トレースを Weave に送信するを参照してください。
前提条件
始める前に、以下のセットアップを完了してください。このガイドの Next.js と Node.js のサンプルでは、どちらも同じ依存関係が必要です。-
以下の Vercel および OTel ライブラリをインストールします。
-
以下の環境変数を設定します。
W&B APIキーは User Settings から取得できます。
Next.js で OTel トレースを設定する
このセクションでは、Next.js アプリで Weave を設定する方法を説明します。この例はアプリ全体ではなく、インストルメンテーションの設定と、Vercel AI SDK の関数 (ここでは OpenAI の Call) に対してインストルメンテーションを呼び出す方法のみを示しています。インストルメンテーションを設定する
Next.js アプリケーションでは、instrumentation.ts ファイルを使用して OTel を設定します。このファイルはサーバーの起動時に一度だけ実行され、AI SDK が使用するトレーサープロバイダーを設定します。
Weave を Vercel の OTel 機能と統合するには、project のルートに instrumentation.ts ファイルを作成し、次のコードを追加します。その際、resourceFromAttributes() 関数内のチーム名とプロジェクト名をご自身のものに置き換えてください。
instrumentation.ts
関数でテレメトリを設定する
インストルメンテーションを追加したら、AI SDK の任意の関数 Call で Vercel のexperimental_telemetry オプションを使用し、OTel スパンを出力します。
route.ts
generateText の Call はすべて OTel スパンを生成し、それらのスパンは Weave にエクスポートされます。これで、Next.js アプリから Vercel AI SDK のトレースを Weave に送信するための設定が完了しました。
Node.js 向けに OTel トレースを設定する
Next.js を使用していない場合は、スタンドアロンの Node.js アプリケーションで OTel を直接設定できます。スタンドアロンの Node.js アプリケーションでは、エントリファイルの先頭で、AI SDK の Call より前にトレーサープロバイダーを設定してください。これにより、以降の AI SDK の Call が取得されるようになります。 前提条件を満たしていれば、追加の設定なしで次の例を実行し、スパンを生成できます。test-app.ts
BatchSpanProcessor はスパンを非同期でフラッシュします。スタンドアロンスクリプト、サーバーレス関数、CLI ツールなど、短時間で終了するプロセスでは、すべてのスパンを確実に Weave へ送信するため、プロセスの終了前に provider.shutdown() を呼び出してください。長時間稼働するサーバー (instrumentation.ts 経由で起動する Next.js の開発サーバーなど) では、この処理は不要です。