inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Hệ thống RAG triển khai bằng AI Agent (với LangGraph)

Sử dụng Agent trong LangChain

서브그래프로 구성된 워크플로우 설계 조언을 듣고 싶습니다

124

yeongjae80669468

158 câu hỏi đã được viết

0

안녕하세요 선생님

image.png

 

위 이미지처럼 추후 서브그래프로 들어갈 CSV 관련 코드 작성 및 실행 워크플로우를 구성했는데, 테스트를 통해서 동작은 확인했습니다

그런데 마지막 execute_node가 python_repl로 실행만 하는 노드라서 실패했을 때 워크플로우가 중간에 다시 돌아갈 때 원인이 전달되지 않아서 수정이 잘 될지가 걱정됩니다.

에러까지 넘겨야 할지, 아니면 code_gen node에서 agentexecutor api로 tool_call로 python_repl을 연결한 다음 validation 노드를 타는 게 더 나을지 고민 중인데, 이렇게 하면 코드 실행 실패할 때마다 그래프 시각화가 여러 번 나올 것 같아서 어떤 접근법이 좋을지 조언 부탁드립니다

 

감사합니다

 

llm langchain rag ai-agent langgraph

Câu trả lời 1

0

pdstudio

안녕하세요. 판다스 스튜디오입니다.
제가 정확하게 코드를 확인하지 못한 상태라서, 아이디어 차원에서 답변 드립니다.

기존 워크플로우 구조를 유지하면서 execute_node에서 실패했을 때 에러 정보를 상태에 저장하여 code_gen_node로 돌아가게 하는 방식으로 처리하면 어떨까 싶습니다.

code_gen node에서는 이 에러정보를 컨텍스트로 활용해서 코드를 개선하는데 사용할 수 있을 것 같습니다.


1. 강의에서 설명한 방식 : 조건부 엣지를 활용한 라우팅

def execute_node(state):
    code = state["code"]
    try:
        result = python_repl.run(code)
        return {"result": result, "status": "success"}
    except Exception as e:
        # 에러 정보를 상태에 저장
        return {"error": str(e), "status": "error"}

def router_after_execute(state):
    if state.get("status") == "success":
        return END
    elif state.get("status") == "error":
        return "code_gen_node"


2. Command 방식 (최근 업데이트)

from langgraph.types import Command

def execute_node(state):
    code = state["code"]
    try:
        result = python_repl.run(code)
        # 성공 시 END로 이동
        return Command(
            goto=END,
            update={"result": result, "status": "success"}
        )
    except Exception as e:
        # 에러 발생 시 code_gen_node로 이동
        return Command(
            goto="code_gen_node",
            update={"error": str(e), "status": "error"}
        )
    if state.get("status") == "success":
        return END
    elif state.get("status") == "error":
        return "code_gen_node"

1

yeongjae80669468

선생님 답변 감사합니다
그런데 생각해보니 에러 상황을 정확히 전달하려면 관련 코드도 함께 공유해야 맥락이 더 잘 전달될 것 같은데, 그러면 컨텍스트 내용이 좀 길 것 같아서 일단은 프롬프트 엔지니어링으로 최대한 진행해보려고 합니다. 우선은 전체 그래프를 모두 연결해서 한 번 실행해보는 것이 궁금해서요

섹션2-11 내용중 tool_call

0

15

1

gradio 를 통한 챗봇 인터페이스 실습이 진행되지 않습니다.

0

40

1

모델의 성능에 따라서 선택하는 도구가 많이 차이 나나요?

0

140

2

Fan-in 시 여러개 노드에서 하나로 병합되는 과정에서 질문 입니다.

0

77

3

로드맵

0

109

2

강의 46에서 노드의 병렬 수행시 Thread-Safety 문제는 없을까요?

0

104

2

similarity_search 후 왜 다시 LLM을 통해 grade를 측정 하나요?

0

104

2

agent_executor 실행시 JSONDecodeError에러가 발생해요.

0

143

4

툴의 숫자가 많을때 동작

0

120

2

안녕하세요 후속강의 듣고 싶은데, 비용이 부담되어서..

0

137

2

[실습을 위한 환경 설정 방법] 자료가 없습니다.

0

174

3

최근 안내해주신 수강생 이벤트 관련 문의입니다.

0

108

1

AI 에이전트로 구현하는 RAG 시스템 수강생입니다.

0

154

1

수업 자료 문의

0

174

3

docker 환경에서 해당 서비스를 구성해보는 건 어떤가요?

0

173

2

numpy 설치 에러

0

485

1

The onnxruntime python package is not installed.

0

222

1

섹션 5, 사용자 정의 조건부 엣지 관련 질문입니다.

0

129

1

강사님의 LLM 모델의 버전이 어떻게 되나요?

0

223

1

Agent RAG 구현에서 '정보 추출 및 평가' 노드 결과 애러

0

126

2

메시지 그래프/피드백 루프 활용하기에서 질문

0

108

1

에이전틱 루프에서의 병렬 노드 구현 문의

0

138

2

[공유] llama3-groq 모델명 수정 필요

0

195

1

수업자료 문의

1

209

2