Azure Bilişsel Arama'de beceri kümesi Azure Bilişsel Arama

dizin oluşturma aşamaları

Beceri kümesi, verileri ayıklanan ve zenginleştiren işlemleri tanımladığı için aranabilir hale getirildi. Beceri kümesi, belgeyi kırtıktan sonra, metin ve görüntü içeriği kaynak belgelerden ayıklanır ve kaynak belgeden herhangi bir alan (isteğe bağlı olarak) dizin veya bilgi deposu hedef alanlarına eşledikten sonra yürütülür.

Bu makalede beceri kümesi oluşturma adımlarını öğrenirsiniz. Başvuru için bu makalede Beceri Kümesi Oluşturma (REST API) lanmıştır.

Beceri kümeleri için bazı kullanım kuralları şunlardır:

  • Beceri kümesi üst düzey bir kaynaktır ve bu da bir kez oluşturularak çok sayıda dizin oluşturan kişi tarafından başvurulma anlamına gelir.
  • Beceri kümesinde en az bir beceri olması gerekir.
  • Beceri kümesi aynı türde becerileri yineler (örneğin, birden çok Şekilleyici becerisi).

Beceri kümesi yürütmeyi dizine alan dizin oluşturmanın, yani beceri kümesinizi test etmek için bir dizin oluşturmanız, veri kaynağı vearama dizini oluşturmanız gerektir.

İpucu

Daha önce işledikten sonra içeriği yeniden kullanmak ve geliştirme maliyetini düşürmek için zenginleştirme önbelleğini etkinleştirin.

Beceri kümesi tanımı

Temel yapıyla başlama. Bu REST API,bir beceri kümesi JSON ile yazar ve aşağıdaki bölümlere sahip olur:

{
   "name":"skillset-template",
   "description":"A description makes the skillset self-documenting (comments aren't allowed in JSON itself)",
   "skills":[
      
   ],
   "cognitiveServices":{
      "@odata.type":"#Microsoft.Azure.Search.CognitiveServicesByKey",
      "description":"A Cognitive Services resource in the same region as Azure Cognitive Search",
      "key":"<Your-Cognitive-Services-Multiservice-Key>"
   },
   "knowledgeStore":{
      "storageConnectionString":"<Your-Azure-Storage-Connection-String>",
      "projections":[
         {
            "tables":[ ],
            "objects":[ ],
            "files":[ ]
         }
      ]
    },
    "encryptionKey":{ }
}

Ad ve açıklamanın ardından beceri kümesi dört ana özellilik içerir:

  • skills dizi, arama hizmetinin her beceriiçin gerekli girişlere göre yürütme sırasını belirleyecek sırasız bir beceri koleksiyonudur. Beceriler bağımsızsa paralel olarak yürütülür. Beceriler yardımcı olabilir (metin bölme gibi), dönüştürme (Bilişsel Hizmetler'den alınan AI'ye göre) veya sizin sağlaycınız özel beceriler olabilir. Aşağıdaki bölümde bir beceri dizisi örneği verilmektedir.

  • cognitiveServices, faturalandırılabilir beceriler için kullanılır ve Bilişsel Hizmetler API'si. Faturalanabilir beceriler veya Özel Varlık Arama'ya sahip değilsanız bu bölümü kaldırın. Kaynak eklemek için.

  • knowledgeStore, (isteğe bağlı) beceri kümesi çıktısını Azure Depolama tablolarına, bloblara ve dosyalara projek için bir Azure depolama hesabı ve Depolama. Bu bölüme ihtiyacınız yoksa bu bölümü kaldırın, aksi takdirde bir bilgi deposu belirtin.

  • encryptionKey, (isteğe bağlı) Azure Key Vault bir beceri kümesi tanımında hassas içeriği şifrelemek için kullanılan bir anahtar ve müşteri tarafından yönetilen anahtarları belirtir. Müşteri tarafından yönetilen şifreleme kullanıyorsanız bu özelliği kaldırın.

Beceri dizisi ekleme

Beceri kümesi tanımında, beceri dizisi yürütülecek becerileri belirtir. Aşağıdaki örnek, size ilgisiz, yerleşik iki beceri göstererek bileşimini tanıtır. Her becerinin türüne, bağlamına, girişlere ve çıkışlara sahip olduğunu unutmayın.

"skills":[
  {
    "@odata.type": "#Microsoft.Skills.Text.V3.EntityRecognitionSkill",
    "context": "/document",
    "categories": [ "Organization" ],
    "defaultLanguageCode": "en",
    "inputs": [
      {
        "name": "text",
        "source": "/document/content"
      }
    ],
    "outputs": [
      {
        "name": "organizations",
        "targetName": "orgs"
      }
    ]
  },
  {
    "@odata.type": "#Microsoft.Skills.Text.SentimentSkill",
    "context": "/document",
    "inputs": [
      {
        "name": "text",
        "source": "/document/content"
      }
    ],
    "outputs": [
      {
        "name": "score",
        "targetName": "mySentiment"
      }
    ]
  }
]

Not

İfadeleri oluşturmak için Koşullu beceri'yi kullanarak döngü ve dal oluşturma ile karmaşık beceri kümeleri oluşturabilirsiniz. Söz dizimi, zenginleştirme ağacında düğümleri tanımlamak için birkaç değişiklikle JSON İşaretçisi yol notasyonuna dayalıdır. Bir, ağaçta daha düşük bir düzeyden geçişler ve bağlam "/" içinde her biri için bir "*" işleç olarak davranır. Bu makaledeki birçok örnek söz dizimlerini göstermektedir.

Yerleşik becerilerin yapısı

Her beceri, giriş değerleri ve gereken parametreler açısından benzersizdir. Her beceriye ilişkin belgelerde belirli bir becerinin tüm parametreleri ve özellikleri açıklanmıştır. Farklılıklar olsa da, becerilerin çoğu ortak bir kümeyi paylaşır ve benzer şekilde desenlidir. Varlık Tanıma becerisi birkaç nokta göstermek için bir örnek sağlar:

{
  "@odata.type": "#Microsoft.Skills.Text.V3.EntityRecognitionSkill",
  "context": "/document",
  "categories": [ "Organization" ],
  "defaultLanguageCode": "en",
  "inputs": [
    {
      "name": "text",
      "source": "/document/content"
    }
  ],
  "outputs": [
    {
      "name": "organizations",
      "targetName": "orgs"
    }
  ]
}

Yaygın parametreler arasında "odata.type", "inputs" ve "outputs" yer almaktadır. "Kategoriler" ve "defaultLanguageCode" gibi diğer parametreler, Varlık Tanıma'ya özgü parametre örnekleridir.

  • "odata.type" her beceriyi benzersiz olarak tanımlar. Türü beceri başvurusu belgelerinde bulabilirsiniz.

  • "bağlam", zenginleştirme ağacının bir düğümü ve işlemlerin hangi düzeyde olduğunu temsil eder. Tüm beceriler bu özele sahip olur. "Bağlam" alanı açıkça ayarlanmazsa varsayılan bağlam "/document" olur. Örnekte bağlam belgenin tamamıdır ve varlık tanıma becerisi belge başına bir kez çağrılır.

    Bağlam ayrıca zenginleştirme ağacında çıkışların da üretil olduğu yeri belirler. Bu örnekte beceri, alt düğümü olarak eklenen olarak yakalanan "organizations" orgs adlı bir özelliği "/document" döndürür. Aşağı akış becerilerinde, bu yeni oluşturulan zenginleştirme düğümünün "/document/orgs" yoludur. Belirli bir belge için "/document/orgs" değeri, metinden ayıklanan bir kuruluş dizisidir (örneğin: ["Microsoft", "LinkedIn"] ). Yol söz dizimi hakkında daha fazla bilgi için bkz. Beceri kümesinde ek açıklamalara başvuru.

  • "inputs", gelen verilerin kaynağını ve nasıl kullan olacağını belirtir. Varlık Tanıma durumunda girişlerden biri, varlıklar için "text" analiz edilir içerik olan değeridir. İçerik, bir zenginleştirme "/document/content" ağacında düğümden kaynaklandı. Zenginleştirme ağacında kök "/document" düğüm vardır. Azure Blob dizin oluşturma kullanılarak alınan belgeler için her belgenin alanı, dizin oluşturan content standart bir alandır.

  • "outputs" becerinin çıkışını temsil ediyor. Her beceri, beceri kümesinde adıyla başvurulan belirli çıkış türleri yayacak şekilde tasarlanmıştır. Varlık Tanıma durumunda, "organizations" desteklediği çıkışlardan biri olur. Her beceriye ilişkin belgeler, üretelik çıkışlarını açıklar.

Çıkışlar yalnızca işleme sırasında mevcuttur. Bu çıkışı aşağı akış becerisinin girişine zincirleme için çıktıya olarak "/document/orgs" bakın. Arama dizininde bir alana çıkış göndermek için bir dizinde çıkış alanı eşlemesi oluşturun. Bir bilgi deposuna çıkış göndermek için bir projeksiyon oluşturun.

Tek beceriden gelen çıkışlar, farklı bir beceriden gelen çıkışlarla çakışıyor olabilir. Aynı çıkışı döndüren birden çok beceriniz varsa, zenginleştirme düğümü yollarında ad "targetName" disambiguation için kullanın.

Bazı durumlarda, bir dizinin her öğesine ayrı olarak başvurmak için çağrı yapılır. Örneğin, öğesinin her öğesini ayrı ayrı başka bir "/document/orgs" beceriye vermek istediğinizi varsayalım. Bunu yapmak için yola bir yıldız işareti ekleyin: "/document/orgs/*"

Yaklaşım analizi için ikinci beceri, ilk zenginleştiriciyle aynı deseni izler. Giriş olarak "/document/content" alır ve her içerik örneği için bir yaklaşım puanı döndürür. "Bağlam" alanını açıkça ayarlamadınız, çıktı (mySentiment) artık alt "/document" kümesidir.

{
  "@odata.type": "#Microsoft.Skills.Text.SentimentSkill",
  "inputs": [
    {
      "name": "text",
      "source": "/document/content"
    }
  ],
  "outputs": [
    {
      "name": "score",
      "targetName": "mySentiment"
    }
  ]
}

Özel beceri ekleme

Aşağıda özel beceri örneği verilmiştir. URI, bir Azure İşlevi'ne gösterir ve bu da sizin sağlaynız modeli veya dönüştürmeyi çağırır. Daha fazla bilgi için bkz. Özel arabirim tanımlama.

Özel beceri, işlem hattının dışında yer alan bir beceri dizisinde kod yürütülse de bu da başka bir beceridir. Yerleşik beceriler gibi bir türe, bağlama, girişlere ve çıkışlara da sahip olur. Ayrıca, yerleşik beceriler gibi zenginleştirme ağacını da okur ve yazar. "Bağlam" alanı yıldız işaretiyle olarak ayarlanmıştır. Başka bir ifadeyle zenginleştirme adımı altındaki her "/document/orgs/*" kuruluş için çağrılır. "/document/orgs"

Bu durumda, tanımlanan her kuruluş için bir şirket açıklaması oluşturulur. Aşağı akış adımlarında açıklamaya başvururken (örneğin, anahtar ifade ayıklamada), bunu yapmak için "/document/orgs/*/companyDescription" yolunu kullanabilirsiniz.

{
  "@odata.type": "#Microsoft.Skills.Custom.WebApiSkill",
  "description": "This skill calls an Azure function, which in turn calls custom code",
  "uri": "https://indexer-e2e-webskill.azurewebsites.net/api/InvokeCode?code=foo",
  "httpHeaders": {
      "Ocp-Apim-Subscription-Key": "foobar"
  },
  "context": "/document/orgs/*",
  "inputs": [
    {
      "name": "query",
      "source": "/document/orgs/*"
    }
  ],
  "outputs": [
    {
      "name": "description",
      "targetName": "companyDescription"
    }
  ]
}

Çıkışı dizine gönderme

Her beceri yürütülürken, çıktısı bir belgenin zenginleştirme ağacına düğüm olarak eklenir. Zenginleştirilmiş belgeler işlem hattında geçici veri yapıları olarak mevcuttur. Kalıcı bir veri yapısı oluşturmak ve bir becerinin gerçekte ne üretmesi konusunda tam görünürlük elde etmek için çıkışı bir arama dizinine veya bilgi deposuna göndermeniz gerekir.

Beceri kümesi değerlendirmesinin ilk aşamalarında ön sonuçları en az çabayla kontrol etmek gerekir. Ayarlamak daha kolay olduğundan arama dizinini öneririz. Her beceri çıkışı için dizinde bir çıkış alanı eşlemesi ve dizinde bir alan tanımlayın.

Beceri çıkışı, dizin oluşturma alanı eşlemesi ve dizin alanında kişi varlığının nasıl tanımlandığı gösteren nesne diyagramı.

Dizin gezginini çalıştırarak dizinden belgeleri iade etmek ve her bir alanın içeriğini kontrol etmek için Arama Gezgini'ni kullanarak beceri kümesi tarafından algılanan veya oluşturulan beceri kümesine bakabilirsiniz.

Aşağıdaki örnekte, bir metin öbbsinde kişiler, konumlar, kuruluşlar ve diğer varlıkları algıleyen bir varlık tanıma becerisinin sonuçları gösterir. Sonuçları Arama Gezgini'nde görüntülemek, becerinin çözümünüze değer katıp ekleyene olmadığını belirlemenize yardımcı olabilir.

Arama Gezgini'nde bir belgenin ekran görüntüsü.

İpuçları beceri kümesi için geliştirme

  • Blob Depolama veya desteklenen başka bir dizinleyici veri kaynağında içeriğinizin temsili bir örneğini oluşturun ve beceri kümesi, dizin, dizinleyici ve veri kaynağı nesnesini oluşturmak için Verileri içeri aktarma sihirbazını çalıştırın.

    Sihirbaz, bir dizindeki alanları tanımlama, bir dizin oluşturucuda çıkış eşlemesi tanımlama ve bir bilgi deposundaki projeksiyonu bir bilgi deposunda projeksiyonde olmak üzere ilk kez zor olabilecek birkaç adımı otomatikleştirir. OCR veya görüntü analizi gibi bazı yetenekler için, sihirbaz, belge çözme sırasında ayrılan görüntüyü ve metin içeriğini birleştirmek için yardımcı program becerileri ekler.

  • Alternatif olarak, bir yeteneği değerlendirmek için gereken tüm nesne tanımlarının tam örneklerini sağlayan, Beceri 'ten bir dönüşümün sonuçlarını görüntülemek için Sorgulayabileceğiniz bir dizine tam örnekler sağlayan yetenek Postman koleksiyonlarını içeri aktarabilirsiniz.

Sonraki adımlar

Bağlam ve giriş kaynak alanları, bir zenginleştirme ağacındaki düğümlerin yollarıdır. Bir sonraki adım olarak, bir zenginleştirme ağacındaki düğümlere yönelik yolları ayarlamaya yönelik sözdizimi hakkında daha fazla bilgi edinin.