メインコンテンツへスキップ
Colab で開く Instructor は、LLM から JSON などの構造化データを簡単に取得できる軽量ライブラリです。このガイドでは、Weave で Instructor の Call をトレースして、構造化抽出のデバッグ、Pydantic の検証の取得、再試行ロジックの確認を行う方法を説明します。

トレース

開発時と本番環境の両方で、言語モデルアプリケーションのトレースを一元的に保存することが重要です。これらのトレースは、デバッグに役立つだけでなく、アプリケーションの改善に役立つデータセットとしても活用できます。 Weave は Instructor のトレースを自動的に取得します。トラッキングを開始するには、weave.init(project_name="[YOUR-WANDB-PROJECT-NAME]") を呼び出し、通常どおりライブラリを使用します。

独自のopsをトラッキングする

関数を@weave.opでラップすると、inputs、outputs、アプリのロジックの取得が始まり、データがアプリ内をどのように流れるかをデバッグできるようになります。opsは深くネストできるため、トラッキングしたい関数のツリーを構築できます。また、試行錯誤を進める中でコードのバージョン管理も自動的に始まり、Gitにコミットされていないアドホックな詳細を取得できます。 @weave.opでデコレートした関数を作成します。 以下の例では、extract_person関数が@weave.opでラップされたメトリクス関数です。これにより、OpenAIのChat Completionの呼び出しのような中間stepも確認できます。

より簡単に実験できるように Model を作成する

構成要素が多いと、実験を整理するのは難しくなります。Model クラスを使用すると、system prompt や使用中のモデルなど、アプリの実験に関する詳細を取得して整理できます。これにより、アプリの異なるイテレーションを整理し、比較しやすくなります。 コードのバージョン管理や入力と出力の取得に加えて、Model はアプリケーションの動作を制御する構造化パラメーターも取得できるため、どのパラメーターが最も効果的だったかを見つけられます。また、Weave Models は serveEvaluation と組み合わせて使用することもできます。 次の例では、PersonExtractor を使って実験できます。これらのいずれかを変更するたびに、PersonExtractor の新しい version が作成されます。

Weave Model をサービングする

weave.Model を保存すると、これを FastAPI endpoint としてサーブして、ノートブックの外部からテストしたり、他のアプリケーションと統合したりできます。weave.Model オブジェクトの weave reference があれば、FastAPI サーバーを起動して serve できます。 ターミナルで次のコマンドを実行すると、モデルをサーブできます: