BDA 9

9. LangGraph 기초4 RAG와 연동

RAG를 LangGraph으로 구현해 봅시다.Case1 : 간단한 RAGLangChain의 RetrievalQA 함수로 구현된 RAG를 LangGraph로 구성Case2 : Vector DB를 tool로 사용Vector DB를 tool로 지정해서 RAG를 LangGraph로 구성Case1 : 간단한 RAGVector DB# CSV 파일 로드csv_path = "sample.csv"csv_loader = CSVLoader(file_path= path+csv_path)documents_csv = csv_loader.load()# 벡터 DB 정의embedding = OpenAIEmbeddings(model="text-embedding-ada-002")vectorstore = Chroma.from_documen..

8. LangGraph 기초3 메모리

Short-term memory : MemorySaverMemory SaverLangGraph에서 제공하는 체크포인트(Checkpoint) 저장소그래프 실행 중 생성되는 상태(state)를 자동으로 저장하고 필요 시 복원할 수 있게 해주는 메모리 기반 저장소주요 특징용도 : 그래프의 실행 상태(state)를 저장하고 복원저장 위치 : Python의 메모리(RAM)안에 저장(디스크 X)사용 방식 : LangGraph compile() 시 checkpointer로 넘김이어서 실행 : 이전 실행의 마지막 상태부터 재실행 가능한계 : 세션이 종료되면 저장된 상태는 사라짐(휘발성)메모리 세팅 절차메모리 준비from langgraph.checkpoint.memory importMemorySaver # MemoryS..

7. LangGraph 기초2 도구

AI Agent의 일반적인 구조LLM은 사용자의 입력을 받아 응답을 생성필요 시외부에서 정보를 검색하거나(Retrieval)툴을 사용하거나(Tool)메모리를 읽고 쓰며(Memory)결과를 종합해서 응답을 생성AI Agent : 간단한 Chatbot 만들기State 정의LangGraph에서 LLM 메시지 히스토리를 자동으로 관리하기 위한 방식목록이 업데이트될 때 덮어쓰지 않고 새롭게 추가class State(TypedDict): messages: Annotated[list, add_messages]Node 정의언어 모델을 gpt-4.1-mini로 설정응답을 다시 리스트에 감싸서 “messages”에 넣어 반환llm = ChatOpenAI(model="gpt-4.1-mini")def chatbot(state..

6. LangGraph 기초1 기본 그래프2

간단한 그래프그래프 실행입력 : State 딕셔너리 형식. 특정 키만 입력출력 : STate 딕셔너리 형식State 다루기State 정의State는 Agent의 각 단계에서 주고 받는 정보State의 구조를 설계하고 정보를 기록하는 일은 매우 중요합니다class State(TypedDict): text: str user_id: str step: int history: list[str]Node 정의text에 값 붙이기step에 값 증가history 리스트에 값 추가def node_1(state: State): print("node_1 실행 전 상태:", state) state["text"] += " → node_1 처리 완료" state["step"] += 1 state["history"].append(..

5. LangGraph 기초1 기본 그래프

AI Agent란?스스로 의사 결정하며, 도구를 사용하여, 목표를 달성하는 시스템도구 사용이나 다단계 추론을 활용LLM을 중심으로 다양한 외부 도구를 연결하여 구축AI Agent = GPT + Tool 사용 능력 + 상태 유지문제를 스스로 해결하는 시스템주요 구성 요소Goal : “무엇을 해야 할까?” - 사용자의 요청이나 해결할 문제Reasoning Engine : GPT 같은 모델 → 계획을 세움Toolset : 외부 기능(검색, 계산 API 등)Memory / State : 이전 정보 저장, 진행 상황 추적LangGraph란?LangGraphAI Agent 간의 협업을 그래프 기반으로 설계하는 프레임워크워크플로우(Workflow) : AI 에이전트들이 특정 목표를 위해 수행하는 일련의 과정 의미복잡..

4. Memory

Memory란 무엇인가메모리사람 : 이전 대화를 기억하면서 현재 대화를 진행챗봇 : 이전 대화를 기억, 이전 질문 답변을 Memory에 저장하고 이를 Prompt에 포함메모리를 사용하기 위해서는 Chain으로 엮어야 함LLM과 메모리 엮기Memory 종류메모리 특징 언제 적합한가ConversationBufferMemory모든 대화를 순차적으로 저장대화 길이가 짧고, 단순한 맥락 유지에 적합ConversationSummarytMemory대화를 요약해서 저장긴 대화, 리소스 절약 필요할 때ConversationBufferWindowMemory최근 N턴만 기억최신 문맥만 중요할 때(예 : 챗봇)ConversationBufferMemory모든 대화 내용을 그대로 저장텍스트 누적 방식으로 LLM에 절달됨가장 기본..

3. RAG 개념 이해

Vector DB 구성Loader1) TextLoaderLangChain에서 가장 기본적인 데이터 로더 중 하나일반적인 텍스트 파일(.txt)에서 데이터를 불러오는 역할txt 파일을 읽고, 이를 LangChain에서 사용할 수 있는 문서 객체(Document)로 변환from langchain.document_loaders import TextLoader# 텍스트 파일 경로 지정file_path = "인사관리규정.txt"# TextLoader를 이용하여 문서 로드loader = TextLoader(path+file_path)documents = loader.load()# 로드된 문서 출력print(documents)2) DocumentLangChain에서 텍스트 데이터(문서)를 구조적으로 표현하는 기본 단..

2. 메모리, RAG 개념 이해

Memory란 무엇인가메모리대화의 맥락을 이어가려면사람 : 이전 대화를 기억하면서 현재 대화를 진행챗봇 : 이전 대화를 기억, 이전 질문 답변을 Memory에 저장하고 이를 Prompt에 포함메모리를 사용하기 위해서는 Chain으로 엮어야 함LLM과 메모리 엮기Memory 종류메모리특징언제 적합한가ConversationBufferMemory모든 대화를 순차적으로 저장대화 길이가 짧고, 단순한 맥락 유지에 적합ConversationSummaryMemory대화를 요약해서 저장긴 대화, 리소스 절약 필요할 때ConversationBufferWindowMemory최근 N턴만 기억최신 문맥만 중요할 때(챗봇)ConversationBufferMemory모든 대화 내용을 그대로 저장텍스트 누적 방식으로 LLM에 전달..

1. LangChain 기초

LangChain이란?대규모 언어 모델(LLMs)을 활용하여 체인을 구성이 체인을 통해 복잡한 작업을 자동화하고 쉽게 수행할 수 있도록 돕는 라이브러리프롬프트(Prompt)프롬프트란인간이 인공지능(LLM)에게 전달하는 지시문으로, 모델의 응답을 결정짓는 핵심 입력프롬프트의 역할LLM에게 무엇을 할지 설명질문, 명령, 조건 등을 포함LLM의 출력 품질을 좌우하는 요소LangChain에서의 프롬프트ChatPromptTemplate : 여러 메시지를 구조화하여 대화 설계프롬프트 → LLM → 응답의 중심 구성요소프롬프트 엔지니어링프롬프트 엔지니어링이란?GPT에게 정확하고 유용한 응답을 얻기 위해 질문(프롬프트)을 설계하는 기술왜 중요할까?GPT는 모호한 질문엔 모호하게 답합정확한 출력은 좋은 입력(Prompt..