Formázó kognitív képesség

A Shaper-képesség a képességkészlet által létrehozott memóriabeli dúsítási fa szerkezetének átalakítására vagy módosítására szolgál. Ha a képességkimenetek nem képezhetők le közvetlenül a keresési mezőkre, hozzáadhat egy Shaper-képességet a keresési indexhez vagy a tudástárhoz szükséges adatalakzat létrehozásához.

A képesség elsődleges használati esetei a következők:

  • Egy tudástárat hoz létre. A tudástár tábláinak és objektumainak fizikai struktúráját kivetítések határozzák meg. A Shaper-képesség részletességet ad a kivetítésekbe leküldhető adatalakzatok létrehozásával.

  • Több készségkimenetet szeretne egyetlen struktúrába képezni a keresési indexben, általában egy összetett típusba, az 1. forgatókönyvben leírtak szerint.

  • A készségek több kimenetet is létrehoznak, de egyetlen mezőbe szeretne egyesíteni (nem kell összetett típusnak lennie), a 2. forgatókönyvben leírtak szerint. A címek és a szerzők egyesítése például egyetlen mezőbe.

  • A készségek több kimenetet hoznak létre gyermekelemekkel, és ezeket szeretné kombinálni. Ezt a használati esetet a 3. forgatókönyv szemlélteti.

A Shaper-képesség kimeneti neve mindig "kimenet". A folyamat belsőleg egy másik nevet is megfeleltethet, például az "analyzedText" nevet az alábbi példákban látható módon, de maga az Shaper-képesség "kimenetet" ad vissza a válaszban. Ez akkor lehet fontos, ha bővített dokumentumokat keres, és észleli az elnevezési eltérést, vagy ha egyéni készséget hoz létre, és saját maga strukturálja a választ.

Feljegyzés

Ez a képesség nem kötődik az Azure AI-szolgáltatásokhoz. Nem számlázható, és nincs Azure AI-szolgáltatások kulcskövetelménye.

@odata.type

Microsoft.Skills.Util.ShaperSkill

1. forgatókönyv: összetett típusok

Fontolja meg azt a forgatókönyvet, amelyben egy analyzedText nevű struktúrát szeretne létrehozni, amelynek két tagja van: a szöveg és a hangulat. Egy indexben a többrészes kereshető mezőket összetett típusnak nevezzük, és gyakran akkor jönnek létre, ha a forrásadatoknak megfelelő összetett struktúrájuk van, amely megfelelteti azokat.

Az összetett típusok létrehozásának másik módszere azonban a Shaper-képesség . Ha ezt a képességet egy készségkészletbe is beépíti, a képességkészlet-feldolgozás memóriabeli műveletei beágyazott struktúrákkal képesek adatalakzatokat kihozni, amelyeket aztán az index egy összetett típusára lehet leképezni.

A következő példa készségdefiníciója adja meg a tagneveket bemenetként.

{
  "@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"
    }
  ]
}

Mintaindex

A képességkészleteket egy indexelő hívja meg, az indexelők pedig indexet igényelnek. Az index összetett mezőábrázolása az alábbi példához hasonlóan nézhet ki.

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

Készségbemenet

A Shaper-képességhez használható bemenetet biztosító bejövő JSON-dokumentum a következő lehet:

{
    "values": [
        {
            "recordId": "1",
            "data": {
                "text": "this movie is awesome",
                "sentiment": 0.9
            }
        }
    ]
}

Képességkimenet

A Shaper-képesség létrehoz egy új, elemzett szöveg nevű elemet a szöveg és a hangulat együttes elemeivel. Ez a kimenet megfelel az indexsémának. A rendszer importálja és indexeli egy Azure AI Search-indexben.

{
    "values": [
      {
        "recordId": "1",
        "data":
           {
            "analyzedText": 
              {
                "text": "this movie is awesome" ,
                "sentiment": 0.9
              }
           }
      }
    ]
}

2. forgatókönyv: bemeneti konszolidáció

Egy másik példában képzelje el, hogy a folyamatfeldolgozás különböző szakaszaiban kinyerte egy könyv címét, és fejezetcímeket a könyv különböző oldalain. Most már létrehozhat egyetlen struktúrát, amely ezekből a különböző kimenetekből áll.

A forgatókönyv Shaper-képességdefiníciója a következő példához hasonlóan nézhet ki:

{
    "@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"
        }
    ]
}

Képességkimenet

Ebben az esetben a Shaper az összes fejezetcímet simítja egyetlen tömb létrehozásához.

{
    "values": [
        {
            "recordId": "1",
            "data": {
                "titlesAndChapters": {
                    "title": "How to be happy",
                    "chapterTitles": [
                        "Start young",
                        "Laugh often",
                        "Eat, sleep and exercise"
                    ]
                }
            }
        }
    ]
}

3. forgatókönyv: beágyazott környezetekből származó bemeneti konszolidáció

Tegyük fel, hogy egy könyv fejezetcímei és fejezetszámai vannak, és entitásfelismerést és kulcskifejezéseket futtat a tartalomon, és most a különböző képességek eredményeit egyetlen alakzatba kell összesítenie a fejezet nevével, entitásaival és kulcskifejezéseivel.

Ez a példa egy opcionális sourceContext tulajdonságot ad hozzá a "chapterTitles" bemenethez. A source tulajdonságok kölcsönösen sourceContext kizárják egymást. Ha a bemenet a képesség kontextusában van, használhatja sourcea . Ha a bemenet más kontextusban van, mint a képességkörnyezet, használja a következőtsourceContext: . Ehhez sourceContext meg kell határoznia egy beágyazott bemenetet, amelyben minden bemenet rendelkezik egy source olyan elemtel, amely azonosítja a megnevezett csomópont feltöltéséhez használt konkrét elemet.

A forgatókönyv Shaper-képességdefiníciója a következő példához hasonlóan nézhet ki:

{
    "@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"
        }
    ]
}

Képességkimenet

Ebben az esetben az Alakzatkezelő egy összetett típust hoz létre. Ez a struktúra a memóriában létezik. Ha egy tudástárba szeretné menteni, létre kell hoznia egy előrejelzést a tudáskészletben, amely meghatározza a tárolási jellemzőket.

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

Lásd még