チャットボット用グラフの構築

LangChainで設計するエージェント型システム

Dilini K. Sumanapala, PhD

Founder & AI Engineer, Genverv, Ltd.

LangGraph でのチャットボット

チャットボットの頭部

 

  • LangGraph でカスタムエージェント

     
    • ワークフロー管理
      • グラフ状態
      • エージェント状態
    • チャットボット構築
      • ノード
      • エッジ
LangChainで設計するエージェント型システム

グラフとエージェント状態

LangGraph アイコン

   

グラフ状態

  • 複数タスクを整理
    • ツール使用
    • LLM 呼び出し
  • タスク順序 = ワークフロー

エージェント状態

  • 進捗を追跡
  • タスク完了を記録
LangChainで設計するエージェント型システム

LangGraph でエージェントを構築

大きな本の上で読書する人々。

情報を表す虫眼鏡。

LangChainで設計するエージェント型システム

ノードとエッジ

チャットボットの図。

   

ノード

  • 関数またはアクション
    • 応答
    • ツール呼び出し

エッジ

  • ノードをつなぐ規則
LangChainで設計するエージェント型システム

ノードとエッジ

最初のエッジが強調されたチャットボット図。

   

ノード

  • タスクまたはアクション
    • 応答
    • ツール呼び出し

エッジ

  • ノードをつなぐ規則
LangChainで設計するエージェント型システム

ノードとエッジ

2つ目のエッジが強調されたチャットボット図。

   

ノード

  • タスクまたはアクション
    • 応答
    • ツール呼び出し

エッジ

  • ノードをつなぐ規則
LangChainで設計するエージェント型システム

ノードとエッジ

全体が強調されたチャットボット図。

   

ノード

  • タスクまたはアクション
    • 応答
    • ツール呼び出し

エッジ

  • ノードをつなぐ規則

事前構築ノード

LangGraph の STARTEND ノード

LangChainで設計するエージェント型システム

グラフ状態とエージェント状態の構築

# Modules for structuring text
from typing import Annotated
from typing_extensions import TypedDict


# LangGraph modules for defining graphs from langgraph.graph import StateGraph, START, END from langgraph.graph.message import add_messages
# Module for setting up OpenAI from langchain_openai import ChatOpenAI
LangChainで設計するエージェント型システム

グラフ状態とエージェント状態の構築

# Define the llm
llm = ChatOpenAI(model="gpt-4o-mini", api_key="OPENAI_API_KEY")


# Define the State class State(TypedDict):
# Define messages with metadata messages: Annotated[list, add_messages]
# Initialize StateGraph graph_builder = StateGraph(State)
LangChainで設計するエージェント型システム

ノードとエッジの追加

# Define chatbot function to respond
# with the model
def chatbot(state: State):
    return {"messages": 
    [llm.invoke(state["messages"])]}


# Add chatbot node to the graph graph_builder.add_node("chatbot", chatbot)

チャットボットノード。

LangChainで設計するエージェント型システム

ノードとエッジの追加

# Define the start and end of the 
# conversation flow
graph_builder.add_edge(START, "chatbot")
graph_builder.add_edge("chatbot", END)


# Compile the graph to prepare for # execution graph = graph_builder.compile()

チャットボットの図。

LangChainで設計するエージェント型システム

Passons à la pratique !

LangChainで設計するエージェント型システム

Preparing Video For Download...