매년 3월에 열리는 자연어처리 컨퍼런스 LangCon 에 올해도 다녀왔습니다.
올해에는 AI Agent 를 어떻게 구현하는지 궁금해서 핸즈온 세션만 4개 다 들었습니다.
첫 번째 핸즈온 세션은 천천히 진행 + 쉬운 설명과 노코드 실습으로 Agentic AI 의 맛을 볼 수 있어서 좋았다!
tool(LLM 또는 API) - flow - agent - team 순서로 차근차근 모듈을 쌓듯이 Agentic AI 를 구축해 보았다 😃
강사님께서 요즘은 초등학생도 vector DB를 만들어서 RAG 챗봇을 만든다고 하셨는데
오... 과연 오늘 실습대로 따라하기만 하면 충분히 가능할 것 같은데!?
실습은 AI Factory 의 'AI 플레이(Playground)' 를 이용해 진행했다.
https://aifactory.space/play -> '어시웍스'
이 예제는 가장 기본 모듈인 tool 을 만드는 예시인데,
Instruction(시스템 프롬프트), context, few-shot 을 넣어 보았다.
또다른 예시로 Bilingual 번역 tool 을 이렇게 묶으면 agent 를 만들 수 있다.
LangGraph
: LangChain 기반의 그래프 기반 프레임워크.LangChain 일타강사 테디님의 강의!! 🤩
역시 일타강사님이신 데에는 다 이유가 있었다... ✨
첫 핸즈온 세션에서 천천히 쉽게 Agent 에 대한 개념을 잡았다면
이번 세션에서는 코드를 이용해 Agent 를 구현하는 방법과
챗봇 개발에 꼭 고려해야 할 점 (멀티턴 대화를 위한 단기 메모리 Long-term 메모리, 라우팅 등등) 까지 배울 수 있었다.
내가 이 강의를 일찍 들었다면 더 좋은 챗봇을 만들 수 있었을텐데! 😂
나는 학부 때부터 그래프를 싫어해서 LangGraph 는 막연히 하기 싫었는데 😞
테디쌤의 설명을 들으며 코드를 보니 세상에 이렇게 쉬울 수가!
게다가 LangSmith 로 Agent 모니터링까지 할 수 있어서 개발할 때 완전 유용해 보였다.
LangGraph 코드를 보며 전통적인 챗봇과 약간 다르다고 느낀 것이
기존 챗봇에서는 사용자의 intent 를 파악하는 것이 매우 중요했다.
사용자의 intent 를 알아야 정확하게 분기하여 기능을 수행할 수 있었으니까.
생각해보니 LangGraph 핸즈온 코드에는 사용자의 intent 를 파악하는 기능이 없는데
Agent 가 알아서 적합한 tool 을 선택하고 분기해 주니까...!
그러고 보니 entity 를 추출하는 부분도 없다. 😮
이건 그냥 이번 핸즈온에서 구현한 챗봇의 특성상(정보 검색) entity 를 추출할 필요가 없어서인가....? 🤔
주의할 점(?) 은 실습 코드의 경우 일부 기능이 langchain_teddynote
모듈에 오버라이딩되어 있기 때문에
원조(?) LangChain 및 LangGraph 코드와는 약간 다르다...!
그래프 시각화하는 코드라던가 그래프 스트림 코드라던가.
(어쩐지 코드가 이상하게 간결하고 출력값이 이쁘더라 🤭)
GitHub : semantic-kernel-workshop
Semantic Kernel
사실 Semantic Kernel 이란 건 처음 들어봤고
C# 으로 AI Agent 를 만들 수 있으리라고는 상상도 못해봤다. 😳
핸즈온 세션이 C# 및 json 으로 진행되었고, 사실 코드가 생소해서 설명을 안 들었다면 되게 어려웠을 것 같다 😂
지금까지 AI Agent 를 만든다고 하면 LangChain 및 LangGraph 를 이용하는 줄로만 알았는데
다른 수단과 방법이 있었다니 신박한걸?! 😃
참고로 ChatGPT 에게 LangChain 과 Semantic Kernel 의 장점 및 차이점을 물어보니 이렇게 대답해 주었다.
사용 목적 | 추천 프레임워크 |
---|---|
ReAct 기반 에이전트 (LLM이 직접 Tool 선택) | ✅ LangChain |
Microsoft 생태계 (Azure, Office 365 등) 연동 | ✅ Semantic Kernel |
복잡한 LLM 워크플로우 (LangGraph 활용) | ✅ LangChain |
Task-Oriented AI 자동화 | ✅ Semantic Kernel |
다양한 API 및 오픈소스 연동 | ✅ LangChain |
🔥 ➡ 결론적으로, LangChain은 "AI 기반 체인과 에이전트", Semantic Kernel은 "AI Task 자동화 및 Microsoft 연동"에 강점이 있음. 🚀
LangChain 없이 sqlite 와 django 로 가볍게 RAG 구현하기!
이번 세션은 AI개발자보다는 파이썬 백엔드 개발자를 위한 세션이었다.
LangChain 도 없고, DB를 파일 단위로 만드는 매우 가벼운 sqlite 만으로 구현했기 때문에
환경을 크게 타지 않고 용량을 크게 차지하지 않아 개발환경에 다소 제한이 있는 조직(ex: 정부 부처)에서 우선 시연하기에 적합하고
특히 이미 django 를 사용하는 시스템과 연동하려면 이 방법이 빠르고 편리할 것 같다.
다만 sqlite 의 특성상 데이터가 많아지면 처리에 한계가 생길 것 같고
실습에서는 벡터 검색을 지원하지 않고 코사인 유사도만 사용하기 때문에 검색 품질에 한계가 있을 것 같다.