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}
                    ]
                }
            }
        }
    ]
}

Viz také