チャットボットを停止させる関数を定義する
チャットボットの状態が準備できたので、次はチャートボットのグラフ全体のワークフローを管理する関数を作成します。最初のステップとして、state(すでに読み込まれています)内のチャットボットの最後のメッセージにツール呼び出しがあるかを確認する should_continue() 関数を作成します。ツール呼び出しがなければチャットボットは停止します。ツールが呼び出されていれば、チャットボットは次のタスクに進みます。メッセージを管理するために、次のモジュールがインポート済みです。
from langgraph.graph import MessagesState, START, END
この演習はコースの一部です
LangChainで設計するエージェント型システム
演習の手順
MessagesStateを使ってstateパラメーターの入力型を指定します。- ツール呼び出しを確認するため、
stateから"messages"を使って最後のメッセージにアクセスします。 - 最後のメッセージに
tool_callsが含まれるかを確認し、含まれる場合は戻り値として"tools"を指定します。 tool_callsがない場合は会話を終了するため、戻り値としてENDを指定します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Use MessagesState to define the state of the function
def should_continue(state: ____):
# Get the last message from the state
last_message = ____["____"][____]
# Check if the last message includes tool calls
if ____.____:
return "____"
# End the conversation if no tool calls are present
return ____