- Kaggle에 불법 업로드된 Harry Potter 데이터셋을 활용해 SQL 기반 RAG 애플리케이션 구현 과정을 제시한 글이지만 이미 삭제됨
- Azure SQL과 Microsoft Fabric SQL DB가 네이티브 벡터 검색을 지원하고,
langchain-sqlserver로 Vector Store 관리 가능 - Azure Blob Storage 로드, 텍스트 청킹, Azure OpenAI 임베딩 생성 후 SQL에 벡터 저장 흐름 구성
- 벡터 유사도 검색과 메타데이터 필터를 활용해 정확한 Q&A 시스템 구축
- 동일 벡터 저장소를 활용해 GPT4o 기반 팬 픽션 생성 기능까지 확장 구현
- Archive.is 링크
Azure SQL 네이티브 벡터 지원 및 LangChain 통합
- Azure SQL과 Microsoft Fabric SQL DB에서 네이티브 벡터 검색 기능 공개 프리뷰 제공
-
langchain-sqlserver패키지 공개로 SQL Server를 LangChain Vector Store로 관리 가능- PyPI 및 GitHub 저장소 통해 설치 및 예제 코드 제공
- Azure SQL DB, LangChain, LLM을 결합해 수 줄 코드만으로 생성형 AI 기능 추가 가능
예제 데이터셋 구성
- Kaggle 제공 Harry Potter 7권 텍스트 데이터셋 사용
-
.txt파일 7개 포함 - 데모에서는 1권 Harry Potter and the Sorcerer’s Stone만 사용
-
- 대중적으로 익숙한 데이터셋을 활용해 이해도 높은 예시 구성
샘플 애플리케이션 구축 단계
1. langchain-sqlserver 패키지 설치
-
pip install langchain-sqlserver==0.1.1명령으로 통합 패키지 설치 - SQL 기반 벡터 저장소 기능 활성화
2. Azure Blob Storage 데이터 로드 및 청킹
- Harry Potter 텍스트 파일을 Azure Blob Storage에 저장 후 로드
- LangChain의 AzureBlobStorage 통합 기능 활용
-
langchain-text-splitter로 긴 텍스트를 작은 청크로 분할- Azure OpenAI 임베딩 입력 토큰 제한 대응 목적
3. 임베딩 및 Chat Completion 정의
- Azure OpenAI를 사용해 각 청크에 대한 텍스트 임베딩 생성
- LangChain에서 제공하는 다양한 임베딩 모델 대체 가능
- Chat Completion 구성 통해 질의 응답 처리 준비
4. Vector Store 초기화 및 문서 삽입
- AzureOpenAI 임베딩과 함께 Vector Store 초기화
-
add_documents함수로 문서 및 임베딩 Azure SQL에 저장 - 적은 코드로 벡터 생성 및 저장 수행 가능
5. 유사도 검색 수행
-
similarity_search_with_score함수로 벡터 유사도 검색 실행 - 메타데이터 필터 지원
- 특정 메타데이터 속성 기반 검색 범위 제한 가능
Use Case 1: Q&A 시스템 구축
- SQL Vector Store와 LangChain 기반 스토리 Q&A 시스템 구현
- 사용자 질문에 대해 상위 10개 관련 문서 검색 후 응답 생성
-
vector_store기반 retriever 생성 -
create_stuff_documents_chain으로 질문-응답 체인 구성 -
ChatPromptTemplate으로 구조화된 응답 포맷 정의 -
create_retrieval_chain사용 시 검색된 문서를"context"키로 함께 반환- 응답 생성에 사용된 출처 표시 기능 지원
Use Case 2: Harry Potter 팬 픽션 생성
- 벡터 저장소 기반으로 새로운 AI 팬 픽션 생성 기능 구현
- 사용자 프롬프트 입력 시 관련 문단 검색
- SQL 벡터 저장소에 저장된 임베딩 기반 문맥 유사도 탐색
- 검색된 문단을 하나의 문자열로 정리해 모델 입력용 컨텍스트 구성
- GPT4o 모델에 컨텍스트와 사용자 프롬프트를 함께 전달
- 기존 문맥 요소를 반영한 새로운 이야기 생성
- 생성 결과와 함께 참조된 벡터 소스 정보도 표시
통합 활용 시나리오
- Q&A 시스템과 팬 픽션 생성 기능 결합으로 상호작용형 독서 경험 제공
- 책 내용 이해가 필요한 경우 Q&A 활용
- 특정 장면 확장 또는 대체 결말 생성 가능
코드 샘플 및 리소스
- LangChain-SQL-RAG 노트북 GitHub 저장소 제공
- Azure SQL 및 SQL Server 피드백 포털 통해 기능 개선 요청 가능