1. 学ぶ
  2. /
  3. コース
  4. /
  5. LangChainで設計するエージェント型システム

Connected

演習

LLM の応答を返す関数を作成する

あなたのチャットボットには、すでに多くのツールが用意されています。ただし、チャットボットに追加したツールと無関係な質問には、LLM 単体で応答させることも依然として有用です。ここでは、会話の最後のメッセージにツール呼び出しが含まれているかを確認する関数を定義します。もしツール呼び出しがなければ、チャットボットは単純に LLM を使って回答を返します。ユーザーからの問い合わせとチャットボットの応答の両方を扱えるように、次のモジュールがインポートされています。

from langchain_core.messages import AIMessage, HumanMessage

指示

100 XP
  • "messages" を使って state から最後のメッセージにアクセスします。
  • last_message が AIMessage であり、かつそのメッセージが tool_calls を持つかどうかを確認する条件文を書きます。
  • 条件を満たす場合は、last_message の tool_calls から最初の "response" を取り出し、AIMessage の content フィールドに設定して返します。
  • 条件を満たさない場合は、model_with_tools に .invoke() を適用し、state["messages"] から会話履歴全体を渡してレスポンスを生成します。