openai 22

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

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

[LangChain RAG 구축 시리즈 Ep.25] 🛡️ 사용자 인증이 포함된 RAG API 구성 전략

RAG 시스템이 외부 사용자 또는 내부 팀원에게 API 형태로 제공되는 순간,접근 제어와 보안은 필수가 됩니다.특히 GPT 기반 응답 시스템은 비용이 발생하거나 민감 정보를 포함할 수 있으므로,인증되지 않은 사용자에게 무제한으로 제공되어선 안 됩니다.이 글에서는 FastAPI 기반 RAG 서버에🔐 API Key 기반 인증 기능을 추가하는 방법을 소개합니다.클라이언트는 요청 시 Authorization 헤더에 키를 포함서버는 키를 검증하고, 일치하지 않으면 요청을 거부키는 하드코딩 대신 환경변수나 설정 파일에서 불러오도록 설계🎯 목표FastAPI에 인증 미들웨어 추가유효한 API Key가 없으면 401 Unauthorized 반환향후 OAuth, 세션 기반 인증으로 확장 가능한 구조 설계🛠️ Step..

[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.23] 🔧 FastAPI 기반 RAG 서버 구성하기 (엔드포인트 설계)

이제까지 우리는 LangChain을 사용해 문서를 임베딩하고,ChromaDB에 저장하며,Retriever → QA Chain → Conversational QA Chain으로 이어지는전체 RAG 시스템의 기본 구조를 구현해왔습니다.이번 글에서는 이 구조를 FastAPI 웹 서버 형태로 감싸서📡 외부에서 HTTP 요청을 통해 RAG 시스템을 호출할 수 있도록 구성합니다.사용자는 /rag/query로 질문을 보내면서버는 문서를 검색하고 GPT가 응답을 생성하여응답과 함께 참조 문서까지 반환합니다🎯 목표LangChain QA 체인을 FastAPI로 래핑/rag/query POST API 구현질문, 응답, 참조 문서를 포함한 JSON 응답 반환🗂️ 디렉토리 구조 예시rag-iceberg-project/├─..

[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.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.16] 🧠 변환된 텍스트 문서를 OpenAI Embedding으로 벡터화하기

이 글에서는 이전에 생성한 .txt 형식의 자연어 문서를 OpenAI의 임베딩 모델을 활용해벡터로 변환하고 ChromaDB에 저장하는 과정을 실습합니다.이 벡터는 향후 검색(Retrieval)에서 핵심적인 역할을 하게 됩니다.🎯 목표.txt 문서를 읽어 자연어 텍스트로 로딩OpenAI 임베딩 모델을 통해 벡터 생성ChromaDB에 벡터를 저장하여 추후 검색 가능하도록 구성🗂️ 파일 구성 예시rag-iceberg-project/├── docs/products.txt ← 이전 글에서 생성된 자연어 문서├── chroma_db/ ← 벡터 DB 저장 디렉토리└── src/embed_documents.py ← 이번 글..

[LangChain RAG 구축 시리즈 Ep.14] 🔧 프로젝트 구조 설계 및 의존성 설치

이 글에서는 지금까지 살펴본 RAG 구성 요소들을 실제 프로젝트로 통합하기 위한폴더 구조 설계와 Python 환경 세팅, 필수 패키지 설치 방법까지RAG 프로젝트의 기본구조를 구성해봅니다.🎯 목표실제 프로젝트 형태의 디렉토리 구조 만들기Python 가상환경 설정필수 라이브러리 설치 (langchain, openai, chromadb 등)🗂️ Step 1. 프로젝트 디렉토리 구조 설계rag-iceberg-project/│├── data/ # metadata.json 보관 디렉토리│ └── products_metadata.json│├── docs/ # 전처리된 자연어 문서 저장│ └── products.txt│├──..

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

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

728x90