해당 포스트는 인프런에서 "AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)" 강의를 듣고 정리한 내용입니다. 지난 강의까지는 LangChain 의 Tool Calling 에 대해서 공부를 했었는데 이제는 LangGraph 에 대해서 알아보려고 한다.첫 강의에서 LangGraph 에 대해서 Agent 를 효과적으로 만들 수 있는 프레임워크라고 개념에 대해서 알게 되었었는데 이번에는 LangGraph 에 대해서 하나씩 사용해보고 정리해보려고 한다. StateGraph 란상태(state) 를 기반으로 작동하는 그래프 구조이다.복잡한 작업 흐름을 상태와 전이로 모델링하여 유연하고 제어 가능한 시스템을 구축할 수 있다.각 노드(node)가 특정 상태를 나타내며 엣지(edge) 가 상태 간 전이 조..
해당 포스트는 인프런에서 "AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)" 강의를 듣고 정리한 내용입니다. 이번 강의에서는 Langchain Agent 에 대해서 설명해주었다. Agent 란 무엇인가LLM 을 추론 엔진으로 사용하여 어떤 행동을 할지, 그 행동의 입력은 무엇일지 결정하는 시스템이라고 한다.언어 모델이 단순히 텍스트를 출력하는 것을 넘어서 실제 행동을 취하게 한다.행동 결과를 다시 Agent 에 피드백하고 추가 행동을 해야할지 말지 또는 작업을 완료할지 스스로 결정하게 된다. LangChain 에서 Agent 사용해보기Langchain 에서는 create_tool_colling_agent 와 AgentExecutor 함수를 통해 Agent 를 사용할 수 있다. 먼저, Ag..
해당 포스트는 인프런에서 "AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)" 강의를 듣고 정리한 내용입니다. 이번에는 Tool Calling 성능을 개선하기 위한 Few-shot 프롬프팅에 대해서 알아보았다. Few-shot 프롬프팅모델에게 몇 가지 예시를 제공해서 원하는 출력 형식이나 작업 수행 방식을 보여주는 기법이다.모델에게 도구를 어떻게 사용해야하는지 예시를 통해 보여주는 목적으로 사용한다. Tool Calling 에 Few-shot 프롬프팅 적용해보기그럼 Tool Calling 을 할 때 어떻게 Few-show 프롬프팅을 적용할 수 있을까? 먼저 예시로 대화 예시를 생성한다. 이전에 실습하면서 진행했던 과정을 떠올리면서 예시 프롬프트를 입력해준다.아래와 같이 HumanMessag..
해당 포스트는 인프런에서 "AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)" 강의를 듣고 정리한 내용입니다. 이번에는 벡터 스토어를 도구로 변환해서 사용해보려고 한다. 문서 가져와서 청크로 분할하기 (청킹)먼저 문서를 읽어와서 임베딩해서 벡터 스토어에 저장해서 검색하는 과정을 만들고 이러한 과정을 도구로 만들어서 사용해보려고 한다.강의에서 제공해 준 레스토랑 메뉴와 와인에 대한 메뉴와 식재료, 설명이 들어있는 문서를 가져와서 사용해보려고 한다. 먼저, 문서를 가져온다.from langchain.document_loaders import TextLoader# 메뉴판 텍스트 데이터를 로드loader = TextLoader("../../data/restaurant_menu.txt", encod..
해당 포스트는 인프런에서 "AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)" 강의를 듣고 정리한 내용입니다. 이 글에서는 LangChain 의 Runnable 인터페이스에 대해서 알아보고 Runanble 객체를 만들어 도구로 변환해서 사용하는 방법에 대해서 실습하고 정리해보려고 한다. Runnable 인터페이스에 대해서 알아보기먼저 LangChain 에서 Runnable 객체가 무엇인지 먼저 알아보았다. 아래의 LangChain 문서를 살펴보니 다음과 같이 설명하고 있다. Runnable interface | 🦜️🔗 LangChainThe Runnable interface is the foundation for working with LangChain components, and it..
해당 포스트는 인프런에서 "AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)" 강의를 듣고 정리한 내용입니다. 이번에는 LangChain 에서 도구를 직접 만들 수 있는 방법에 대해서 알아보고 정리해보려고 한다. LangChain 사용자 정의 도구(Tool)LangChain 에서는 사용자가 직접 도구를 정의해서 사용할 수 있는 방법을 제공해주고 있다. 가장 대표적인 방법으로는 @tool 이라는 데코레이터를 사용해서 도구를 정의하는 방법이다.도구 함수를 정의하기 위한 작성 가이드라인의 원칙을 준수해야하고 도구의 설명을 명확하게 LLM 이 이해할 수 있도록 작성해주어야 한다. LangChain 사용자 정의 도구 만들어보기강의를 참고해서 직접 정의한 도구를 만들어서 사용해보자.from typin..
해당 포스트는 인프런에서 "AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)" 강의를 듣고 정리한 내용입니다. 지난 포스트에 이어서 이번에는 LLM 에 Tool Message 를 전달해서 답변을 생성하는 과정에 대해서 공부하고 정리해보려고 한다. ToolMessage 를 LLM 에 전달해서 답변 생성하기지난 포스트에서는 도구를 사용해보고 LLM 을 통해 도구를 바인딩해서 사용해보는 과정을 하나씩 진행했었는데이번에는 하나로 연결해서 답변까지 생성해주는 과정을 진행해보려고 한다. 먼저, Tavily 검색 도구와 LLM 모델을 각각 정의해서 객체로 만들어주었다. Tavily 검색 도구 정의 (tavily_search_tool.py)import warningswarnings.filterwarnin..
해당 포스트는 인프런에서 "AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)" 강의를 듣고 정리한 내용입니다. 이번에는 LangChain 의 Tool Calling 에 대해서 공부하고 정리해보았다.Tool Calling 이란LLM 이 외부 기능이나 데이터 접근할 수 있게 해주는 매커니즘이다.최신 정보가 부족하거나 특정 작업 수행이 불가하는 등의 LLM 의 한계를 극복하기 위해서 필요한 방법이다. 이 방법은 RAG 에서도 중요하다. 실시간 데이터 접근이 필요하거나 특수 기능을 수행하거나 정확도를 향상시키기 위해서 LLM 과 외부 도구의 연동이 필요한 경우가 발생할 수 있다. 아래의 페이지에서 Tool Calling 의 컨셉에 대해서 설명을 해주고 있다. OverviewGuides LangGr..
해당 포스트는 인프런에서 "AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)" 강의를 듣고 정리한 내용입니다. LLM 을 이용한 생성형 AI 가 만들어지고 나서 어느 순간 AI Agent 라는 키워드가 자주 들리기 시작했다.그래서 AI Agent 와 관련된 강의를 들으면서 AI Agent 가 무엇인지 알아보면서 정리해보려고 한다. 에이전트(Agent) 가 무엇인가에이전트는 특정 목표를 달성하기 위해서 자율적으로 행동하고 결정을 내리는 AI 시스템이라고 한다.여기서 중요한 점은 자율적으로 행동한다는 부분에 초점을 맞추어서 이해하면 된다. AutoGen, Crew AI, LangGraph 와 같은 새롭게 등장한 프레임워크들은 멀티 에이전트 문제 해결 방식을 구축하는 다양하고 풍부한 방법을 제공..