この記事の対象者
- Pythonがある程度わかる人
- 生成AIアプリ制作をしたい人
- LangSmithって聞いたことあるけど何ぞやって人
LangSmithとは
At LangChain, all of us have LangSmith’s tracing running in the background by default. On the Python side, this is achieved by setting environment variables, which we establish whenever we launch a virtual environment or open our bash shell and leave them set. The same principle applies to most JavaScript environments through process.env1.
The benefit here is that all calls to LLMs, chains, agents, tools, and retrievers are logged to LangSmith. Around 90% of the time we don’t even look at the traces, but the 10% of the time that we do… it’s so helpful. We can use LangSmith to debug:
An unexpected end result
Why an agent is looping
Why a chain was slower than expected
How many tokens an agent used
公式サイトによると上記の説明がされています。
簡単にいうと90%の時間はログを見ないけど10%の時間はログを見るよね、だからLangSmithは役に立つんだよと
具体的には
- 予期せぬ処理結果
- エージェントがループしている
- chainの実行が想定より遅い
- どれくらいのトークンをエージェントは使用しているのか
と言ったことに役立つそう
簡単にいうとLangchainのデバックツールとしてダッシュボードが用意されているみたいな感じなのかな
確かにlangchainを触っていて上記について困ったことが多かったので役立ちそう。
1. とりあえずチュートリアルを初めてみる
pip install -U langchain_openai
でlangchainをインストールします。
2. 続いてshellで以下のコマンドを実行し環境変数を設定します。
LangChanin_API_KEYはLangSmithのダッシュボードからcreate Api keyで作成したものを入れてください。
LANGCHAIN_PROJECTは特にこだわりがなければdefaultを設定してください。
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_ENDPOINT=https://api.smith.langchain.com
export LANGCHAIN_API_KEY=<your-api-key>
export LANGCHAIN_PROJECT=<your-project> # if not specified, defaults to "default"
# The below examples use the OpenAI API, so you will need
export OPENAI_API_KEY=<your-openai-api-key>
3.続いてpythonのコードに移ります。
from langchain_openai import ChatOpenAI
llm = ChatOpenAI()
llm.invoke("Hello, world!")
至ってシンプルなllmを使用したコードになります。
適当にファイル名をつけて保存し実行してください。
ダッシュボードに戻って確認すると行が増えています。
トークン数や実行時間、コストなどもわかるようになっています。
終わりに
以上で今回のチュートリアルは終わりになります。
今まではLangchainを使ったアプリケーションを作成する上でトークン数の計算を自前のコードで行う必要がありましたが、ちょっとした設定でトークン数やコスト以外の色々な情報にアクセスできるのは便利ですね!
しかし、Langchainのドキュメントはそれほど多くなく英語のものばかりで情報収集が大変ですが本番で扱えるレベルになるまでこちらの勉強は継続していこうと思います。
記事を読んでくださった方は、是非弊社開発課のXもフォローしてね:ぽっ:
毎日エンジニアに向けた情報発信を行っています