Şekillendirici bilişsel becerisi

Şekillendirici becerisi, bir beceri kümesi tarafından oluşturulan bellek içi zenginleştirme ağacının yapısını yeniden şekillendirmek veya değiştirmek için kullanılır. Beceri çıkışları doğrudan arama alanlarına eşlenemiyorsa, arama dizininiz veya bilgi deponuz için ihtiyacınız olan veri şeklini oluşturmak için bir Şekillendirici becerisi ekleyebilirsiniz.

Bu beceri için birincil kullanım örnekleri şunlardır:

  • Bir bilgi deposu doldurusunuz. Bir bilgi deposunun tablo ve nesnelerinin fiziksel yapısı projeksiyonlar aracılığıyla tanımlanır. Şekillendirici becerisi, projeksiyonlara gönderilebilen veri şekilleri oluşturarak ayrıntı düzeyi ekler.

  • Birden çok beceri çıkışını, senaryo 1'de açıklandığı gibi genellikle karmaşık bir tür olan arama dizininizdeki tek bir yapıya eşlemek istiyorsunuz.

  • Beceriler birden çok çıkış üretir, ancak senaryo 2'de açıklandığı gibi tek bir alanda birleştirmek istiyorsunuz (karmaşık bir tür olması gerekmez). Örneğin, başlıkları ve yazarları tek bir alanda birleştirme.

  • Beceriler, alt öğelerle birden çok çıkış oluşturur ve bunları birleştirmek istersiniz. Bu kullanım örneği senaryo 3'te gösterilmiştir.

Bir Shaper becerisinin çıkış adı her zaman "output" olur. dahili olarak, işlem hattı aşağıdaki örneklerde gösterildiği gibi "analyzedText" gibi farklı bir ad eşleyebilir, ancak Shaper becerisinin kendisi yanıtta "output" döndürür. Zenginleştirilmiş belgelerde hata ayıklarken adlandırma tutarsızlığına dikkat ediyorsanız veya özel bir beceri oluşturup yanıtı kendiniz yapılandırıyorsanız bu önemli olabilir.

Not

Bu beceri Azure yapay zeka hizmetlerine bağlı değildir. Faturalandırılamaz ve Azure AI hizmetleri temel gereksinimi yoktur.

@odata.type

Microsoft.Skills.Util.ShaperSkill

Senaryo 1: karmaşık türler

Sırasıyla metin ve yaklaşım olmak üzere iki üyesi olan analyzedText adlı bir yapı oluşturmak istediğiniz bir senaryo düşünün. Dizinde, çok parçalı aranabilir bir alan karmaşık tür olarak adlandırılır ve genellikle kaynak verilerin buna eşleyen ilgili karmaşık bir yapısı olduğunda oluşturulur.

Ancak karmaşık türler oluşturmaya yönelik bir diğer yaklaşım da Şekillendirici becerisinden geçer. Beceri kümesine bu beceriyi ekleyerek, beceri kümesi işleme sırasında gerçekleştirilen bellek içi işlemler, iç içe yerleştirilmiş yapılara sahip veri şekillerinin çıktısını alabilir ve daha sonra dizininizdeki karmaşık bir türe eşlenebilir.

Aşağıdaki örnek beceri tanımı, giriş olarak üye adlarını sağlar.

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

Örnek dizin

Beceri kümesi bir dizin oluşturucu tarafından çağrılır ve dizin oluşturucu bir dizin gerektirir. Dizininizdeki karmaşık bir alan gösterimi aşağıdaki örneğe benzer olabilir.

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

Beceri girişi

Bu Shaper becerisi için kullanılabilir giriş sağlayan bir gelen JSON belgesi şu olabilir:

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

Beceri çıkışı

Shaper becerisi, metnin ve yaklaşımın birleşik öğeleriyle analyzedText adlı yeni bir öğe oluşturur. Bu çıkış dizin şemasına uygundur. Azure AI Search dizininde içeri aktarılır ve dizine alınır.

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

Senaryo 2: giriş birleştirme

Başka bir örnekte, işlem hattı işlemenin farklı aşamalarında bir kitabın başlığını ve kitabın farklı sayfalarındaki bölüm başlıklarını ayıklamış olduğunuzu düşünün. Artık bu çeşitli çıkışlardan oluşan tek bir yapı oluşturabilirsiniz.

Bu senaryonun Shaper beceri tanımı aşağıdaki örneğe benzer olabilir:

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

Beceri çıkışı

Bu durumda, Shaper tek bir dizi oluşturmak için tüm bölüm başlıklarını düzler.

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

Senaryo 3: İç içe bağlamlardan giriş birleştirme

Bir kitabın bölüm başlıklarına ve bölüm numaralarına sahip olduğunuzu ve içerik üzerinde varlık tanıma ve anahtar ifadeler çalıştırdığınızı ve şimdi farklı becerilerdeki sonuçları bölüm adı, varlıklar ve anahtar ifadelerle tek bir şekilde toplamanız gerektiğini düşünün.

Bu örnek, "chapterTitles" girişine isteğe bağlı sourceContext bir özellik ekler. source ve sourceContext özellikleri birbirini dışlar. Giriş beceri bağlamındaysa kullanabilirsiniz source. Giriş beceri bağlamından farklı bir bağlamdaysa kullanınsourceContext. , sourceContext her girişin adlandırılmış düğümü doldurmak için kullanılan belirli bir öğeyi tanımlayan bir source iç içe giriş tanımlamanızı gerektirir.

Bu senaryonun Shaper beceri tanımı aşağıdaki örneğe benzer olabilir:

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

Beceri çıkışı

Bu durumda, Şekillendirici karmaşık bir tür oluşturur. Bu yapı bellek içinde var. Bunu bir bilgi deposuna kaydetmek istiyorsanız, beceri kümesinde depolama özelliklerini tanımlayan bir projeksiyon oluşturmanız gerekir.

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

Ayrıca bkz.