벡터DB 9

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

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

[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 ← 이번 글..

[14편] 실시간 스트리밍 데이터와 pgvector 연동

이 글에서는 실시간 스트리밍 데이터를 PostgreSQL pgvector와 연동하여 벡터 검색 시스템을 구축하는 방법을 다룹니다.특히, Kafka 또는 Apache Pulsar를 활용하여 벡터 데이터를 지속적으로 저장하고, 실시간으로 AI 검색에 활용하는 전략을 설명합니다. ✅ Kafka 또는 Pulsar를 활용한 실시간 벡터 데이터 삽입✅ pgvector와 스트리밍 데이터를 연동하여 실시간 검색 시스템 구축✅ 성능 최적화를 위한 벡터 데이터 배치 처리 전략 🚀 1. 실시간 스트리밍 데이터와 pgvector를 연동하는 이유 ✅ 실시간 벡터 검색 시스템 구축 시 고려해야 할 사항1️⃣ AI 검색 시스템에서 데이터는 계속해서 추가 & 업데이트됨2️⃣ 배치(Batch) 처리 방식보다 실시간(Streaming..

[13편] 운영 자동화 (Airflow & Kubernetes)

이 글에서는 PostgreSQL pgvector 기반 벡터 검색 시스템을 Airflow와 Kubernetes를 활용하여 자동화하는 방법을 다룹니다.특히, Airflow로 벡터 데이터를 자동 업데이트하고, Kubernetes CronJob & HPA(Auto Scaling)를 적용하여 운영을 최적화하는 실무적인 방법을 정리합니다. ✅ Airflow를 활용한 벡터 데이터 자동 업데이트 및 관리✅ Kubernetes CronJob을 활용한 주기적 벡터 데이터 백업 & 최적화✅ HPA(Auto Scaling) 적용으로 AI 검색 시스템의 자동 확장 🚀 1. Airflow를 활용한 벡터 데이터 자동 업데이트 🔹 1️⃣ Airflow를 활용하는 이유  ✅ AI 검색 시스템에서 벡터 데이터는 지속적으로 추가 & ..

[11편] 벡터 데이터 백업 & 복원 (데이터 유실 방지 및 관리)

📌 개요 이 글에서는 PostgreSQL pgvector의 벡터 데이터를 안정적으로 백업하고 복원하는 방법을 다룹니다.특히, 백업 자동화, 데이터 유실 방지, AWS S3 또는 Kubernetes CronJob을 활용한 자동 백업 전략까지 실무에 맞게 정리합니다. ✅ 벡터 데이터를 보호하는 백업 전략 (pg_dump, WAL, PITR)✅ AWS S3 또는 Kubernetes CronJob을 활용한 자동 백업✅ 벡터 데이터의 손실 없이 빠른 복원 방법 🚀 1. PostgreSQL 벡터 데이터 백업 전략 벡터 데이터는 대량으로 저장되므로 데이터 손실을 방지하기 위한 강력한 백업 전략이 필요합니다. ✅ PostgreSQL에서 벡터 데이터를 백업하는 주요 방법백업 방법설명추천 사용 사례pg_dump데이터베..

[10편] 대규모 벡터 데이터 관리 (샤딩 & 메모리 최적화)

이 글에서는 PostgreSQL pgvector를 활용하여 대규모 벡터 데이터를 효율적으로 저장하고 관리하는 방법을 다룹니다.특히, 샤딩(Sharding), 테이블 파티셔닝(Partitioning), 메모리 최적화(shared_buffers, work_mem 등) 을 통해 성능을 극대화하는 방법을 설명합니다. ✅ 대량 벡터 데이터를 저장하는 방법 (샤딩 & 파티셔닝 적용)✅ PostgreSQL 메모리 최적화 (shared_buffers, work_mem)✅ 빠른 검색을 위한 저장소 엔진 및 인덱싱 전략 🚀 1. 대량 벡터 데이터 저장 전략: 샤딩(Sharding) vs 파티셔닝(Partitioning) 벡터 데이터는 보통 수십만~수억 개 이상의 벡터를 저장해야 합니다.PostgreSQL에서 효율적인 데..

[9편] AI 모델과 pgvector 연동: 임베딩 기반 검색 시스템 구축

이 글에서는 AI 모델을 사용하여 문장을 벡터(Embedding)로 변환하고, pgvector를 활용하여 AI 검색 시스템을 구축하는 방법을 다룹니다.✅ OpenAI text-embedding-ada-002 및 Hugging Face sentence-transformers 활용✅ 임베딩 벡터를 pgvector에 저장하고, 유사한 검색 결과 반환✅ FastAPI를 이용해 벡터 검색 API 구축 🚀 1. AI 모델을 활용한 벡터 변환(Embedding) 1️⃣ AI 임베딩 모델이란? 임베딩(Embedding)은 텍스트, 이미지, 음성 등의 데이터를 벡터 형태로 변환하는 기술입니다.이 벡터는 유사한 의미를 가지는 데이터끼리 가까운 위치에 배치되도록 학습됩니다. ✅ AI 검색 시스템에서 임베딩 활용 방식1️⃣..

[5편] FastAPI와 PostgreSQL을 활용한 벡터 검색 API 구축

📌 개요 이 글에서는 FastAPI + PostgreSQL + pgvector를 활용하여 벡터 검색 API를 구축하는 방법을 설명합니다.✅ pgvector를 사용하여 벡터 데이터 저장✅ FastAPI를 이용해 REST API로 벡터 검색 기능 구현✅ AI 모델을 활용하여 텍스트 임베딩을 벡터로 변환 후 저장 🚀 1. FastAPI 프로젝트 설정 먼저, FastAPI 프로젝트를 생성하고 필요한 패키지를 설치합니다. 1️⃣ FastAPI 프로젝트 디렉터리 생성mkdir fastapi-vector-searchcd fastapi-vector-search 2️⃣ Python 가상환경 설정 (선택)python3 -m venv venvsource venv/bin/activate # macOS/Linuxvenv\..

[4편] PostgreSQL을 Vector Database로 활용하기 (pgvector 설정 및 사용)

이 글에서는 PostgreSQL을 벡터 데이터베이스(Vector Database)로 활용하는 방법을 설명합니다.✅ pgvector 확장을 설치하고 활성화하는 방법✅ 벡터 데이터를 저장하고 검색하는 방법✅ 최근접 이웃(Nearest Neighbor) 검색을 수행하는 SQL 쿼리 활용 🚀 1. pgvector 확장 설치 및 활성화 1️⃣ PostgreSQL에서 pgvector 확장 설치 Helm의 values.yaml을 수정하여 PostgreSQL이 실행될 때 pgvector 확장이 활성화되도록 설정할 수 있습니다. 📌 values.yaml에 pgvector 확장 추가primary: persistence: enabled: true size: 8Gi service: type: LoadB..

728x90