由 deepset 维护
集成:Azure AI Search
将 Azure AI Search 与 Haystack 结合使用
目录
概述
AzureAIDocumentStore 支持与 Azure AI Search 的集成,Azure AI Search 是一个企业级的搜索和检索系统,通过 Haystack 和 deepset 提供。
此集成允许将 Azure AI Search 中的搜索索引用作文档存储,以便在 Azure 上构建基于 RAG 的应用程序,并支持原生 LLM 集成。为了从文档存储中检索数据,该集成支持三种类型的检索技术:
- 嵌入检索:用于基于向量的搜索。
- BM25 检索:利用 BM25 算法进行关键词检索。
- 混合检索:结合向量和 BM25 检索方法。
安装
安装 Azure AI Search 集成
pip install "azure-ai-search-haystack"
使用
要使用 AzureAISearchDocumentStore,您需要拥有一个有效的 Azure 订阅,其中部署了 Azure AI Search 服务。您需要提供一个搜索服务终结点作为 AZURE_AI_SEARCH_ENDPOINT,并提供一个 API 密钥作为 AZURE_AI_SEARCH_API_KEY 进行身份验证。如果未提供 API 密钥,DefaultAzureCredential 将尝试通过浏览器进行身份验证。
from haystack_integrations.document_stores.azure_ai_search import AzureAISearchDocumentStore
from haystack import Document
document_store = AzureAISearchDocumentStore(
metadata_fields={"version": float, "label": str},
index_name="document-store-example",
)
documents = [
Document(
content="This is an introduction to using Python for data analysis.",
meta={"version": 1.0, "label": "chapter_one"},
),
Document(
content="Learn how to use Python libraries for machine learning.",
meta={"version": 1.5, "label": "chapter_two"},
),
Document(
content="Advanced Python techniques for data visualization.",
meta={"version": 2.0, "label": "chapter_three"},
),
]
document_store.write_documents(documents)
filters = {
"operator": "AND",
"conditions": [
{"field": "meta.version", "operator": ">", "value": 1.2},
{"field": "meta.label", "operator": "in", "value": ["chapter_one", "chapter_three"]},
],
}
results = document_store.filter_documents(filters)
print(results)
您可以在初始化 AzureAISearchDocumentStore 时,将所有支持的参数作为 index_creation_kwargs 传递给 SearchIndex,以自定义索引创建。此外,AzureAISearchDocumentStore 支持语义排名,可以通过在初始化时在 index_creation_kwargs 中包含 SemanticSearch 配置并通过其中一个检索器来启用它。有关更多详细信息,请参阅有关此功能的 Azure AI 教程。
