AzureAISearchDocumentStore
AzureAISearchDocumentStore
Azure AI Search 인덱스에 저장하고 검색하기 위한 Document Store예요.
API reference: Azure AI Search GitHub link: https://github.com/deepset-ai/haystack-core-integrations/tree/main/integrations/azure_ai_search
출처: 문서
본문
Azure AI Search는 Azure에서 RAG 기반 애플리케이션을 만들기 위한 엔터프라이즈급 검색·검색 시스템이에요. 네이티브 LLM 통합을 갖추고 있죠.
AzureAISearchDocumentStore는 의미 재순위 매김(semantic reranking)과 메타데이터·콘텐츠 필터링을 지원해요. 이 Document Store는 지식 베이스 인사이트 생성(카탈로그·문서 검색), 정보 발견(데이터 탐색), RAG, 자동화 같은 다양한 작업에 유용합니다.
Initialization
이 통합을 쓰려면 배포된 Azure AI Search 서비스가 있는 활성 Azure 구독이 있어야 해요.
구독이 있으면 azure-ai-search-haystack 통합을 설치하세요:
pip install azure-ai-search-haystack
AzureAISearchDocumentStore를 쓰려면 검색 서비스 엔드포인트를 AZURE_AI_SEARCH_ENDPOINT로, API 키를 AZURE_AI_SEARCH_API_KEY로 제공해 인증해야 해요. API 키가 제공되지 않으면 DefaultAzureCredential이 브라우저를 통해 인증을 시도합니다.
초기화 중 Document Store는 주어진 index_name의 기존 검색 인덱스를 가져오거나, 없으면 새로 만듭니다. AzureAISearchDocumentStore의 한계 중 하나는 Azure 검색 인덱스의 필드를 만든 뒤 API로는 수정할 수 없다는 점이에요. 그래서 기본 필드 외의 추가 필드는 Document Store 초기화 때 metadata_fields로 제공해야 합니다. 다만 필요하다면 Azure AI portal을 사용해 인덱스를 삭제하지 않고 필드를 수정할 수 있어요.
아래 예시를 실행하기 전에 AZURE_AI_SEARCH_API_KEY와 AZURE_AI_SEARCH_ENDPOINT로 인증 데이터를 전달하는 걸 권장합니다.
from haystack_integrations.document_stores.azure_ai_search import (
AzureAISearchDocumentStore,
)
from haystack import Document
document_store = AzureAISearchDocumentStore(index_name="haystack-docs")
document_store.write_documents(
[
Document(content="This is the first document."),
Document(content="This is the second document."),
],
)
print(document_store.count_documents())
Latency Notice Azure 검색 인덱스의 지연 때문에, 예시의 문서 개수는 즉시 실행하면 0일 수 있어요. 검색 인덱스에서 문서를 가져올 때는 이 지연을 염두에 두어야 정확한 결과를 얻을 수 있습니다.
AzureAISearchDocumentStore에서 의미 재순위 매김을 활성화하려면 초기화 때 index_creation_kwargs에 SemanticSearch 설정을 제공하고, Retriever 중 하나에서 호출하면 됩니다. 자세한 내용은 이 기능에 대한 Azure AI 튜토리얼을 참고하세요.
Supported Retrievers
Haystack Azure AI Search 통합에는 세 가지 Retriever 컴포넌트가 있어요. 각 Retriever는 Azure AI Search API를 사용하며, 파이프라인에 가장 맞는 것을 선택할 수 있습니다:
- AzureAISearchEmbeddingRetriever: 단일 쿼리의 임베딩을 입력으로 받아 일치하는 문서 목록을 반환해요. 쿼리는 미리 임베딩되어야 하며, Embedder 컴포넌트로 할 수 있습니다.
- AzureAISearchBM25Retriever: Azure AI Search 인덱스에서 쿼리와 일치하는 문서를 가져오는 키워드 기반 Retriever
- AzureAISearchHybridRetriever: 임베딩 기반 검색과 키워드 검색을 결합해 검색 인덱스에서 더 관련성 높은 문서를 찾는 Retriever