Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Note
Azure AI Vyhledávač je k dispozici prostřednictvím portálu Azure, rozhraní REST API a Sady Azure SDK. Podporuje také Foundry IQ, spravovanou znalostní vrstvu, která transformuje podnikový obsah na opakovaně použitelné znalostní báze s podporou oprávnění pro agenty na portálu Microsoft Foundry.
Důležité
Tyto funkce podporují připojení k jiným služby Microsoft a službám třetích stran. Použití těchto služeb podléhá vlastním podmínkám jednotlivých služeb a může vést ke zpracování nebo ukládání dat mimo hranici souladu Azure, stejně jako k toku dat do hranice souladu Azure.
Je vaší zodpovědností spravovat, jestli budou vaše data přetékat mimo dodržování předpisů a geografické hranice vaší organizace a případné související důsledky a že se zřídí příslušná oprávnění, hranice a schválení.
Zodpovídáte za pečlivou kontrolu a testování aplikací, které vytváříte v kontextu konkrétních případů použití, a za veškerá vhodná rozhodnutí a přizpůsobení. To zahrnuje implementaci vlastního zodpovědného zmírnění rizik umělé inteligence, jako jsou metaprompty, filtry obsahu nebo jiné bezpečnostní systémy, a zajištění toho, aby vaše aplikace splňovaly příslušné standardy kvality, spolehlivosti, zabezpečení a důvěryhodnosti. Další informace najdete v informacích o transparentnosti Azure AI Vyhledávač.
Návod
Tento článek je určen pro existující kanály zpracování, které používají dovednost Rozložení dokumentu. Pro nové sady dovedností použijte dovednost Azure Content Understanding. Tato dovednost poskytuje novější funkce, jako je sémantické vytváření bloků dat, popisy obrázků generované umělou inteligencí a vylepšená extrakce tabulek vložených do dokumentů v jedné dovednosti. Pokud chcete začít, podívejte se na Chunk a vektorizujte obsah pomocí dovednosti Azure Content Understanding.
Strategie vytváření bloků textových dat hrají klíčovou roli při optimalizaci odpovědí RAG a výkonu. Pomocí dovednosti Rozložení dokumentu můžete obsah rozdělovat na základě struktury dokumentu, přičemž zachytíte nadpisy a rozdělíte text obsahu podle sémantického smyslu, jako jsou odstavce a věty. Bloky jsou zpracovávány nezávisle. Vzhledem k tomu, že LLM pracují s několika bloky dat, jsou-li tyto bloky vysoce kvalitní a séanticky koherentní, je vylepšena celková důležitost dotazu.
Dovednost Document Layout volá model rozložení z Azure Document Intelligence v nástrojích Foundry. Model vyjadřuje strukturu obsahu ve formátu JSON pomocí syntaxe Markdownu (nadpisů a obsahu) s poli pro nadpisy a obsah uložený v indexu vyhledávání ve službě Azure AI Vyhledávač. Prohledávatelný obsah vytvořený z dovednosti Rozložení dokumentu je prostý text, ale můžete použít integrovanou vektorizaci ke generování vkládání pro všechna pole ve zdrojových dokumentech, včetně obrázků.
V tomto článku se dozvíte, jak:
- Rozpoznávání struktury dokumentu pomocí dovednosti rozložení dokumentu
- Pomocí dovednosti Rozdělení textu omezte velikost bloků dat na jednotlivé oddíly Markdownu.
- Generování vnoření pro každý blok
- Použití projekcí indexů pro mapování embeddingů do polí v indexu vyhledávání
Pro ilustraci tento článek používá ukázkové soubory PDF zdravotního plánu nahrané do služby Azure Blob Storage a pak indexované pomocí průvodce importem dat.
Požadavky
Indexerový indexovací kanál s indexem, který přijímá výstup. Index musí mít pole pro příjem nadpisů a obsahu.
Projekce indexu pro jednosměrné indexování.
Podporovaný zdroj dat s textovým obsahem, který chcete rozdělit na části.
Sada dovedností s těmito dvěma schopnostmi:
Dovednost rozložení dokumentu , která rozděluje dokumenty na základě hranic odstavců. Pokud používáte fakturaci založenou na klíčích, tato dovednost vyžaduje, aby Microsoft Foundry byl ve stejné oblasti jako Azure AI Vyhledávač, pro rozšíření AI. Požadavky na region jsou pro bezklíčovou fakturaci mírnější.
Dovednosti vkládání v Azure OpenAI , které generují vkládání vektorů. Tato dovednost nemá požadavky na oblast.
Příprava datových souborů
Pro nezpracované vstupy musíte použít podporovaný zdroj dat a soubor musí být ve formátu podporovaném dovedností rozložení dokumentu.
Mezi podporované formáty souborů patří PDF, JPEG, JPG, PNG, BMP, TIFF, DOCX, XLSX, PPTX a HTML.
Podporované indexery jsou jakýkoli indexer, který dokáže zpracovat podporované formáty souborů. Tyto indexery zahrnují indexery objektů blob, indexery Microsoft OneLake a indexery souborů (verze Preview).
Mezi podporované oblasti portálu této funkce patří USA – východ, Západní Evropa a USA – středosever. Pokud nastavujete sadu dovedností prostřednictvím kódu programu, můžete použít libovolnou oblast Azure Document Intelligence, která také poskytuje funkci rozšiřování AI služby Azure AI Vyhledávač. Další informace najdete v tématu Podporované oblasti pro dovednosti rozložení dokumentu.
K vytvoření zdroje dat můžete použít Azure Portal, rozhraní REST API nebo balíček sady Azure SDK.
Návod
Pokud chcete vyzkoušet dovednost pro rozložení dokumentu a strukturované dělení bloků ve vaší vlastní vyhledávací službě, nahrajte ukázkové soubory PDF zdravotního plánu do podporovaného zdroje dat. Průvodce importem dat je jednoduchý přístup bez kódu pro vyzkoušení této dovednosti. Nezapomeňte vybrat výchozí režim parsování pro použití strukturálně citlivého segmentování. V opačném případě se použije režim analýzy Markdownu .
Vytvořte index pro indexaci 1:N
Následující příklad ukazuje jeden vyhledávací dokument navržený kolem bloků dat. Při práci s bloky dat potřebujete pole bloku dat a nadřazené pole, které identifikuje původ bloku dat. V tomto příkladu jsou nadřazená pole text_parent_id. Podřízená pole jsou vektorové a nevektorové bloky oddílu Markdown.
Funkce rozložení dokumentu vytváří výstup nadpisů a obsahu. V tomto příkladu header_1 až header_3 ukládají nadpisy dokumentů, jak zjistila dovednost. Další obsah, například odstavce, je uložen v chunk. Pole text_vector je vektorové znázornění obsahu pole bloku.
K vytvoření indexu můžete použít Průvodce importem dat na webu Azure Portal, rozhraní REST API nebo sadě Azure SDK. Následující index je velmi podobný tomu, co průvodce ve výchozím nastavení vytvoří. Pokud přidáte vektorizaci obrázků, můžete mít více polí.
Pokud průvodce nepoužíváte, musí index existovat ve vyhledávací službě před vytvořením sady dovedností nebo spuštěním indexeru.
{
"name": "my_consolidated_index",
"fields": [
{
"name": "chunk_id",
"type": "Edm.String",
"searchable": true,
"filterable": false,
"retrievable": true,
"stored": true,
"sortable": true,
"facetable": false,
"key": true,
"analyzer": "keyword"
},
{
"name": "text_parent_id",
"type": "Edm.String",
"searchable": false,
"filterable": true,
"retrievable": true,
"stored": true,
"sortable": false,
"facetable": false,
"key": false
},
{
"name": "chunk",
"type": "Edm.String",
"searchable": true,
"filterable": false,
"retrievable": true,
"stored": true,
"sortable": false,
"facetable": false,
"key": false
},
{
"name": "title",
"type": "Edm.String",
"searchable": true,
"filterable": false,
"retrievable": true,
"stored": true,
"sortable": false,
"facetable": false,
"key": false
},
{
"name": "header_1",
"type": "Edm.String",
"searchable": true,
"filterable": false,
"retrievable": true,
"stored": true,
"sortable": false,
"facetable": false,
"key": false
},
{
"name": "header_2",
"type": "Edm.String",
"searchable": true,
"filterable": false,
"retrievable": true,
"stored": true,
"sortable": false,
"facetable": false,
"key": false
},
{
"name": "header_3",
"type": "Edm.String",
"searchable": true,
"filterable": false,
"retrievable": true,
"stored": true,
"sortable": false,
"facetable": false,
"key": false
},
{
"name": "text_vector",
"type": "Collection(Edm.Single)",
"searchable": true,
"filterable": false,
"retrievable": true,
"stored": true,
"sortable": false,
"facetable": false,
"key": false,
"dimensions": 1536,
"stored": false,
"vectorSearchProfile": "profile"
}
],
"vectorSearch": {
"profiles": [
{
"name": "profile",
"algorithm": "algorithm"
}
],
"algorithms": [
{
"name": "algorithm",
"kind": "hnsw"
}
]
}
}
Definování sady dovedností pro bloky dat a vektorizaci s podporou struktury
Následující příklad ukazuje definici sady dovedností, která promítá jednotlivé části Markdownu, bloky dat a jejich vektorové ekvivalenty jako pole v indexu vyhledávání. Používá dovednost Rozložení dokumentu k detekci nadpisů a naplnění pole obsahu na základě sémanticky koherentních odstavců a vět ve zdrojovém dokumentu. Používá schopnost Rozdělení textu k rozdělení obsahu Markdownu na bloky. Používá schopnost Azure OpenAI Embedding k vektorizaci segmentů a jakéhokoli jiného pole, pro které chcete vytvořit vektorové reprezentace.
Kromě dovedností zahrnuje indexProjections a cognitiveServices soubor dovedností:
indexProjectionsse používají pro indexy, které obsahují dokumenty rozdělené na části. Projekce určují, jak se rodičovsko-dětský obsah mapuje na pole v indexu vyhledávání pro indexování jedna ku mnoha. Další informace naleznete v tématu Definování projekce indexu.cognitiveServicespřipojí prostředek Microsoft Foundry pro účely fakturace. Dovednost Rozložení dokumentu je k dispozici prostřednictvím cen standardu.
POST {endpoint}/skillsets?api-version=2026-04-01
{
"name": "my_skillset",
"description": "A skillset for structure-aware chunking and vectorization with an index projection around markdown section",
"skills": [
{
"@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill",
"name": "my_document_intelligence_layout_skill",
"context": "/document",
"outputMode": "oneToMany",
"inputs": [
{
"name": "file_data",
"source": "/document/file_data"
}
],
"outputs": [
{
"name": "markdown_document",
"targetName": "markdownDocument"
}
],
"markdownHeaderDepth": "h3"
},
{
"@odata.type": "#Microsoft.Skills.Text.SplitSkill",
"name": "my_markdown_section_split_skill",
"description": "A skill that splits text into chunks",
"context": "/document/markdownDocument/*",
"inputs": [
{
"name": "text",
"source": "/document/markdownDocument/*/content",
"inputs": []
}
],
"outputs": [
{
"name": "textItems",
"targetName": "pages"
}
],
"defaultLanguageCode": "en",
"textSplitMode": "pages",
"maximumPageLength": 2000,
"pageOverlapLength": 500,
"unit": "characters"
},
{
"@odata.type": "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill",
"name": "my_azure_openai_embedding_skill",
"context": "/document/markdownDocument/*/pages/*",
"inputs": [
{
"name": "text",
"source": "/document/markdownDocument/*/pages/*",
"inputs": []
}
],
"outputs": [
{
"name": "embedding",
"targetName": "text_vector"
}
],
"resourceUri": "https://<subdomain>.openai.azure.com",
"deploymentId": "text-embedding-3-small",
"apiKey": "<Azure OpenAI api key>",
"modelName": "text-embedding-3-small"
}
],
"cognitiveServices": {
"@odata.type": "#Microsoft.Azure.Search.CognitiveServicesByKey",
"key": "<Cognitive Services api key>"
},
"indexProjections": {
"selectors": [
{
"targetIndexName": "my_consolidated_index",
"parentKeyFieldName": "text_parent_id",
"sourceContext": "/document/markdownDocument/*/pages/*",
"mappings": [
{
"name": "text_vector",
"source": "/document/markdownDocument/*/pages/*/text_vector"
},
{
"name": "chunk",
"source": "/document/markdownDocument/*/pages/*"
},
{
"name": "title",
"source": "/document/title"
},
{
"name": "header_1",
"source": "/document/markdownDocument/*/sections/h1"
},
{
"name": "header_2",
"source": "/document/markdownDocument/*/sections/h2"
},
{
"name": "header_3",
"source": "/document/markdownDocument/*/sections/h3"
}
]
}
],
"parameters": {
"projectionMode": "skipIndexingParentDocuments"
}
}
}
Konfigurace a spuštění indexeru
Po vytvoření zdroje dat, indexu a sady dovedností vytvořte a spusťte indexer. Tento krok převede kanál do spuštění.
Při použití dovednosti rozložení dokumentu nastavte následující parametry pro definici indexeru:
- Nastavte parametr na
allowSkillsetToReadFileDatatrue. - Nastavte parametr na
parsingModedefault.
V tomto scénáři není nutné nastavit outputFieldMappings , protože indexProjections zpracovává zdrojové pole pro přidružení polí vyhledávání. Projekce indexů zpracovávají přiřazení polí pro dovednost rozložení dokumentů a také pravidelné členění pomocí dovednosti rozdělení pro úlohy zpracování importovaných a vektorizovaných dat. Stále potřebujete mapování výstupních polí pro transformace nebo komplexní mapování dat s funkcemi, které platí v jiných případech. Pro n bloků na dokument však projekce indexu tuto funkci zpracovávají nativně.
Tady je příklad požadavku na vytvoření indexeru.
POST {endpoint}/indexers?api-version=2026-04-01
{
"name": "my_indexer",
"dataSourceName": "my_blob_datasource",
"targetIndexName": "my_consolidated_index",
"skillsetName": "my_skillset",
"parameters": {
"batchSize": 1,
"configuration": {
"dataToExtract": "contentAndMetadata",
"parsingMode": "default",
"allowSkillsetToReadFileData": true
}
},
"fieldMappings": [
{
"sourceFieldName": "metadata_storage_path",
"targetFieldName": "title"
}
],
"outputFieldMappings": []
}
Když odešlete požadavek do vyhledávací služby, spustí se indexer.
Ověření výsledků
Po dokončení zpracování můžete provést dotaz na index vyhledávání a otestovat své řešení.
Pokud chcete zkontrolovat výsledky, spusťte dotaz na index. Použijte Search Explorer jako klienta vyhledávání nebo libovolný nástroj, který odesílá požadavky HTTP. Následující dotaz vybere pole, která obsahují výstup obsahu sekce Markdown ne-vektorových dat a jeho vektoru.
V Průzkumníku služby Search můžete zkopírovat jenom JSON a vložit ho do zobrazení JSON pro provedení dotazu.
POST /indexes/[index name]/docs/search?api-version=[api-version]
{
"search": "copay for in-network providers",
"count": true,
"searchMode": "all",
"vectorQueries": [
{
"kind": "text",
"text": "*",
"fields": "text_vector,image_vector"
}
],
"queryType": "semantic",
"semanticConfiguration": "healthplan-doc-layout-test-semantic-configuration",
"captions": "extractive",
"answers": "extractive|count-3",
"select": "header_1, header_2, header_3"
}
Pokud jste k otestování této dovednosti použili soubory PDF plánu zdravotní péče, výsledky Search Exploreru pro ukázkový dotaz by měly vypadat podobně jako výsledky na následujícím snímku obrazovky.
Dotaz je hybridní dotaz nad textem a vektory, takže se zobrazí
@search.rerankerScorea výsledky jsou seřazeny podle skóre souvisejícího s tímto dotazem.searchMode=allznamená, že všechny termíny dotazu musí být považovány za shodu (výchozí hodnota je libovolná).Dotaz používá sémantické řazení, takže vidíte
captions. Obsahuje takéanswers, ale nezobrazují se na snímku obrazovky. Výsledky jsou nejvíce sémanticky relevantní pro vstup dotazu podle sémantického rankeru.Příkaz
select(není zobrazený na snímku obrazovky) určuje pole záhlaví, která dovednost rozložení dokumentu rozpozná a naplní. Do klauzule SELECT můžete přidat další pole pro kontrolu obsahu bloků, názvu nebo jakéhokoli jiného lidsky čitelného pole.