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.
Během provádění sady schopností vytvoří modul v paměti strom obohacení, který zachytí každé obohacení, jako jsou rozpoznané entity nebo přeložený text. V tomto článku se dozvíte, jak odkazovat na uzel rozšiřování ve stromu rozšiřování, abyste mohli předat výstup podřízeným dovednostem nebo zadat mapování výstupního pole pro pole indexu vyhledávání.
Tento článek používá příklady k ilustraci různých scénářů. Úplnou syntaxi najdete v tématu Kontext dovednosti a jazyk pro zadávání poznámek.
Koncepty na pozadí
Než si projdeme syntaxi, pojďme se podívat na několik důležitých konceptů, abychom lépe pochopili příklady uvedené dále v tomto článku.
| Termín | Popis |
|---|---|
| "obohacený dokument" | Obohacený dokument je struktura v paměti, která průběžně shromažďuje výstupy dovedností a zahrnuje všechna obohacení související s dokumentem. Obohacený dokument si můžete představit jako strom. Obecně platí, že strom začíná na úrovni kořenového dokumentu a každé nové rozšíření je vytvořeno z předchozího uzlu jako jeho potomek. |
| uzel | V rámci obohaceného dokumentu je uzel (někdy se označuje jako "anotace") specifický výstup, například "text" nebo "layoutText" OCR procesu, nebo původní hodnota zdrojového pole, jako je obsah pole ID produktu, nebo metadata zkopírovaná ze zdroje, například metadata_storage_path z objektů blob ve službě Azure Storage. |
| "kontext" | Rozsah obohacení, který zahrnuje buď celý dokument, část dokumentu (stránky nebo věty), nebo pokud pracujete s obrázky, extrahované obrázky z dokumentu. Kontext rozšiřování je ve výchozím nastavení na "/document" úrovni vymezený na jednotlivé dokumenty obsažené ve zdroji dat. Když se dovednost spustí, výstupy této dovednosti se stanou vlastnostmi definovaného kontextu. |
Cesty pro různé scénáře
Cesty se zadají ve vlastnostech "kontextu" a "zdroje" sady dovedností a ve výstupním mapování polí v indexeru.
Příklad na snímku obrazovky znázorňuje cestu položky v kolekci Azure Cosmos DB.
contextcesta je/document/HotelIdproto, že kolekce je rozdělena do dokumentů podle/HotelIdpole.sourcecesta je/document/Descriptionprotože dovednost je překladatelská dovednost a pole, které chcete přeložit, je poleDescriptionv každém dokumentu.
Všechny cesty začínají na /document. Obohacený dokument se vytvoří během fáze "rozkládání dokumentu" při spuštění indexeru, když indexer otevře dokument nebo přečte řádek ze zdroje dat. Na začátku je jediným uzlem v rozšířeném dokumentu kořenový uzel (/document)a je to uzel, ze kterého probíhají všechny ostatní rozšiřování.
Následující seznam obsahuje několik běžných příkladů:
-
/documentje kořenový uzel a označuje celý objekt blob ve službě Azure Storage nebo řádek v tabulce SQL. -
/document/{key}je syntaxe dokumentu nebo položky v kolekci Azure Cosmos DB, kde{key}je skutečný klíč, například/document/HotelIdv předchozím příkladu. -
/document/contenturčuje vlastnost content objektu blob JSON. -
/document/{field}je syntaxe pro operaci prováděnou u konkrétního pole, jako je například překlad/document/Descriptionpole, jak je vidět v předchozím příkladu. -
/document/pages/*nebo/document/sentences/*se stát kontextem, pokud rozdělíte velký dokument na menší bloky pro zpracování. Pokud je "kontext"/document/pages/*, dovednost se provede jednou na každé stránce dokumentu. Protože může existovat více než jedna stránka nebo věta, můžete je připojit/*, abyste je všechny zachytili. -
/document/normalized_images/*je vytvořen během prolomení dokumentu, pokud dokument obsahuje obrázky. Cesty ke všem obrázkům začínají s normalized_images. Vzhledem k tomu, že v dokumentu je často vloženo více obrázků, připojte/*.
Ve zbývající části tohoto článku jsou příklady založené na poli "content" generovaném automaticky Azure blob indexery v rámci fáze prolomení dokumentu. Při odkazování na dokumenty z kontejneru objektů blob použijte formát, například "/document/content", kde pole "obsah" je součástí "dokumentu".
Příklad 1: Jednoduchý odkaz na poznámky
Předpokládejme, že ve službě Azure Blob Storage máte různé soubory obsahující odkazy na jména lidí, které chcete extrahovat pomocí rozpoznávání entit. V následující definici dovednosti "/document/content" je textová reprezentace celého dokumentu a "osoby" je extrakce úplných jmen entit identifikovaných jako osob.
Vzhledem k tomu, že výchozí kontext je "/document", seznam lidí lze nyní odkazovat jako "/document/people". V tomto konkrétním případě "/document/people" je poznámka, která by teď mohla být namapována na pole v indexu nebo použita v jiné dovednosti ve stejné sadě dovedností.
{
"@odata.type": "#Microsoft.Skills.Text.V3.EntityRecognitionSkill",
"categories": [ "Person"],
"defaultLanguageCode": "en",
"inputs": [
{
"name": "text",
"source": "/document/content"
}
],
"outputs": [
{
"name": "persons",
"targetName": "people"
}
]
}
Příklad 2: Odkazování na pole v dokumentu
Tento příklad vychází z předchozího kroku, který ukazuje, jak vyvolat krok rozšiřování vícekrát ve stejném dokumentu. Předpokládejme, že předchozí příklad vygeneroval pole řetězců s 10 jmény lidí z jednoho dokumentu. Rozumným dalším krokem může být druhé rozšiřování, které extrahuje příjmení z celého jména. Protože je 10 jmen, chcete, aby tento krok byl v dokumentu volán 10krát, jednou pro každou osobu.
Chcete-li vyvolat správný počet iterací, nastavte kontext jako "/document/people/*", kde hvězdička ("*") představuje všechny uzly v rozšířeném dokumentu jako potomky "/document/people". I když je tato dovednost definována pouze jednou v dovednostním poli, je volána pro každého člena v dokumentu, dokud nejsou všichni členové zpracováni.
{
"@odata.type": "#Microsoft.Skills.Custom.WebApiSkill",
"description": "Fictitious skill that gets the last name from a full name",
"uri": "http://names.azurewebsites.net/api/GetLastName",
"context" : "/document/people/*",
"defaultLanguageCode": "en",
"inputs": [
{
"name": "fullname",
"source": "/document/people/*"
}
],
"outputs": [
{
"name": "lastname",
"targetName": "lastname"
}
]
}
Pokud jsou anotace pole nebo kolekce řetězců, můžete chtít cílit na konkrétní členy, nikoli na pole jako celek. Předchozí příklad vygeneruje poznámku volanou "lastname" pod každým uzlem reprezentovaným kontextem. Pokud chcete odkazovat na tuto řadu poznámek, použijte syntaxi "/document/people/*/lastname". Pokud chcete odkazovat na konkrétní poznámku, použijte k odkazování na příjmení první osoby identifikované v dokumentu explicitní index ("/document/people/1/lastname"). Všimněte si, že v této syntaxi jsou pole indexována od nuly.
Příklad 3: Reference k členům v poli
Někdy potřebujete seskupit všechny poznámky určitého typu, abyste je předali určité dovednosti. Představte si hypotetickou vlastní dovednost, která identifikuje nejběžnější příjmení ze všech příjmení extrahovaných v příkladu 2. Chcete-li zadat pouze příjmení vlastní dovednosti, zadejte kontext jako "/document" a vstup jako "/document/people/*/lastname".
Všimněte si, že kardinalita "/document/people/*/lastname" je větší než kardinalita dokumentu. U tohoto dokumentu může existovat 10 uzlů s příjmením, zatímco pouze jeden uzel je určen pro dokument. V takovém případě systém automaticky vytvoří pole "/document/people/*/lastname" obsahující všechny prvky v dokumentu.
{
"@odata.type": "#Microsoft.Skills.Custom.WebApiSkill",
"description": "Fictitious skill that gets the most common string from an array of strings",
"uri": "http://names.azurewebsites.net/api/MostCommonString",
"context" : "/document",
"inputs": [
{
"name": "strings",
"source": "/document/people/*/lastname"
}
],
"outputs": [
{
"name": "mostcommon",
"targetName": "common-lastname"
}
]
}
Tipy pro odstraňování potíží s cestou anotací
Pokud máte potíže s určením vstupů dovedností, můžou vám tyto tipy pomoct posunout se dopředu:
Spusťte průvodce importem dat nad daty a zkontrolujte definice sady dovedností a mapování polí, které průvodce vygeneruje.
Zahájit ladicí relaci v sadě dovedností pro zobrazení struktury rozšířeného dokumentu. Můžete upravit cesty a další části definice dovednosti a pak spustit dovednost k ověření změn.