Kognitivní dovednost tvarovače
Dovednost Shaper se používá k přetvarování nebo úpravě struktury stromu rozšiřování v paměti vytvořené sadou dovedností. Pokud se výstupy dovedností nedají namapovat přímo na vyhledávací pole, můžete přidat dovednost Shaper k vytvoření datového obrazce, který potřebujete pro index vyhledávání nebo úložiště znalostí.
Mezi primární případy použití této dovednosti patří:
Naplňujete úložiště znalostí. Fyzická struktura tabulek a objektů úložiště znalostí jsou definována prostřednictvím projekce. Dovednost Shaper přidává členitost vytvořením datových obrazců, které lze do projekcí odeslat.
Chcete namapovat více výstupů dovedností do jedné struktury v indexu vyhledávání, obvykle komplexního typu, jak je popsáno ve scénáři 1.
Dovednosti vytvářejí více výstupů, ale chcete je zkombinovat do jednoho pole (nemusí to být složitý typ), jak je popsáno ve scénáři 2. Můžete například zkombinovat názvy a autory do jednoho pole.
Dovednosti vytvářejí více výstupů s podřízenými prvky a chcete je zkombinovat. Tento případ použití je znázorněn ve scénáři 3.
Název výstupu dovednosti Shaper je vždy "output". Kanál může interně mapovat jiný název, například "analyzedText", jak je znázorněno v následujících příkladech, ale dovednost Shaper sama v odpovědi vrátí "výstup". To může být důležité, pokud ladíte rozšířené dokumenty a všimnete si nesrovnalostí v pojmenování, nebo pokud vytváříte vlastní dovednosti a strukturujete odpověď sami.
Poznámka:
Tato dovednost není vázána na služby Azure AI. Je nefakturovatelný a nemá žádný klíčový požadavek na služby Azure AI.
@odata.type
Microsoft.Skills.Util.ShaperSkill
Scénář 1: komplexní typy
Představte si scénář, ve kterém chcete vytvořit strukturu s názvem analyzedText , která má dva členy: text a mínění. V indexu se prohledávatelné pole s více částmi nazývá komplexní typ a často se vytvoří, když zdrojová data mají odpovídající složitou strukturu, která se na ni mapuje.
Dalším přístupem k vytváření složitých typů je však dovednost Shaper . Zahrnutím této dovednosti do sady dovedností můžou operace v paměti během zpracování sady dovedností vypsat obrazce dat s vnořenými strukturami, které se pak dají mapovat na komplexní typ v indexu.
Následující příklad definice dovednosti poskytuje názvy členů jako vstup.
{
"@odata.type": "#Microsoft.Skills.Util.ShaperSkill",
"context": "/document/content/phrases/*",
"inputs": [
{
"name": "text",
"source": "/document/content/phrases/*"
},
{
"name": "sentiment",
"source": "/document/content/phrases/*/sentiment"
}
],
"outputs": [
{
"name": "output",
"targetName": "analyzedText"
}
]
}
Ukázkový index
Indexer vyvolá sadu dovedností a indexer vyžaduje index. Komplexní reprezentace polí v indexu může vypadat jako v následujícím příkladu.
"name":"my-index",
"fields":[
{ "name":"myId", "type":"Edm.String", "key":true, "filterable":true },
{ "name":"analyzedText", "type":"Edm.ComplexType",
"fields":[
{
"name":"text",
"type":"Edm.String",
"facetable":false,
"filterable":false,
"searchable":true,
"sortable":false },
{
"name":"sentiment",
"type":"Edm.Double",
"facetable":true,
"filterable":true,
"searchable":true,
"sortable":true }
}
Zadávání dovedností
Příchozí dokument JSON, který poskytuje použitelný vstup pro tuto dovednost Shaper , může být:
{
"values": [
{
"recordId": "1",
"data": {
"text": "this movie is awesome",
"sentiment": 0.9
}
}
]
}
Výstup dovednosti
Dovednost Shaper generuje nový prvek s názvem analyzedText s kombinovanými prvky textu a mínění. Tento výstup odpovídá schématu indexu. Naimportuje se a indexuje v indexu Azure AI Search.
{
"values": [
{
"recordId": "1",
"data":
{
"analyzedText":
{
"text": "this movie is awesome" ,
"sentiment": 0.9
}
}
}
]
}
Scénář 2: Konsolidace vstupu
V jiném příkladu si představte, že v různých fázích zpracování kanálu jste extrahovali název knihy a nadpisy kapitol na různých stránkách knihy. Teď můžete vytvořit jednu strukturu složenou z těchto různých výstupů.
Definice dovednosti Shaper pro tento scénář může vypadat jako v následujícím příkladu:
{
"@odata.type": "#Microsoft.Skills.Util.ShaperSkill",
"context": "/document",
"inputs": [
{
"name": "title",
"source": "/document/content/title"
},
{
"name": "chapterTitles",
"source": "/document/content/pages/*/chapterTitles/*/title"
}
],
"outputs": [
{
"name": "output",
"targetName": "titlesAndChapters"
}
]
}
Výstup dovednosti
V tomto případě Shaper zploštěl všechny názvy kapitol a vytvoří jedno pole.
{
"values": [
{
"recordId": "1",
"data": {
"titlesAndChapters": {
"title": "How to be happy",
"chapterTitles": [
"Start young",
"Laugh often",
"Eat, sleep and exercise"
]
}
}
}
]
}
Scénář 3: Konsolidace vstupu z vnořených kontextů
Představte si, že máte názvy kapitol a čísla kapitol knihy a spustili rozpoznávání entit a klíčové fráze v obsahu a teď potřebujete agregovat výsledky z různých dovedností do jednoho tvaru s názvem kapitoly, entitami a klíčovými frázemi.
Tento příklad přidá volitelnou sourceContext
vlastnost do vstupu "chapterTitles". Vlastnosti source
se sourceContext
vzájemně vylučují. Pokud je vstup v kontextu dovednosti, můžete použít source
. Pokud je vstup v jiném kontextu než kontext dovednosti, použijte sourceContext
. Vyžaduje sourceContext
, abyste definovali vnořený vstup, kde každý vstup má source
určující konkrétní prvek použitý k naplnění pojmenovaného uzlu.
Definice dovednosti Shaper pro tento scénář může vypadat jako v následujícím příkladu:
{
"@odata.type": "#Microsoft.Skills.Util.ShaperSkill",
"context": "/document",
"inputs": [
{
"name": "title",
"source": "/document/content/title"
},
{
"name": "chapterTitles",
"sourceContext": "/document/content/pages/*/chapterTitles/*",
"inputs": [
{
"name": "title",
"source": "/document/content/pages/*/chapterTitles/*/title"
},
{
"name": "number",
"source": "/document/content/pages/*/chapterTitles/*/number"
}
]
}
],
"outputs": [
{
"name": "output",
"targetName": "titlesAndChapters"
}
]
}
Výstup dovednosti
V tomto případě Shaper vytvoří komplexní typ. Tato struktura existuje v paměti. Pokud ho chcete uložit do úložiště znalostí, měli byste vytvořit projekci v sadě dovedností, která definuje charakteristiky úložiště.
{
"values": [
{
"recordId": "1",
"data": {
"titlesAndChapters": {
"title": "How to be happy",
"chapterTitles": [
{ "title": "Start young", "number": 1},
{ "title": "Laugh often", "number": 2},
{ "title": "Eat, sleep and exercise", "number: 3}
]
}
}
}
]
}