Azure AI Search'te beceri kümesi oluşturma
Beceri kümesi, resim veya yapılandırılmamış metin içeren belgelerden metin içeriği ve yapısı oluşturan işlemleri tanımlar. Resimler için optik karakter tanıma (OCR), fark edilmeyen metinler için varlık tanıma ve metin çevirisi örnek olarak verilebilir. Beceri kümesi, dış veri kaynağından metin ve görüntüler ayıklandıktan ve alan eşlemeleri işlendikten sonra yürütülür.
Bu makalede REST API'lerini kullanarak beceri kümesinin nasıl oluşturulacağı açıklanır, ancak aynı kavramlar ve adımlar diğer programlama dilleri için de geçerlidir.
Beceri kümesi tanımı kuralları şunlardır:
- Beceri kümesi koleksiyonu içinde benzersiz bir ada sahip olmalıdır. Beceri kümesi, herhangi bir dizin oluşturucu tarafından kullanılabilecek üst düzey bir kaynaktır.
- En az bir beceriye sahip olmalıdır. 3-5 beceri tipik bir durum. Maksimum değer 30'dur.
- Beceri kümesi aynı türdeki becerileri tekrarlayabilir. Örneğin, bir beceri kümesinin birden çok Şekillendirici becerisi olabilir.
- Beceri kümesi zincirleme işlemleri, döngüleri ve dallanmaları destekler.
Dizin oluşturucular beceri kümesi yürütmeyi yönlendirir. Beceri kümesinizi test etmeden önce bir dizin oluşturucuya, veri kaynağına ve dizine ihtiyacınız vardır.
İpucu
İşlediğiniz içeriği yeniden kullanmak ve geliştirme maliyetini düşürmek için zenginleştirme önbelleğini etkinleştirin.
Beceri kümesi tanımı ekleme
Temel yapı ile başlayın. Beceri Kümesi Oluştur REST API'sinde, isteğin gövdesi JSON'da yazılmıştır ve aşağıdaki bölümlere sahiptir:
{
"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":"An Azure AI services resource in the same region as Azure AI Search",
"key":"<Your-Cognitive-Services-Multiservice-Key>"
},
"knowledgeStore":{
"storageConnectionString":"<Your-Azure-Storage-Connection-String>",
"projections":[
{
"tables":[ ],
"objects":[ ],
"files":[ ]
}
]
},
"encryptionKey":{ }
}
Ad ve açıklamadan sonra beceri kümesinin dört ana özelliği vardır:
skills
dizi, sıralanmamış bir beceri koleksiyonu. Beceriler yardımcı (metni bölme gibi), dönüşümsel (Azure AI hizmetlerinden yapay zekaya dayalı) veya sağladığınız özel beceriler olabilir. Sonraki bölümde beceri dizisi örneği sağlanmıştır.cognitiveServices
Azure AI hizmetleri API'lerini çağıran faturalanabilir beceriler için kullanılır. Faturalanabilir beceriler veya Özel Varlık Arama kullanmıyorsanız bu bölümü kaldırın. Kullanıyorsanız bir Azure AI çoklu hizmet kaynağı ekleyin.knowledgeStore
(isteğe bağlı) Bir Azure Depolama hesabı ve beceri kümesi çıktısını Azure Depolama'daki tablolara, bloblara ve dosyalara yansıtmaya yönelik ayarları belirtir. İhtiyacınız yoksa bu bölümü kaldırın, aksi takdirde bir bilgi deposu belirtin.encryptionKey
(isteğe bağlı) bir beceri kümesi tanımındaki hassas içeriği (açıklamalar, bağlantı dizesi, anahtarlar) şifrelemek için kullanılan bir Azure Key Vault ve müşteri tarafından yönetilen anahtarları belirtir. Müşteri tarafından yönetilen şifreleme kullanmıyorsanız bu özelliği kaldırın.
Beceri ekleme
Beceri kümesi tanımının içinde beceri dizisi yürütülecek becerileri belirtir. Üç-beş beceri ortaktır, ancak hizmet sınırlarına bağlı olarak gerektiği kadar beceri ekleyebilirsiniz.
Zenginleştirme işlem hattının sonucu, arama dizinindeki veya bilgi deposundaki metin içeriğidir. Bu nedenle, becerilerin çoğu görüntülerden metin oluşturur (OCR metni, resim yazıları, etiketler) veya yeni bilgiler (varlıklar, anahtar ifadeler, yaklaşım) oluşturmak için mevcut metni analiz eder. Bağımsız olarak çalışan beceriler paralel olarak işlenir. Birbirine bağlı beceriler, ikinci bir becerinin (metin çevirisi gibi) girişi olarak bir becerinin (anahtar ifadeler gibi) çıkışını belirtir. Arama hizmeti, beceri yürütme sırasını ve yürütme ortamını belirler.
Tüm becerilerin türü, bağlamı, girişleri ve çıkışları vardır. Bir becerinin isteğe bağlı olarak bir adı ve açıklaması olabilir. Aşağıdaki örnekte, temel yapıyı karşılaştırabilmeniz için iki ilgisiz yerleşik beceri gösterilmektedir.
"skills": [
{
"@odata.type": "#Microsoft.Skills.Text.V3.EntityRecognitionSkill",
"name": "#1",
"description": "This skill detects organizations in the source content",
"context": "/document",
"categories": [
"Organization"
],
"inputs": [
{
"name": "text",
"source": "/document/content"
}
],
"outputs": [
{
"name": "organizations",
"targetName": "orgs"
}
]
},
{
"name": "#2",
"description": "This skill detects corporate logos in the source files",
"@odata.type": "#Microsoft.Skills.Vision.ImageAnalysisSkill",
"context": "/document/normalized_images/*",
"visualFeatures": [
"brands"
],
"inputs": [
{
"name": "image",
"source": "/document/normalized_images/*"
}
],
"outputs": [
{
"name": "brands"
}
]
}
]
Her beceri, giriş değerleri ve aldığı parametreler açısından benzersizdir. Beceri başvuru belgeleri , belirli bir becerinin tüm parametrelerini ve özelliklerini açıklar. Farklılıklar olsa da çoğu beceri ortak bir kümeyi paylaşır ve benzer şekilde desenlenir.
Not
İfadeleri oluşturmak için Koşullu bilişsel beceriyi kullanarak döngü ve dallanma ile karmaşık beceri kümeleri oluşturabilirsiniz. Söz dizimi, zenginleştirme ağacındaki düğümleri tanımlamak için birkaç değişiklikle birlikte JSON İşaretçisi yol gösterimini temel alır. A "/"
, ağaçta daha düşük bir düzeyden geçer ve "*"
bağlamda her bir işleç için işlevi görür. Bu makaledeki çok sayıda örnek söz dizimini gösterir.
Beceri bağlamı ayarlama
Her beceri, işlemlerin hangi düzeyde gerçekleştirileceğini belirleyen bir bağlam özelliğine sahiptir. context
Özellik açıkça ayarlı değilse, bağlamın belgenin tamamı olduğu varsayılan değerdir "/document"
(beceri belge başına bir kez çağrılır).
"skills":[
{
"@odata.type": "#Microsoft.Skills.Text.V3.EntityRecognitionSkill",
"context": "/document",
"inputs": [],
"outputs": []
},
{
"@odata.type": "#Microsoft.Skills.Vision.ImageAnalysisSkill",
"context": "/document/normalized_images/*",
"visualFeatures": [],
"inputs": [],
"outputs": []
}
]
context
özelliği genellikle aşağıdaki örneklerden birine ayarlanır:
Bağlam örneği | Açıklama |
---|---|
context : /document |
(Varsayılan) Girişler ve çıkışlar belge düzeyindedir. |
context : /document/pages/* |
Yaklaşım analizi gibi bazı beceriler daha küçük metin öbekleri üzerinde daha iyi performans gösterir. Büyük bir içerik alanını sayfalara veya cümlelere ayırıyorsanız bağlamın her bileşen bölümü üzerinde olması gerekir. |
context : /document/normalized_images/* |
Görüntü içeriği için girişler ve çıkışlar, üst belgedeki görüntü başına bir tanedir. |
Bağlam ayrıca zenginleştirme ağacında çıkışların nerede üretildiğini de belirler. Örneğin, Varlık Tanıma becerisi olarak orgs
yakalanan adlı organizations
bir özellik döndürür. Bağlam ise "/document"
, bir organizations
düğüm alt öğesi "/document"
olarak eklenir. Daha sonra bu düğüme aşağı akış becerilerinde başvurmak istiyorsanız, yolu olur "/document/orgs"
.
Girişleri tanımlama
Zenginleştirilmiş bir belgeden okuma ve yazma becerileri. Beceri girişleri, gelen verilerin kaynağını belirtir. Genellikle zenginleştirilmiş belgenin kök düğümü olur. Bloblar için tipik bir beceri girişi, belgenin içerik özelliğidir.
Her beceri için beceri başvuru belgeleri , kullanabileceği girişleri açıklar. Her girişin belirli bir girişi tanımlayan ve name
zenginleştirilmiş belgedeki verilerin konumunu belirten bir source
girişi vardır. Aşağıdaki örnek, Varlık Tanıma becerisindendir:
"inputs": [
{
"name": "text",
"source": "/document/content"
},
{
"name": "languageCode",
"source": "/document/language"
}
]
Becerilerin birden çok girişi olabilir.
name
, belirli bir giriştir. Varlık Tanıma için, belirli girişler text ve languageCode'dır.source
özelliği, hangi alanın veya satırın işlenecek içeriği sağladığını belirtir. Metin tabanlı beceriler için kaynak, belgede veya satırda metin sağlayan bir alandır. Görüntü tabanlı beceriler için girişi sağlayan düğüm normalleştirilmiş görüntülerdir.Kaynak örneği Açıklama source
:/document
Tablosal veri kümesi için belge bir satıra karşılık gelir. source
:/document/content
Bloblar için kaynak genellikle blob'un içerik özelliğidir. source
:/document/some-named-field
Varlık tanıma veya anahtar tümcecik ayıklama gibi metin tabanlı beceriler için, kaynak açıklama veya özet gibi analiz edilecek yeterli metni içeren bir alan olmalıdır. source
:/document/normalized_images/*
Görüntü içeriği için kaynak, belgenin kırılması sırasında normalleştirilmiş bir görüntüdür.
Beceri bir dizi üzerinde yinelenirse, hem bağlam hem de giriş kaynağı doğru konumlara dahil /*
edilmelidir.
Çıktıları tanımlama
Her beceri, beceri kümesindeki ada göre başvurulan belirli çıkış türlerini yaymak için tasarlanmıştır. Beceri çıkışının ve isteğe bağlı targetName
bir çıkışı vardırname
.
Her beceri için beceri başvuru belgeleri , üretebileceği çıkışları açıklar. Aşağıdaki örnek, Varlık Tanıma becerisindendir:
"outputs": [
{
"name": "persons",
"targetName": "people"
},
{
"name": "organizations",
"targetName": "orgs"
},
{
"name": "locations",
"targetName": "places"
}
]
Becerilerin birden çok çıkışı olabilir.
name
özelliği belirli bir çıkışı tanımlar. Örneğin Varlık Tanıma için çıkış kişiler, konumlar, kuruluşlar ve diğerleri olabilir.özelliği,
targetName
bu düğümün zenginleştirilmiş belgede olmasını istediğiniz adı belirtir. Beceri çıkışları aynı ada sahipse bu yararlı olur. Aynı çıkışı döndüren birden çok beceriniz varsa zenginleştirme düğümü yollarında ad belirsizliği için kullanıntargetName
. Hedef ad belirtilmemişse, name özelliği her ikisi için de kullanılır.
Bazı durumlar, bir dizinin her öğesine ayrı ayrı başvurmayı çağırır. Örneğin, her öğesini "/document/orgs"
ayrı ayrı başka bir beceriye geçirmek istediğinizi varsayalım. Bunu yapmak için yola bir yıldız işareti ekleyin: "/document/orgs/*"
.
Beceri çıkışı zenginleştirilmiş belgeye zenginleştirme ağacında yeni bir düğüm olarak yazılır. Yaklaşım puanı veya dil kodu gibi basit bir değer olabilir. Kuruluş, kişi veya konum listesi gibi bir koleksiyon da olabilir. Beceri çıkışı, Shaper becerisinde olduğu gibi karmaşık bir yapı da olabilir. Becerinin girişleri şeklin bileşimini belirler, ancak çıkış, arama dizininde, bilgi deposu projeksiyonunda veya adına göre başka bir beceride başvurulabilen adlandırılmış nesnedir.
Özel beceri ekleme
Bu bölüm özel beceri örneği içerir. URI, sağladığınız modeli veya dönüşümü çağıran bir Azure İşlevi'ni işaret eder. Daha fazla bilgi için bkz . Azure AI Arama zenginleştirme işlem hattına özel beceri ekleme.
Özel beceri işlem hattı dışında olan kodu yürütse de, beceri dizisinde bu yalnızca başka bir beceridir. Yerleşik beceriler gibi bir türü, bağlamı, girişleri ve çıkışları vardır. Ayrıca yerleşik becerilerde olduğu gibi zenginleştirme ağacını okur ve yazar. Alanının yıldız işaretiyle olarak ayarlandığına context
"/document/orgs/*"
dikkat edin; bu da altında "/document/orgs"
her kuruluş için zenginleştirme adımının çağrıldığı anlamına gelir.
Bu örnekteki şirket açıklaması gibi çıkış, tanımlanan her kuruluş için oluşturulur. Aşağı akış adımındaki düğüme başvururken (örneğin, anahtar ifade ayıklamada), bunu yapmak için yolu "/document/orgs/*/companyDescription"
kullanırsınız.
{
"@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ışı hedefe gönderme
Beceri çıkışı isteğe bağlı olarak yeniden kullanım amacıyla önbelleğe alınabilir, ancak genellikle geçicidir ve yalnızca beceri yürütme işlemi devam ederken mevcuttur.
Arama dizinindeki bir alana çıktı göndermek için, dizin oluşturucuda bir çıkış alanı eşlemesi oluşturun.
Çıktıyı bir bilgi deposuna göndermek için bir projeksiyon oluşturun.
Çıkışı aşağı akış becerisine göndermek için çıkışa, aşağı akış becerisinin giriş kaynağı özelliğindeki gibi düğüm adına
"/document/organization"
göre başvurun. Örnekler için bkz . Ek açıklamaya başvurma.
İlk beceri kümesi için ipuçları
Verileri içeri aktarma sihirbazını veya Verileri içeri aktarma ve vektörleştirme sihirbazını deneyin.
Sihirbazlar, ilk seferde zor olabilecek birkaç adımı otomatikleştirir. Alan eşlemeleri ve çıkış alanı eşlemeleri dahil olmak üzere beceri kümesini, dizini ve dizin oluşturucuyu tanımlar. Ayrıca, kullanıyorsanız bir bilgi deposundaki projeksiyonları da tanımlar. OCR veya görüntü analizi gibi bazı beceriler için sihirbaz, belgenin kırılması sırasında ayrılmış olan görüntü ve metin içeriğini birleştirilen yardımcı program becerileri ekler.
Sihirbaz çalıştırıldıktan sonra, JSON tanımını görüntülemek için her nesneyi Azure portalında açabilirsiniz.
Hedef belge üzerinde beceri kümesi yürütmesini çağırmak ve beceri kümesinin oluşturduğu zenginleştirilmiş belgeyi incelemek için Oturumlarda Hata Ayıklamayı deneyin. Giriş ve çıkış ayarlarını ve değerlerini görüntüleyebilir ve değiştirebilirsiniz. Bu öğretici, başlamak için iyi bir yerdir: Öğretici: Hata Ayıklama Oturumlarını kullanarak beceri kümesinde hata ayıklama.
Sonraki adım
Bağlam ve giriş kaynağı alanları, zenginleştirme ağacındaki düğümlerin yollarıdır. Sonraki adım olarak, zenginleştirme ağacındaki düğümler için yol söz dizimi hakkında daha fazla bilgi edinin.