벡터검색 9

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

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

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

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

[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.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.07] 💬 사용자 질문을 벡터와 어떻게 매칭할까?

이 글에서는 RAG 시스템에서 사용자 질문을 어떻게 벡터로 변환하고,그 벡터가 문서와 어떤 방식으로 매칭되는지를 실제 원리와 예시를 통해 쉽게 설명합니다.🎯 오늘의 주제 요약“사용자 질문도 벡터로 바꾼 다음,이미 저장된 문서 벡터들과 비교해서가장 유사한 것(top-k)을 고른다.”이 과정을 정확히 이해하면 RAG 검색기의 작동 방식이 명확해집니다.🔢 Step 1: 사용자 질문 → 벡터로 변환사용자가 "상품 정보를 담고 있는 테이블이 뭐야?"라고 질문하면,이 문장은 아래처럼 벡터로 변환됩니다. (예시)[0.124, -0.554, 0.223, ..., 0.039] # 1536차원의 벡터➡️ 이 벡터는 embedding.embed_query()를 통해 생성됩니다.🧠 Step 2: 문서 벡터들과 거리 계..

[18편] pgvector 기반 AI 검색 시스템의 확장 및 운영 전략

이 글에서는 PostgreSQL pgvector를 기반으로 한 AI 검색 시스템을 확장하고 운영하는 방법을 다룹니다.특히, 트래픽 증가에 대비한 확장 전략, Multi-Region 배포, 장애 복구(Failover) 및 성능 최적화 방안을 중심으로 설명합니다. ✅ 벡터 검색 시스템의 트래픽 확장 전략 (수평/수직 확장)✅ Multi-Region 데이터베이스 배포 및 글로벌 서비스 운영✅ 고가용성을 위한 장애 복구 및 Failover 전략 🚀 1. pgvector 기반 AI 검색 시스템의 확장 전략 AI 검색 시스템은 사용량이 증가할수록 데이터베이스 부하가 증가하기 때문에 확장성이 중요합니다.확장 방식에는 수직 확장(Vertical Scaling) 과 수평 확장(Horizontal Scaling) 이 있..

[16편] pgvector + LangChain을 활용한 AI 챗봇 구축

이 글에서는 LangChain과 pgvector를 활용하여 RAG(Retrieval-Augmented Generation) 기반 AI 챗봇을 구축하는 방법을 다룹니다.특히, 문서를 벡터화하여 pgvector에 저장하고, AI 챗봇이 문서를 검색하여 답변을 생성하는 시스템을 구현하는 과정을 정리합니다. ✅ LangChain + pgvector를 활용한 AI 챗봇 구축✅ RAG 기반 문서 검색을 통해 더욱 정밀한 AI 답변 생성✅ FastAPI를 활용한 AI 챗봇 API 개발 및 최적화 🚀 1. RAG(Retrieval-Augmented Generation) 기반 AI 챗봇이란? RAG는 AI가 단순히 답변을 생성하는 것이 아니라, 먼저 벡터 검색을 수행하여 관련 문서를 찾은 후 답변을 생성하는 방식입니다..

[12편] 벡터 검색 성능 최적화 (HNSW & IVFFlat 비교 및 튜닝)

이 글에서는 PostgreSQL pgvector의 벡터 검색 성능을 최적화하는 방법을 다룹니다.특히, HNSW(Hierarchical Navigable Small World)와 IVFFlat(Indexed Flat) 인덱스 비교,병렬 쿼리(Parallel Query), Query Caching을 활용한 검색 속도 개선 방법까지 실무적으로 적용할 수 있도록 정리합니다. ✅ HNSW vs IVFFlat 인덱스 비교 및 벡터 검색 최적화✅ Parallel Query, Query Caching을 활용한 검색 속도 개선✅ PostgreSQL pgvector 성능 튜닝 (work_mem, parallel_workers_per_gather) 🚀 1. 벡터 검색 성능 최적화 개요 PostgreSQL pgvector는..

728x90