GPT 9

[LangChain RAG 구축 시리즈 Ep.27] 🔄 GPT를 활용한 질문 → 테이블 자동 매핑 고도화 전략

이전 글에서는 질문에서 단순한 키워드 기반으로 Iceberg 테이블명을 추출하고,그에 따라 적절한 컬렉션을 자동으로 선택하는 방식을 구현했습니다.하지만 이 방식은 키워드가 명확하게 포함된 경우에만 작동하고,"이 고객이 어떤 상품을 구매했는지 알려줘" 같은 질문은 정확한 테이블 매핑이 어렵습니다.그래서 이번 글에서는:✅ GPT 모델을 활용하여 질문 문맥을 분석하고✅ 어떤 테이블이 가장 적절한지 의사결정(Mapping) 하도록 설계하며✅ 기존 FastAPI API에 이 기능을 통합합니다.이제는 질문에 "products"라는 단어가 없어도,GPT가 "아 이건 products 테이블 질문이군"이라고 판단해서 연결해줍니다.🎯 목표GPT 모델을 활용해 질문 → 테이블명 추론 기능 구현기존 키워드 매칭 방식보다 유..

[LangChain RAG 구축 시리즈 Ep.26] 🧩 멀티 테이블 구조에 맞춘 자동 컬렉션 선택 및 태깅 전략

RAG 시스템이 다양한 Iceberg 테이블을 다루게 되면,단일 벡터 컬렉션에 모든 문서를 저장하는 방식은 검색 정확도와 성능의 한계에 부딪히게 됩니다.예를 들어, products, orders, customers와 같은 테이블이 각각 존재한다면,각 테이블의 문서를 분리 저장하고 질문에 따라 적절한 컬렉션을 자동으로 선택해야 합니다.그래서 이 글에서는:✅ 사용자 질문에서 테이블명을 자동으로 추출하고✅ 해당 테이블에 맞는 Chroma 컬렉션을 자동으로 선택하여✅ 정확하고 빠른 검색이 가능한 RAG 시스템을 구현합니다.이 전략은 문서 수가 많거나 테이블이 10개 이상인 데이터 플랫폼에서 매우 유용합니다.🎯 목표사용자 질문에서 Iceberg 테이블명을 추출하는 로직 구현테이블별 벡터 컬렉션을 자동으로 선택하..

[LangChain RAG 구축 시리즈 Ep.24] 🧑‍💻 Streamlit 기반 RAG 웹 UI 만들기

이 글에서는 이전 글에서 만든 FastAPI 기반 RAG 서버를 보다 직관적으로 사용할 수 있는 UI를 만들기 위해,Python 기반의 프론트엔드 라이브러리인 Streamlit을 활용하여🧑‍💻 질문을 입력하고 실시간으로 응답을 확인할 수 있는 웹 애플리케이션을 구현합니다.사용자는 웹 브라우저에서 질문을 입력하고서버는 FastAPI에 요청을 보내 RAG 응답을 받아Streamlit 화면에 답변과 참조 문서를 함께 출력합니다이 글은 RAG 시스템을 사용자에게 시각적으로 보여주기 위한 첫 단추입니다.🎯 목표Streamlit을 사용하여 질문 입력 UI 구성FastAPI 서버와 연동하여 응답 가져오기GPT 응답 및 참조 문서를 깔끔하게 시각화⚙️ Step 1. Streamlit 앱 기본 구성# streaml..

[LangChain RAG 구축 시리즈 Ep.19] 🧠 대화형 QA 시스템: ConversationalRetrievalChain 구성하기

이 글에서는 사용자의 이전 질문과 답변을 기억하여자연스러운 대화 흐름을 이어갈 수 있는ConversationalRetrievalChain을 구성해봅니다.🎯 목표ConversationalRetrievalChain 구성이전 대화 내용을 기억하여 문맥 기반 응답 생성메모리(ConversationBufferMemory)를 통해 히스토리 저장🧠 대화형 RAG의 개념기존 RetrievalQA는 "단일 질문-답변" 방식이라면,ConversationalRetrievalChain은 질문 맥락을 기억하며 대화를 이어갑니다.예시:1️⃣ Q: 상품 테이블 알려줘2️⃣ Q: 컬럼은 뭐야? ← 이전 질문 맥락이 없다면 “무슨 테이블?”로 이해 안 됨🛠️ Step 1. 체인 구성 함수 만들기# src/conversationa..

[LangChain RAG 구축 시리즈 Ep.18] 💬 RetrievalQA 체인을 통해 문서 기반 답변 생성하기

이 글에서는 앞에서 구축한 **Retriever(문서 검색기)**와OpenAI GPT 모델을 연결하여,**문서 기반의 자동 응답 시스템(RetrievalQA Chain)**을 구성합니다.🎯 목표Retriever + LLM(OpenAI) 결합문서 기반 질문 응답 흐름 구성참조 문서와 함께 GPT 응답 출력🛠️ Step 1. RetrievalQA 체인 구성 함수 만들기# src/qa_chain.pyfrom langchain.chains import RetrievalQA # Retrieval QA 체인 클래스from langchain.chat_models import ChatOpenAI # OpenAI GPT 모델from langchain.vectorstores im..

[LangChain RAG 구축 시리즈 Ep.13] 🧪 Stuff / MapReduce / Refine 전략 비교

이 글에서는 RAG 시스템에서 여러 개의 문서가 검색되었을 때,GPT가 어떤 방식으로 응답을 생성할지를 결정하는문서 조합 전략(Combining Strategy) 3가지 — Stuff, MapReduce, Refine 를 비교해봅니다.🔍 문서 조합 전략이란?검색된 여러 문서를 LLM에게 어떻게 전달할 것인지를 결정하는 전략입니다. 전략 방식 stuff모든 문서를 한 번에 LLM에 전달map_reduce각 문서별로 응답 후, 전체 응답을 정리refine첫 문서로 응답한 뒤, 나머지 문서로 점진적 개선🧠 각 전략의 특징 전략 장점 단점 Stuff빠름, 간단문서가 많으면 context overflowMapReduce안정적 처리시간 오래 걸림Refine정교함 ↑불필요하게 verbose 해질 수 있음📦..

[LangChain RAG 구축 시리즈 Ep.12] 🧵 대화형 검색과 맥락 기억 기능 구현해보기

이 글에서는 GPT 기반 RAG 시스템에 대화 기능과 맥락 유지(memory) 기능을 추가하여사용자가 연속적인 질문을 할 수 있도록 만들어보겠습니다.바로 ConversationalRetrievalChain의 등장입니다!🧠 ConversationalRetrievalChain이란?단일 질의 응답이 아닌, 이전 질문과 답변을 바탕으로 문맥을 기억하며 이어지는 대화를 가능하게 하는 RAG 체인입니다. 특징 설명 🧵 대화 흐름 유지앞선 질문 내용을 기억🧠 메모리 사용ConversationBufferMemory로 과거 대화 저장🔗 Retriever + LLM 통합문서 검색 + 문맥형 응답 생성📦 기본 흐름[질문1] → 문서 검색 → GPT 응답[질문2] (이전 내용 기억) → 문서 검색 → GPT 응답...

[LangChain RAG 구축 시리즈 Ep.11] 🔄 Retrieval QA 실습: 문서 기반 답변 구성

이 글에서는 지금까지 준비한 임베딩 + 벡터 저장소 + 검색기(Retriever)를LLM과 연결하여, 사용자의 질문에 대해 문서 기반 답변을 생성하는 Retrieval QA 시스템을 실습합니다.🎯 목표Retriever와 LLM을 결합해 RetrievalQA 체인 구성사용자의 질문 → 관련 문서 검색 → LLM에게 전달GPT 기반 응답 결과 확인🔗 핵심 구성: RetrievalQA란?**문서 검색기(Retriever) + 언어 모델(LLM)**을 하나의 체인으로 묶은 구조입니다.동작 흐름:[질문 입력] ↓[문서 검색기: Retriever] ↓ ← VectorStore로부터 관련 문서 조회[LLM에게 전달] ↓[문서 기반 답변 생성]🛠️ Step 1. 필요 라이브러리..

[LangChain RAG 구축 시리즈 Ep.01] 🔍 RAG를 구성하는 핵심 컴포넌트 4가지

이 글에서는 RAG 시스템을 구성하는 핵심 요소(Component) 4가지를 소개하고,이들이 어떻게 상호작용하며 전체 검색-생성 흐름을 만드는지 알기 쉽게 정리해드립니다.✨ RAG 시스템 전체 흐름 요약먼저 전체 그림을 한눈에 보고 시작하겠습니다.[사용자 질문] ↓[문서 검색기 Retriever] ↓ ⟵ 벡터화된 문서 저장소(VectorDB)[선택된 문서 + 질문] ↓[LLM (GPT-3.5/4 등)] ↓[최종 답변 생성]핵심 키워드: 검색기(Retriever) + 언어 모델(LLM) + 문서 저장소(VectorDB)📦 RAG 구성 요소 4가지✅ 1. 문서 임베딩 & 벡터스토어 (Vector Store)역할: 텍스트 문서(예: metadata.json) → 숫..

728x90