Azure를 이용해 RAG기반의 LLM 챗봇을 구현하고자할 때 챗봇 구현의 경우 목적과 기능에 따라 다르지만,
일반적으로는 DB를 다음과 같이 선택할 수 있음!
Azure AI Search가 더 적합한 경우:
- 다양한 문서/데이터를 기반으로 하는 QA 챗봇
- PDF, Word, PowerPoint 등 다양한 문서 형식 처리 가능
- 내부 문서, 매뉴얼, FAQ 등을 검색해서 답변
- RAG(Retrieval-Augmented Generation) 패턴 구현
- 최신 정보로 쉽게 업데이트 가능
- 더 정확한 검색과 관련 컨텍스트 제공
- 다국어 지원이 필요한 경우
- 검색 품질 최적화가 중요한 경우
Cosmos DB가 더 적합한 경우:
- 대화 이력 관리가 중요한 챗봇
- 사용자와의 대화 기록 저장/조회
- 사용자 프로필/선호도 관리
- 실시간 트랜잭션 처리가 필요한 경우
- 간단한 구조의 QA 시스템
실제 구현시에는 하이브리드 접근방식으로 두 서비스 모두 사용하는 것이 좋음
- Cosmos DB: 대화 이력, 사용자 정보 저장
- Azure AI Search: 지식 베이스 검색, RAG 구현
간단한 챗봇이라면 Azure AI Search만으로도 충분할 수 있지만, 더 복잡한 기능이 필요하다면 두 서비스를 조합해 채팅시 대화이력에 대한 정보를 추가하는 것이 좋음
CosmosDB가 아니라더라고 여러가지 DB형태로 사용할 수 있음
실제 구현 관련글
➡️ Azure Data를 사용한 검색 증강 LLM 샘플
GitHub - microsoft/AzureDataRetrievalAugmentedGenerationSamples: Samples to demonstrate pathways for Retrieval Augmented Generat
Samples to demonstrate pathways for Retrieval Augmented Generation (RAG) for Azure Data - GitHub - microsoft/AzureDataRetrievalAugmentedGenerationSamples: Samples to demonstrate pathways for Retri...
github.com
- Azure 데이터베이스 제품에 샘플 데이터 추가
- Azure OpenAI Embeddings 모델을 사용하여 샘플 데이터에서 임베딩을 만듭니다.
- Azure 데이터베이스 제품을 Azure Cognitive Search에 연결합니다(네이티브 벡터 인덱싱이 없는 데이터베이스의 경우)
- 임베딩에 대한 벡터 인덱스를 생성합니다.
- 벡터 유사성 검색 수행
- Azure OpenAI Completions 모델을 사용하여 샘플 데이터에 대한 질문 답변 수행
➡️ Azure DB - CosmosDB구성하기
AzureDataRetrievalAugmentedGenerationSamples/Python/CosmosDB-NoSQL_VectorSearch/CosmosDB-NoSQL-Quickstart-RAG-Chatbot.ipynb at m
Samples to demonstrate pathways for Retrieval Augmented Generation (RAG) for Azure Data - microsoft/AzureDataRetrievalAugmentedGenerationSamples
github.com