챗봇용 그래프 구축

LangChain으로 에이전트형 시스템 설계하기

Dilini K. Sumanapala, PhD

Founder & AI Engineer, Genverv, Ltd.

LangGraph로 챗봇 구축

챗봇 아이콘

 

  • LangGraph로 커스텀 에이전트 구축

     
    • 워크플로 관리
      • 그래프 상태
      • 에이전트 상태
    • 챗봇 구성
      • 노드
      • 엣지
LangChain으로 에이전트형 시스템 설계하기

그래프와 에이전트 상태

LangGraph 아이콘

   

그래프 상태

  • 다양한 작업 조직화
    • 도구 사용
    • LLM 호출
  • 작업 순서 = 워크플로

에이전트 상태

  • 에이전트 진행 상황 추적
  • 작업 완료 기록
LangChain으로 에이전트형 시스템 설계하기

LangGraph로 에이전트 구축

큰 책 위에 앉아 독서하는 사람들.

정보를 나타내는 돋보기.

LangChain으로 에이전트형 시스템 설계하기

노드와 엣지

챗봇 다이어그램.

   

노드

  • 함수 또는 동작
    • 응답
    • 도구 호출

엣지

  • 노드를 연결하는 규칙
LangChain으로 에이전트형 시스템 설계하기

노드와 엣지

첫 번째 엣지가 강조된 챗봇 다이어그램.

   

노드

  • 작업 또는 동작
    • 응답
    • 도구 호출

엣지

  • 노드를 연결하는 규칙
LangChain으로 에이전트형 시스템 설계하기

노드와 엣지

두 번째 엣지가 강조된 챗봇 다이어그램.

   

노드

  • 작업 또는 동작
    • 응답
    • 도구 호출

엣지

  • 노드를 연결하는 규칙
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으로 에이전트형 시스템 설계하기

연습해 봅시다!

LangChain으로 에이전트형 시스템 설계하기

Preparing Video For Download...