
🗓️기간
14주차 : 2025.05.26~2025.05.30 ( 5월 5주 )
#. 한 주를 보내며...
이번 주에는 RAG 시스템의 핵심 요소 중 하나인 LangChain의 심화 기능, 특히 Runnable Agent에 대해 집중적으로 학습했다. 이전까지는 단일 Chain이나 Tool을 통해 기능을 분리해왔다면, 이번에는 다양한 기능들을 유연하게 조합하고 관리할 수 있는 실행형 에이전트 구조를 실습하며 한 단계 도약하는 느낌을 받았다.
1. 좋았던 점
LangChain 최신 구조에 대한 감 잡기: LCEL(LangChain Expression Language)와 Runnable 구조를 실습하면서 이전보다 훨씬 직관적인 흐름과 모듈화된 구조로 체계를 잡을 수 있었다.
도메인 분기 처리에 유용함: FM(축구선수)과 HR(내부자료) 질문을 자동으로 분류하고, 각각의 Tool 또는 RAG 체인을 실행하는 구조를 하나의 Agent에서 다룰 수 있어 현실적인 QA시스템 설계가 가능하다는 확신이 생겼다.
실행 방식의 자유도 향상: .invoke()로 단일 실행도 가능하고, 향후 .stream()으로 변경해 Streamlit UI와 실시간 연동도 가능하다는 점이 인상적이었다.
2. 개선점
Tool 구성과 분리 기준이 여전히 애매함: 단일 Tool과 Chain, AgentExecutor 사이의 경계를 구분짓는 기준이 명확하지 않아 설계할 때 혼란이 있었다.
메모리 처리 구조에 대한 이해 부족: 멀티턴 대화를 위한 Memory 모듈의 적용 시점과 방법에 대해 여전히 개념이 약한 편이라 정리할 필요가 있다.
Streamlit과의 연계 실습 부족: RunnableAgent를 Streamlit으로 연동하는 UI 구현은 아직 손대지 못했기 때문에, 다음 주에는 꼭 UI 흐름까지 만들어보고 싶다.
3. 학습내용 및 예제
학습 내용
LangChain Expression Language(LCEL)의 구성
Runnable 구조 (RunnableMap, RunnableLambda, RunnableSequence)
AgentExecutor 설정 및 Tool Wrapping
질문 분류기(Classifier) → 체인 실행기 → LLM 응답 흐름 구성
예제 실습
OpenAI(gpt-4o-mini)를 기본 LLM으로 설정
내부 문서 질의는 RAG 툴로, 외부 검색은 네이버 API Tool로 처리
입력된 질문을 domain_classifier()로 FM/HR 분기 → 해당 Tool 실행 → 답변 반환
4. 15주차의 목표
Streamlit 기반 UI에 Runnable Agent 연결
LangGraph와의 차이점 분석 → 구조적으로 어떤 시점에 LangGraph를 써야 하는지 기준 정립
Tool 모듈화 및 기능 분리: FM/HR 도메인에 맞는 Tool 관리 및 리팩토링
멀티턴 대화 흐름 구현 (ChatHistory 포함)
Agent 응답에 따라 조건부 Tool 선택 흐름 완성 (예: 내부자료 없으면 외부 API 사용)
'[ 플레이데이터 SK네트웍스 Family AI 캠프 ]' 카테고리의 다른 글
| [플레이데이터 SK네트웍스 Family AI 캠프 12기] 17주차 회고 (0) | 2025.06.20 |
|---|---|
| [플레이데이터 SK네트웍스 Family AI 캠프 12기] 16주차 회고 (0) | 2025.06.16 |
| [플레이데이터 SK네트웍스 Family AI 캠프 12기] 15주차 회고 (0) | 2025.06.08 |
| [플레이데이터 SK네트웍스 Family AI 캠프 12기] 13주차 회고 (1) | 2025.05.24 |
| [플레이데이터 SK네트웍스 Family AI 캠프 12기] 12주차 회고 (0) | 2025.05.17 |