문서검색 11

[LangChain RAG 구축 시리즈 Ep.30] 📦 전체 시스템 구조 정리 및 운영 환경 배포 전략

지금까지 우리는 LangChain 기반 RAG 시스템을 구축하며,문서 로딩부터 임베딩, 검색, GPT 응답 생성, 대화 메모리, 요약 전략까지 모두 다뤘습니다.이제는 이 기능들을 하나로 통합하여:📦 운영 가능한 RAG API 서버 구성🐳 Docker로 컨테이너화🧪 개발 → 운영 환경 이관을 위한 설정 전략까지 정리합니다.실무 배포를 고려한 구조로, 팀에서 공유 가능한 RAG 플랫폼을 구축하는 것이 목표입니다.🎯 목표RAG 서버 기능 통합 및 구조 정리Dockerfile 작성 및 실행운영 환경 배포 전략 (예: 포트 구성, API Key 관리, 볼륨 마운트)🗂️ 전체 프로젝트 구조 (예시)rag-iceberg/├── chroma_db/ # 벡터 DB 저장 ..

[LangChain RAG 구축 시리즈 Ep.29] 🧠 멀티 문서 기반 답변 생성 시 참조 문서 요약 전략

RAG 시스템이 문서를 검색해 답변을 생성할 때,단일 문서만 참조하는 것이 아니라 여러 문서를 동시에 참조하는 경우가 많습니다.하지만 GPT가 3~5개 문서를 한꺼번에 받게 되면,핵심 내용이 흐려지거나전체 내용을 단순 나열하거나응답 길이가 길어지고 요점을 놓치게 됩니다.그래서 이번 글에서는:✅ LangChain의 stuff, map_reduce, refine 체인 전략을 이해하고✅ 멀티 문서에 대한 요약을 보다 효과적으로 수행할 수 있도록✅ 실제 체인 구조를 비교하고 선택하는 기준을 제시합니다.🎯 목표여러 문서를 입력받아 GPT가 요약한 응답을 생성하는 구조 설계stuff, map_reduce, refine 체인 방식 비교실무에서 적용 가능한 요약 전략 예제 구현🧠 Step 1. 체인 비교를 위한 기..

카테고리 없음 2025.04.05

[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.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.17] 🔍 ChromaDB에서 문서 검색 및 Retriever 구성하기

이 글에서는 이전에 OpenAI 임베딩으로 저장한 벡터 데이터를 기반으로사용자의 질문과 유사한 문서를 검색할 수 있는Retriever(검색기) 를 구성해보겠습니다.🎯 목표ChromaDB에 저장된 벡터 데이터를 불러오기사용자의 자연어 질문을 임베딩하여 유사 문서 검색Retriever 객체를 통해 top-k 검색 구현🗂️ 디렉토리 구조 전제rag-iceberg-project/├── chroma_db/ ← 벡터 저장소└── src/search_documents.py ← 검색기 구성 코드🛠️ Step 1. ChromaDB에서 벡터 불러오기 + 검색기 구성# src/search_documents.pyfrom langchain.vectorstores..

[LangChain RAG 구축 시리즈 Ep.09] 🗂️ ChromaDB로 벡터 저장소 구성하기

이 글에서는 앞에서 생성한 임베딩 벡터를 ChromaDB에 저장하고,이 벡터들을 기반으로 문서 검색이 가능하도록Retriever 객체를 구성하는 전체 과정을 실습합니다.🎯 목표LangChain에서 ChromaDB 벡터 저장소 구성하기JSON → 자연어 문서 → 벡터 → Chroma 저장저장된 벡터에 대해 질문(query)으로 검색 테스트🔧 ChromaDB란?Chroma는 로컬에서 작동하는 빠르고 간단한 벡터 DB입니다. 장점 설명 ✅ 설치 필요 없음LangChain과 함께 자동 동작✅ 검색 속도 빠름작은 실습/PoC에 적합✅ 오픈소스커스터마이징 가능📝 Step 1. 문서 벡터화 후 ChromaDB에 저장하기from langchain.vectorstores import Chroma ..

[LangChain RAG 구축 시리즈 Ep.08] 🧠 OpenAI Embedding 실습: JSON을 임베딩해보기

이 글에서는 실제 Iceberg의 metadata.json 파일에서 필요한 정보를 추출하여,자연어 기반 문서로 가공한 뒤, OpenAI의 임베딩 모델을 활용해 벡터로 변환하는 과정을 실습합니다.🎯 목표metadata.json에서 테이블 정보를 추출사람이 이해할 수 있는 문장 형태로 재구성LangChain의 OpenAIEmbeddings로 벡터화향후 검색(Retriever)에서 활용 가능한 문서 벡터 생성🔍 Step 1. 예시 JSON 데이터 준비 (💬 상세 주석 포함){ "table-name": "products", // 테이블 이름 "schema": { "fields": [ // 테이블 컬럼 정의 목록 { "id": 1, "name": "product_id", "type": ..

[LangChain RAG 구축 시리즈 Ep.05] 🧩 왜 metadata.json을 문서처럼 다뤄야 할까?

이 글에서는 RAG 시스템에 Iceberg의 metadata.json을 입력으로 활용할 때,왜 이 구조화된 JSON 파일을 자연어 기반 문서처럼 가공해야 하는지, 그리고어떻게 가공해야 검색 성능이 좋아지는지를 실제 예시와 함께 알아보겠습니다.❓ JSON 그대로 임베딩하면 안 되나요?많은 분들이 처음엔 이렇게 생각할 수 있습니다:“metadata.json은 구조가 잘 되어 있는데, 그냥 통째로 벡터화하면 되는 거 아냐?”하지만 실제로는 그대로 벡터화하면 RAG 성능이 매우 떨어집니다.🧱 구조적 JSON → 의미 중심 텍스트로 바꿔야 하는 이유 문제 설명 ⚠️ 벡터가 정보의 핵심을 놓침“field-id”, “source-id” 같은 키워드가 의미를 흐림⚠️ LLM이 이해하기 어려움LLM은 자연어 문맥에 ..

[LangChain RAG 구축 시리즈 Ep.04] ❄️ Iceberg란? 메타데이터 구조와 RAG 연결

이 글에서는 RAG 시스템의 실제 적용 대상인 Apache Iceberg의 개념과 구조를 살펴보고,그 안의 핵심 파일인 metadata.json이 RAG의 문서 임베딩 대상으로 왜 적합한지를 설명드립니다.❄️ Iceberg란 무엇인가요?Apache Iceberg는 대규모 테이블을 데이터 레이크 상에서 관리하기 위한 테이블 포맷입니다.Parquet, ORC와 같은 파일을 하나의 테이블처럼 관리할 수 있도록 해주는 메타데이터 기반 시스템이에요.🧩 Iceberg 테이블의 구조Iceberg는 물리적인 데이터 파일 외에도 다음과 같은 메타데이터 파일을 사용합니다. 구성 요소 설명 metadata.json테이블 스키마, 스냅샷 정보, 파티션 구조 등을 포함한 중심 메타정보manifest.list어떤 데이터 파일..

728x90