목록PostgreSQL (5)
꿈 많은 사람의 이야기
포스팅 개요이번 포스팅은 윈도우(windows)에서 PostgreSQL를 벡터 데이터베이스(vector database)를 사용하기 위한 pgvector extension을 설치하는 방법에 대해서 정리하는 글입니다.독자 분들께서도 RAG나 AI Agent 시스템을 구축하면서 벡터 데이터베이스를 사용하시게 되죠? 그 중 PostgreSQL의 pgvector를 활용해 vector database로 많이 활용을 하시는데요. 리눅스(linux)나 Mac에서는 PostgreSQL의 pgvector를 설치하기 어렵지 않습니다.( 제 이전 포스팅(https://lsjsj92.tistory.com/675)에도 소개를 해두었습니다. )그러나 아무래도 윈도우는 WSL을 이용하지 않으면 여러 설치 과정이 있어, pgvect..
포스팅 개요AI Agent를 구현하기 위해서는 기억(Memory) 기능이 필요합니다. 주로 랭그래프(LangGraph) 예제를 보면 InMemorySaver를 사용하기도 하는데요.기존의 InMemorySaver는 프로그램이 종료되면 대화 기록이 모두 사라지는 한계가 있었습니다. 하지만 실제 서비스에서는 사용자와의 대화 내역을 영구적으로 보존하고, 언제든지 이전 대화를 이어갈 수 있어야 합니다.이번 포스팅에서는 관계형 데이터베이스(RDB)인 PostgreSQL를 활용해서 영구적인 메모리 관리를 구현하는 방법을 알아봅니다. 본 포스팅을 작성하면서 참고한 자료는 다음과 같습니다. https://langchain-ai.github.io/langgraph/concepts/memory/ OverviewPersis..
포스팅 개요이번 포스팅은 저의 티스토리 블로그 글을 활용한 AI Q&A 챗봇(Chatbot) RAG를 만들어본 포스팅입니다. PostgreSQL의 PGVector를 사용해서 벡터 데이터베이스(vector database)로 사용했고, Python의 랭체인(langchain)과 ollama, FastAPI, Streamlit을 활용해서 데이터를 저장, LLM 통신, 챗봇 Q&A 화면을 구성했습니다. 이번 포스팅은 다음과 같은 순서로 진행됩니다. 1. 데이터베이스 테이블 구성2. 티스토리 블로그 크롤링 및 postgresql 데이터베이스에 저장3. 데이터 청킹(Chunking) 및 벡터(Vector) 추출 후 저장4. FastAPI를 이용한 Ollama LLM 통신5. Streamlit을 활용하여 Q&A C..
포스팅 개요이번 포스팅은 PostgreSQL의 PGVector extension을 활용해 벡터 데이터베이스로 사용하여 파이썬(Python)의 FastAPI를 연동해 데이터를 저장하고 조회하는 방법에 대해 정리하는 포스팅입니다. 이때, PostgreSQL에 데이터를 저장하는 방법에는 벡터 데이터베이스로 활용하므로 일반 데이터를 저장하면서 동시에 임베딩 모델(embedding model)을 활용해 텍스트를 벡터(vector)로 변환하여 저장하게 됩니다. 또한, 데이터를 조회하는 과정은 1) 제목(title)과 완벽하게 일치하는 exact match 기반 검색과 2) 코사인 유사도(cosine similarity) 기반으로 텍스트 벡터 유사도 기반으로 검색을 하는 과정을 정리합니다.PostgreSQL와 PGV..
포스팅 개요이번 포스팅은 검색 증강 생성(Retrieval Augmented Generation, RAG)에서 많이 활용되는 벡터 데이터베이스 중 PostgreSQL의 PGVector에 대해서 작성하는 포스팅입니다. 이번 포스팅은 그 중, PostgreSQL 설치와 extension인 PGVector를 설치하고 실제 SQL query를 실행시켜 동작되는 것까지 작성하며 다음 글에서 실제 RAG 형식으로 동작되는 예제를 작성하겠습니다.본 포스팅을 작성하면서 참고했던 사이트는 아래와 같습니다. https://www.postgresql.org/download/https://neon.tech/postgresql/tutorialhttps://github.com/pgvector/pgvector GitHub - pg..