Azure-Samples/rag-postgres-openai-python
A RAG app to ask questions about rows in a database table. Deployable on Azure Container Apps with PostgreSQL Flexible Server.
해결하는 문제
이 프로젝트는 PostgreSQL 데이터베이스에 저장된 데이터에 대한 질문에 답할 수 있는 웹 기반 채팅 애플리케이션의 참조 구현을 제공합니다. 구조화된 데이터베이스 쿼리와 비구조화된 자연어 검색을 결합하여 사내 데이터 기반 정확한 답변을 제공하는 도전 과제를 해결합니다.
작동 방식
애플리케이션은 검색 증강 생성(RAG) 아키텍처를 사용합니다. 사용자 질의를 OpenAI 임베딩 API를 통해 벡터로 변환하고, pgvector 확장 기능을 사용한 벡터 검색과 표준 풀텍스트 검색을 결합한 하이브리드 검색을 PostgreSQL에서 수행합니다. 결과는 역순 순위 융합(RRF)을 통해 통합됩니다. 또한 OpenAI 함수 호출을 사용하여 자연어 질의를 SQL 필터 조건으로 변환합니다(예: "30달러 미만의 등산 장비?"를 WHERE 절로 변환).
대상 사용자
PostgreSQL을 벡터 저장소로 사용하여 RAG 패턴을 구현하고자 하는 개발자. 특히 Azure Container Apps와 Azure OpenAI를 사용한 배포를 목표로 하지만, Ollama를 통한 로컬 개발도 지원합니다.
주요 특징
- 하이브리드 검색: 벡터 검색과 풀텍스트 검색을 결합하여 더 정확한 검색 결과를 제공합니다.
- SQL 변환: LLM 함수 호출을 사용해 자연어를 데이터베이스 필터로 변환합니다.
- Azure 통합: Azure Developer CLI(
azd)를 통해 간편한 배포가 가능합니다. - 크로스플랫폼 지원: Azure OpenAI, OpenAI.com, 그리고 Ollama를 통한 로컬 모델 모두 호환됩니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트