見出し画像

LangChain のデバッグツール Tracing を試す

「LangChain」のデバッグツール「Tracing」を試したので、まとめました。

・LangChain 0.0.96
・Python 3.9

1. Tracing

「Tracing」は、「LangChain」のデバッグツールです。チェーンとエージェントをツリー構造で可視化することができます。「Tracing」はDockerで提供されています。

2. Tracingの起動

今回はDockerが必要なので、「Google Colab」でなくローカルで実行します。

(1) Dockerのインストール。

(2) Pythonの仮想環境 で「langchain」をインストール。

$ pip install langchain

(3) 「langchain-server」を起動。
Dockerが起動してる状態で実行してください。

$ langchain-server

成功すると、「Tracing」のURLが表示されます。

   ➜  Local:   http://localhost:4173/

(4) ブラウザで表示されたURLを開く。
セッション一覧が表示されます。「セッション」は、トレースをグループ化したものになります。

(5) 「Session default」をクリック。
セッション情報が表示されます。まだ何も実行されてません。

3. LangChainの実行

Jupyter NotebookでLangChainを実行します。

(1) Pythonの仮想環境 で「Jupyter Notebook」のインストール。

$ pip install notebook

(2) 「Jupyter Notebook」の起動。

$ jupyter notebook

(3) 「New → Python 3」でPythonのノートブックを作成。

(4) パッケージのインストール。

# パッケージのインストール
!pip install langchain
!pip install openai

(3) 環境変数の準備。
LANGCHAIN_HANDLER」は、トレースを使用する環境を指定しています。 <OpenAI_APIのトークン> にはOpenAI APIのトークンを指定します。(有料)

import os
os.environ["OPENAI_API_KEY"] = "<OpenAI_APIのトークン>"
os.environ["LANGCHAIN_HANDLER"] = "langchain"

(4) 動作確認用にエージェントを実行。
ツール「llm-math」を持つエージェントを作成し、「2の.123243乗は?」と質問してます。

import langchain
from langchain.agents import Tool, initialize_agent, load_tools
from langchain.llms import OpenAI

# エージェントの準備
llm=OpenAI(temperature=0)
agent = initialize_agent(
    tools= load_tools(["llm-math"], llm=llm), 
    llm=llm, 
    agent="zero-shot-react-description", 
    verbose=True
)

# エージェントの実行
agent.run("2の.123243乗は?")
> Entering new AgentExecutor chain...
 I need to calculate the power of a number
Action: Calculator
Action Input: 2^.123243
Observation: Answer: 1.0891804557407723

Thought:
Retrying langchain.llms.openai.BaseOpenAI.completion_with_retry.<locals>._completion_with_retry in 4.0 seconds as it raised Timeout: Request timed out: HTTPSConnectionPool(host='api.openai.com', port=443): Read timed out. (read timeout=600).
 I now know the final answer
Final Answer: 1.0891804557407723

> Finished chain.
'1.0891804557407723'

4. トレース結果の確認

「Tracing」のセッション情報に戻り、ブラウザを更新すると、トレース結果を確認できます。

「Explore」で、チェーンやLLMごとの情報を確認できます。



この記事が気に入ったらサポートをしてみませんか?