티스토리 뷰

반응형

🚀 FastAPI 기반 로컬 LLM + RAG 챗봇 만들기 –  PostgreSQL 및 pgvector 개요

이번 글에서는 PostgreSQL과 pgvector의 개념과 역할을 설명하고, FastAPI에서 pgvector를 활용하는 방법을 다룹니다.
PostgreSQL이란? → pgvector의 개념과 역할 → FastAPI에서 pgvector 활용 방법 순서로 진행됩니다.


📌 1. PostgreSQL이란?

PostgreSQL 개요

PostgreSQL은 **오픈소스 관계형 데이터베이스(RDBMS)**로, 높은 확장성과 성능을 제공하는 데이터베이스 시스템입니다.
💡 특히 대규모 데이터 처리, JSON 지원, 트랜잭션 안정성 등이 뛰어나 많은 애플리케이션에서 사용됩니다.

PostgreSQL의 주요 특징:

  • ACID(원자성, 일관성, 독립성, 지속성) 지원 → 데이터 무결성 보장
  • JSON 및 NoSQL 기능 지원 → 다양한 데이터 처리 가능
  • 확장 기능(pgvector, PostGIS 등) 제공 → AI 및 벡터 검색 기능 확장 가능
  • 대용량 데이터 처리에 최적화 → AI 및 RAG 시스템에 적합

💡 PostgreSQL은 벡터 검색을 위한 pgvector 확장을 지원하여 AI 애플리케이션에서 널리 사용됩니다.


📌 2. pgvector의 개념과 역할

 

반응형

pgvector란?

pgvector는 PostgreSQL에서 고차원 벡터 데이터를 저장하고 유사도 검색을 수행할 수 있도록 지원하는 확장 기능입니다.
이 확장을 활용하면 RAG(Retrieval-Augmented Generation) 기반 AI 챗봇에서 벡터 임베딩을 효율적으로 저장 및 검색할 수 있습니다.

pgvector의 주요 기능:

  • 고차원 벡터(embedding) 저장 → OpenAI, Hugging Face 등의 모델에서 생성된 벡터를 저장 가능
  • 유사도 검색(Similarity Search)L2 거리, 코사인 유사도(Cosine Similarity), 내적(Dot Product) 기반 검색 지원
  • PostgreSQL의 SQL 기능과 결합 가능 → 기존 RDBMS와 자연스럽게 통합

💡 pgvector를 사용하면 FastAPI 기반의 AI 챗봇에서 문서를 임베딩 후 벡터 검색을 활용하여 고품질 응답을 제공할 수 있습니다.


📌 3. FastAPI에서 pgvector 활용 방법

FastAPI에서 pgvector를 활용하는 방식은 다음과 같습니다.

텍스트 데이터 → (1) 임베딩 변환 → (2) PostgreSQL + pgvector에 저장 → (3) 유사도 검색 수행 → (4) FastAPI 응답 반환

1️⃣ 텍스트 데이터 입력
2️⃣ LangChain을 사용하여 벡터 임베딩 생성
3️⃣ PostgreSQL(pgvector)에 벡터 데이터 저장
4️⃣ FastAPI API를 통해 유사도 검색 실행
5️⃣ 가장 유사한 벡터 데이터를 반환하여 응답 생성

💡 이 방식은 RAG 기반 챗봇 및 검색 시스템에 필수적인 구조입니다.


📌 4. PostgreSQL + pgvector를 사용하는 이유

왜 PostgreSQL + pgvector를 사용할까?

  • 고성능 벡터 검색 → 벡터 데이터베이스를 별도로 구축하지 않고도 벡터 검색 가능
  • 기존 RDBMS와 통합 가능 → SQL을 활용하여 일반 데이터와 벡터 데이터를 함께 관리 가능
  • 확장성 → OpenAI, Hugging Face 등 다양한 AI 모델과 연결 가능
  • 비용 절감 → 별도의 벡터 검색 엔진(예: Pinecone, Weaviate)을 사용하지 않아도 됨

📌 5. 결론 및 다음 단계

PostgreSQL과 pgvector의 개념과 역할을 이해 완료!
FastAPI에서 pgvector를 활용하는 방법을 학습!
RAG 기반 AI 챗봇에서 PostgreSQL + pgvector가 중요한 이유를 확인!

🚀 다음 글에서는 "2.3.2 Docker를 활용한 PostgreSQL 및 pgvector 설정"을 작성합니다!

 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함
반응형