メインコンテンツへスキップ
これはインタラクティブ ノートブックです。ローカルで実行することも、以下のリンクから利用することもできます。
生成された LLM の応答を自動評価するのは難しい場合があります。応答をより適切に評価して改善するには、問題のある箇所を特定するために、ユーザーからの直接的なフィードバックを追加で収集できます。 このノートブックでは、カスタム チャットボットの応答に関するユーザーフィードバックを収集する方法を紹介します。Streamlit を使ってインターフェースを構築し、LLM とのやり取りとフィードバックを W&B Weave に記録します。最終的には、各応答を Weave にログし、ユーザーによる高評価・低評価のリアクションや自由記述のフィードバックもあわせて記録する、動作するチャットボットが完成します。これにより、本番環境でのやり取りを確認し、改善点を特定できます。

セットアップ

まず、必要なパッケージをインストールし、チャットボットが OpenAI API を呼び出して Weave に Call をログできるよう、OpenAI と W&B の APIキーを設定します。
次に、chatbot.py という名前のファイルを作成し、以下の内容を記述します。このファイルでは、Streamlit のチャットインターフェースを定義し、各レスポンスがトラッキングされるように OpenAI の呼び出しを Weave op でラップし、対応する Weave Call にリアクションとメモを関連付けるフィードバックコントロールを表示します。
これは streamlit run chatbot.py で実行できます。 これで、このアプリケーションを操作し、各応答の後でフィードバックボタンをクリックできます。添付されたフィードバックを確認するには、Weave UI にアクセスします。各チャットのやり取りは Weave call として記録され、送信したリアクションやメモは、その応答を生成した call に紐付けられます。

説明

次のセクションでは、チャットボットで使用している主要な Weave API を順に説明します。ここで紹介するパターンは、ご自身のアプリケーションにも同様に適用できます。 次のデコレータ付きの予測関数を見てみましょう。
通常どおり、これを使用してモデルの応答をユーザーに返すことができます。
feedback を添付するには、通常どおりに関数を呼び出すのではなく、.call() メソッドを使って取得した call オブジェクトが必要です:
この特定の応答にフィードバックを関連付けるには、このcallオブジェクトが必要です。callを実行すると、オペレーションの出力をresultとして利用できます。 callオブジェクトを取得したら、その特定の応答に対するユーザーフィードバックを記録できます。

まとめ

このチュートリアルでは、Streamlit を使用して、Weave で入力と出力を取得し、あわせてユーザーのフィードバックを取得するための高評価・低評価ボタンを備えたチャット UI を構築しました。