root layout

패스트캠퍼스

  1. 강의 질문
  2. AI TECH

LangGraph 기본 사용법의 조건과 방법 챕터의 엣지와 노드 도식화 이미지 관련하여 질문 드립니다.

2025.08.16 12:40 작성

LangGraph 기본 사용법의 조건과 방법 챕터에서 아래와 같이 코드를 변경한 뒤 이미지를 추출하면 첨부된 파일 형태로 출력됩니다.


엣지와 노드 구조가 a, b 조건 실습과는 다르게 표시되는데, 이러한 형식으로 출력되는 것이 맞을까요?



class State(TypedDict):

human_messages: Annotated[list[HumanMessage], add_messages]

ai_messages: Annotated[list[AIMessage], add_messages]

retry_num : int

def chatbot(state:State):

retry_num = state["retry_num"]

user_input = input(f"(현재 {retry_num}번째 답변) 사용자 입력: ")

ai_message = AIMessage(f"{retry_num}번째 답변중!")

return {"human_messages": [HumanMessage(content=user_input)], "ai_messages": [ai_message]}

def retry(state: State):

return {"retry_num" : state["retry_num"] + 1}

def route(state: State):

if "반복" in state["human_messages"][-1].content:

return "retry"

else:

return END

def build_chatbot_graph():

graph_builder = StateGraph(State)

graph_builder.add_node("chatbot", chatbot)

graph_builder.add_node("retry", retry)

graph_builder.add_edge(START, "chatbot")

graph_builder.add_conditional_edges("chatbot", route)

graph_builder.add_edge("retry", "chatbot")

return graph_builder.compile()

def save_graph_image(graph_builder, output_path: str = "4_step/graph.png"):

graph_image = graph_builder.get_graph().draw_mermaid_png()

with open(output_path, "wb") as f:

f.write(graph_image)

print(f"그래프 이미지가 {output_path}에 저장되었습니다.")

def print_chatbot_messages(result: dict):

print(result)

def run_chatbot_messages():

graph_builder = build_chatbot_graph()

# 스트리밍 모드로 변경

for chunk in graph_builder.stream({"human_messages" : "반복", "retry_num": 0}, stream_mode="updates"):

print(chunk)

for node, value in chunk.items():

if node:

print(node)

if "messages" in value:

# AI 메시지 출력

for msg in value.get("ai_messages", []):

print(f"AI: {msg.content}")

# Human 메시지 출력

for msg in value.get("human_messages", []):

print(f"Human: {msg.content}")

save_graph_image(graph_builder)

return None

def main():

# run_chatbot()

run_chatbot_messages()

if __name__ == "__main__":

main()





graph.png


답변 

연관 질문

커뮤니티 질문보기