Hugging Face SpacesにデプロイしたStreamlitアプリをLangSmithと連携する
前回ファインチューニングしたLLMでチャットボットを作り、
Hugging Face Spacesにデプロイしました。
で、実際このチャットボットがどれくらい使われるのかを見てみたいので、
このStreamlit製のアプリケーションからLangSmithにトレースログを送れるように連携してみます。
よければチャットボット触ってみてください。
猫と戯れることができます。
LangSmith側の設定
サインアップ
まずはLangSmithにサインアップします。
APIキーを払い出す
LangSmithのエンドポイントにアクセスするためのAPIキーを払いだします。
LangChainを使う場合と使わない場合のサンプルコードもあるので控えておきます。
環境変数を設定する
Hugging Face Spacesに環境変数を設定する
StreamlitアプリをデプロイしているHugging Face SpacesのSettingsに
Variables and secretsという項目があるのでAPIキーなどを設定します。
環境変数を読み込む
続いてStreamlitアプリケーション側に環境変数を読み込んで
LangSmithの設定を初期化するように設定します。
os.environ["LANGSMITH_TRACING"] = os.getenv("LANGSMITH_TRACING")
os.environ["LANGSMITH_ENDPOINT"] = os.getenv("LANGSMITH_ENDPOINT")
os.environ["LANGSMITH_API_KEY"] = os.getenv("LANGSMITH_API_KEY")
os.environ["LANGSMITH_PROJECT"] = os.getenv("LANGSMITH_PROJECT")
LangSmith連携のために追加したコードは実際これだけでした。
おそらくLangChain以外から使う場合にはもうちょっとなんかやる必要がありそうです。
動かしてみる
アプリケーション側
チャットボットで何度かLLMで回答を生成します。
LangSmith側
トレースログが収集されています。
プロンプトやアウトプットはもちろん、トークン数やレイテンシ、アプリケーションのランタイム情報なども参照できます。
また、Dashboardsにグラフを作成するとRunCountやLatencyの遷移もわかりやすくなります。
試しにRunCountをグラフ化してみるとこんな感じになりました。
おわり
今回はHugging Face Spacesにデプロイしたチャットボットの稼働状況を監視するためにLangSmithと連携を試してみました。
LangSmith事態は初めて触りましたが、今回触った範囲以外にもデータセットの評価やプロンプトの管理などのLLMOpsのための機能があるようなので、また機会を見て触ってみたいと思います。
Discussion