Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Note
Azure Yapay Zeka Arama Azure portalı, REST API'leri ve Azure SDK’ları aracılığıyla kullanılabilir. Ayrıca kuruluş içeriğini Microsoft Foundry portalındaki aracılar için yeniden kullanılabilir, izin kullanan bilgi bankalarına dönüştüren yönetilen bilgi katmanı Foundry IQ'yu temel alır.
Note
Bilgi depoları , Azure Depolama'da bulunan ve Azure Yapay Zeka Arama beceri kümelerinin çıkışlarını içeren ikincil depolamalardır. Bunlar, aracısal alma iş akışlarında kullanılan bilgi kaynaklarından ve bilgi bankalarından ayrıdır.
Projeksiyonlar , yapay zekayla zenginleştirilmiş içeriğin Azure Depolama'da nasıl depolandığını belirleyen bilgi deposu tanımının bileşenidir. Projeksiyonlar, içeriğinizi içeren veri yapılarının türünü, miktarını ve bileşimini belirler.
Bu makalede, her projeksiyon türü için söz dizimini öğrenin:
Projeksiyonların bir beceri kümesinin knowledgeStore özelliği altında tanımlandığını hatırlayın.
"knowledgeStore" : {
"storageConnectionString": "DefaultEndpointsProtocol=https;AccountName=<Acct Name>;AccountKey=<Acct Key>;",
"projections": [
{
"tables": [ ],
"objects": [ ],
"files": [ ]
}
]
}
Başlamadan önce daha fazla arka plana ihtiyacınız varsa ipuçları ve iş akışı için bu denetim listesini gözden geçirin.
Tip
Projeksiyonlar geliştirirken, projeksiyon tanımlarını düzenlerken var olan zenginleştirmeleri yeniden kullanabilmeniz için zenginleştirme önbelleğini (önizleme) etkinleştirin. Zenginleştirme önbelleği bir önizleme özelliğidir, bu nedenle dizin oluşturucu isteğinde önizleme REST API'sini kullandığınızdan emin olun. Önbelleğe alma olmadan, projeksiyonda yapılan basit düzenlemeler zenginleştirilmiş içeriğin tam olarak yeniden işlenmesine neden olur. Zenginleştirmeleri önbelleğe alarak, herhangi bir beceri kümesi işleme ücreti ödemeden projeksiyonları yineleyebilirsiniz.
Requirements
Tüm projeksiyonlar kaynak ve hedef özelliklere sahiptir. Kaynak her zaman beceri kümesi yürütmesi sırasında oluşturulan bir zenginleştirme ağacından iç içeriktir. Hedef, Azure Depolama'da oluşturulup doldurulan bir harici nesnenin adı ve türüdür.
Yalnızca ikili görüntüleri kabul eden dosya projeksiyonları dışında kaynak şu şekilde olmalıdır:
- Geçerli JSON
- Zenginleştirme ağacındaki bir düğümün yolu (örneğin,
"source": "/document/objectprojection")
Bir düğüm tek bir alana çözümlenebilirken, daha yaygın bir gösterim karmaşık bir şekle başvurudur. Karmaşık şekiller, Şekillendirici becerisi veya satır içi şekillendirme tanımı olmak üzere bir şekillendirme metodolojisi aracılığıyla oluşturulur, ancak genellikle bir Şekillendirici becerisidir. Şeklin alanları veya öğeleri, kapsayıcılardaki ve tablolardaki alanları belirler.
Şekillendirici becerileri, JSON çıktısı ürettiğinden tercih edilir, ancak çoğu beceri geçerli JSON'u kendi başına oluşturmaz. Çoğu durumda, bir Shaper becerisi tarafından oluşturulan aynı veri şekli hem tablo hem de nesne projeksiyonları tarafından eşit olarak kullanılabilir.
Kaynak giriş gereksinimlerinden dolayı, verileri şekillendirmeyi bilmek, özellikle tablolarla çalışıyorsanız, projeksiyon tanımları için pratik bir gereklilik haline gelir.
Tablo projeksiyonu tanımlama
Tablo projeksiyonları, Power BI ile analiz veya veri çerçeveleri kullanan iş yükleri gibi veri keşfi çağrısında bulunan senaryolar için önerilir. Projeksiyonlar dizisinin tablolar bölümü, yansıtmak istediğiniz tabloların listesidir.
Tablo projeksiyonunu tanımlamak için projeksiyonlar özelliğindeki diziyi kullanın tables . Tablo projeksiyonu üç gerekli özelliğe sahiptir:
| Property | Description |
|---|---|
| tableName | Azure Tablo Depolama'da oluşturulan yeni tablonun adını belirler. |
| generatedKeyName | Her satırı benzersiz olarak tanımlayan anahtarın sütun adı. Değer sistem tarafından oluşturulur. Eğer bu özelliği atlarsanız, isimlendirme şeması olarak tablo adını ve "anahtar" kelimesini kullanan bir sütun otomatik olarak oluşturulur. |
| source | Zenginleştirme ağacındaki bir düğüme giden yol. Düğüm, tabloda hangi sütunların oluşturulduğunu belirleyen karmaşık bir şekle başvuru olmalıdır. |
Tablo projeksiyonlarında "kaynak", genellikle tablonun şeklini tanımlayan bir Shaper becerisinin çıkışıdır. Tabloların satırları ve sütunları vardır ve şekillendirme, satırların ve sütunların belirtildiği mekanizmadır. Bir Şekillendirici becerisi veya satır içi şekiller kullanabilirsiniz. Shaper becerisi geçerli JSON üretir, ancak kaynak geçerli JSON ise herhangi bir becerinin çıktısı olabilir.
Note
Tablo projeksiyonları, Azure Depolama tarafından uygulanan depolama sınırlarına tabidir. Varlık boyutu 1 MB'ı aşamaz ve tek bir özellik 64 KB'tan büyük olamaz. Bu kısıtlamalar tabloları çok sayıda küçük varlığı depolamak için iyi bir çözüm haline getirir.
Tek tablo örneği
Bir tablonun şeması kısmen projeksiyon (tablo adı ve anahtarı) ve ayrıca tablo şeklini (sütunlar) sağlayan kaynak tarafından belirtilir. Bu örnekte tanımın ayrıntılarına odaklanabilmeniz için yalnızca bir tablo gösterilmektedir.
"projections" : [
{
"tables": [
{ "tableName": "Hotels", "generatedKeyName": "HotelId", "source": "/document/tableprojection" }
]
}
]
Sütunlar "kaynaktan" türetilir. HotelId, HotelName, Category ve Description içeren aşağıdaki veri şekli tabloda bu sütunların oluşturulmasına neden olur.
{
"@odata.type": "#Microsoft.Skills.Util.ShaperSkill",
"name": "#3",
"description": null,
"context": "/document",
"inputs": [
{
"name": "HotelId",
"source": "/document/HotelId"
},
{
"name": "HotelName",
"source": "/document/HotelName"
},
{
"name": "Category",
"source": "/document/Category"
},
{
"name": "Description",
"source": "/document/Description"
},
],
"outputs": [
{
"name": "output",
"targetName": "tableprojection"
}
]
}
Birden çok tablo (dilimleme) örneği
Tablo projeksiyonları için yaygın bir desen, sistem tarafından oluşturulan partitionKey ve rowKey sütunlarının aynı projeksiyon grubu altındaki tüm tablolar için tablolar arası ilişkileri desteklemek üzere oluşturulduğu birden çok ilişkili tabloya sahip olmaktır.
birden çok tablo oluşturmak, ilgili verilerin nasıl toplanıp toplanmayacağı üzerinde denetim sahibi olmak istiyorsanız yararlı olabilir. Zenginleştirilmiş içeriğin ilişkisiz veya bağımsız bileşenleri varsa( örneğin, bir belgeden ayıklanan anahtar sözcükler aynı belgede tanınan varlıklardan ilgisiz olabilir) bu alanları bitişik tablolara bölebilirsiniz.
Birden çok tabloya yansıttığınızda, alt düğüm aynı gruptaki başka bir tablonun kaynağı olmadığı sürece, şeklin tamamı her tabloya yansıtılır. Var olan bir projeksiyonun alt öğesi olan bir kaynak yola projeksiyon eklemek, alt düğümün üst düğümden dilimlenip yeni ancak ilişkili tabloya yansıtılmasıyla sonuçlanır. Bu teknik, bir Shaper becerisinde tüm projeksiyonlarınızın kaynağı olabilecek tek bir düğüm tanımlamanızı sağlar.
Birden çok tablo için desen şunlardan oluşur:
- Bir tabloyu üst veya ana tablo olarak belirlemek.
- Zenginleştirilmiş içeriğin dilimlerini içeren diğer tablolar
Örneğin, bir Shaper becerisinin otel bilgilerini ve anahtar ifadeler, konumlar ve kuruluşlar gibi zenginleştirilmiş içeriği içeren bir "Zenginleştirilmiş Şekil" oluşturduğunu varsayalım. Ana tabloda oteli açıklayan alanlar (kimlik, ad, açıklama, adres, kategori) yer alır. Anahtar ifadeler anahtar ifadeler sütununu alır. Varlıklar varlık sütunlarını elde eder.
"projections" : [
{
"tables": [
{ "tableName": "MainTable", "generatedKeyName": "HotelId", "source": "/document/EnrichedShape" },
{ "tableName": "KeyPhrases", "generatedKeyName": "KeyPhraseId", "source": "/document/EnrichedShape/*/KeyPhrases/*" },
{ "tableName": "Entities", "generatedKeyName": "EntityId", "source": "/document/EnrichedShape/*/Entities/*" }
]
}
]
İlişkileri adlandırma
generatedKeyName ve referenceKeyName özellikleri, verileri tablolar arasında ve hatta projeksiyon türleri arasında ilişkilendirmek için kullanılır. Alt tablodaki her satırın ana tabloya geri işaret eden bir özelliği vardır. Çocuk öğedeki sütunun veya özelliğin adı, üst öğeden referenceKeyName olarak gelir.
referenceKeyName sağlanmadığında, hizmet varsayılan olarak üst öğeden generatedKeyName kullanır.
Power BI, tablolardaki ilişkileri bulmak için bu oluşturulan anahtarlara dayanır. Alt tabloda farklı bir sütun adına ihtiyacınız varsa, üst tabloda referenceKeyName özelliğini ayarlayın. Bunun bir örneği, tblDocument tablosunda generatedKeyName kimlik olarak ve referenceKeyName DocumentID olarak ayarlamaktır. Bu, tblEntities ve tblKeyPhrases tablolarında belge kimliğini içeren sütunun DocumentID olarak adlandırılmasıyla sonuçlanır.
Nesne projeksiyonu tanımlama
Nesne projeksiyonları, herhangi bir düğümden kaynaklanabilen zenginleştirme ağacının JSON gösterimleridir. Tablo projeksiyonlarına kıyasla nesne projeksiyonlarının tanımlanması daha kolaydır ve tüm belgeler yansıtılırken kullanılır. Nesne projeksiyonları kapsayıcıdaki tek bir projeksiyonla sınırlıdır ve dilimlenemez.
Bir nesne projeksiyonu tanımlamak için projeksiyonlar özelliğindeki diziyi kullanın objects . Nesne projeksiyonu üç gerekli özelliğe sahiptir:
| Property | Description |
|---|---|
| storageContainer | Azure Depolama'da oluşturulan yeni kapsayıcının adını belirler. |
| generatedKeyName | Her satırı benzersiz olarak tanımlayan anahtarın sütun adı. Değer sistem tarafından oluşturulur. Eğer bu özelliği atlarsanız, isimlendirme şeması olarak tablo adını ve "anahtar" kelimesini kullanan bir sütun otomatik olarak oluşturulur. |
| source | Projeksiyonun kökü olan bir zenginleştirme ağacındaki düğüme giden bir yol. Düğüm, genellikle karmaşık bir veri yapısına referanstır ve blob yapısını belirler. |
Aşağıdaki örnek, her bir blob için bir otel belgesi olmak üzere, tek tek otel belgelerini hotels adlı bir kapsayıcıya projeler.
"knowledgeStore": {
"storageConnectionString": "an Azure storage connection string",
"projections" : [
{
"tables": [ ]
},
{
"objects": [
{
"storageContainer": "hotels",
"source": "/document/objectprojection",
}
]
},
{
"files": [ ]
}
]
}
Kaynak, "objectprojection" adlı bir Shaper becerisinin çıktısıdır. Her blob, her alan girişinin bir JSON gösterimine sahiptir.
{
"@odata.type": "#Microsoft.Skills.Util.ShaperSkill",
"name": "#3",
"description": null,
"context": "/document",
"inputs": [
{
"name": "HotelId",
"source": "/document/HotelId"
},
{
"name": "HotelName",
"source": "/document/HotelName"
},
{
"name": "Category",
"source": "/document/Category"
},
{
"name": "keyPhrases",
"source": "/document/HotelId/keyphrases/*"
},
],
"outputs": [
{
"name": "output",
"targetName": "objectprojection"
}
]
}
Dosya projeksiyonu tanımlama
Dosya projeksiyonları her zaman ikili, normalleştirilmiş görüntülerdir; burada normalleştirme beceri kümesi yürütmesinde kullanılmak üzere olası yeniden boyutlandırma ve döndürme anlamına gelir. Nesne projeksiyonlarına benzer şekilde dosya projeksiyonları, Azure Depolama'da blob olarak oluşturulur ve ikili veriler içerir (JSON'un aksine).
Bir dosya projeksiyonu tanımlamak için projeksiyonlar özelliğindeki diziyi kullanın files . Dosya projeksiyonunun üç gerekli özelliği vardır:
| Property | Description |
|---|---|
| storageContainer | Azure Depolama'da oluşturulan yeni kapsayıcının adını belirler. |
| generatedKeyName | Her satırı benzersiz olarak tanımlayan anahtarın sütun adı. Değer sistem tarafından oluşturulur. Eğer bu özelliği atlarsanız, isimlendirme şeması olarak tablo adını ve "anahtar" kelimesini kullanan bir sütun otomatik olarak oluşturulur. |
| source | Projeksiyonun kökü olan bir zenginleştirme ağacındaki düğüme giden bir yol. Görüntü dosyaları için kaynak her zaman /document/normalized_images/*şeklindedir. Dosya projeksiyonları yalnızca koleksiyon üzerinde etki eder. Dizin oluşturucular veya beceri kümesi özgün normalleştirilmemiş görüntüden geçmez. |
Hedef her zaman belge kimliğinin base64 kodlanmış değerinin klasör ön ekine sahip bir blob kapsayıcıdır. Birden çok resim varsa, bunlar aynı klasöre yerleştirilir. Dosya projeksiyonları, nesne projeksiyonlarıyla aynı kapsayıcıyı paylaşamaz ve farklı bir kapsayıcıya yansıtılması gerekir.
Aşağıdaki örnek, zenginleştirilmiş bir belgenin belge düğümünden ayıklanan tüm normalleştirilmiş görüntüleri myImages adlı bir kapsayıcıya projelendirir.
"projections": [
{
"tables": [ ],
"objects": [ ],
"files": [
{
"storageContainer": "myImages",
"source": "/document/normalized_images/*"
}
]
}
]
Test projeksiyonları
Aşağıdaki adımları izleyerek projeksiyonları işleyebilirsiniz:
Bilgi deposunun
storageConnectionStringözelliğini geçerli bir V2 genel amaçlı depolama hesabı bağlantı dizesi olarak ayarlayın.Beceri kümesinin gövdesinde projeksiyon tanımınızla bir PUT isteği vererek beceri kümesini güncelleştirin.
Beceri kümesini etkinleştirmek için dizin oluşturucuyu çalıştırın.
İlerleme durumunu denetlemek ve hataları yakalamak için dizin oluşturucu yürütmesini izleyin.
Azure Depolama'da nesne oluşturmayı doğrulamak için Azure portalını kullanın.
Tabloları yansıtıyorsanız, tablo işleme ve görselleştirme için bunları Power BI'a aktarın. Çoğu durumda, Power BI tablolar arasındaki ilişkileri otomatik olarak keşfeder.
Yaygın sorunlar
Aşağıdaki adımlardan herhangi birinin atlanması beklenmeyen sonuçlara neden olabilir. Sonucunuz doğru görünmüyorsa aşağıdaki koşulları kontrol edin.
Dize zenginleştirmeleri geçerli JSON şeklinde değildir. Dizeler zenginleştirildiğinde, örneğin
merged_contentanahtar ifadelerle zenginleştirildiğinde, zenginleştirilmiş özellikler zenginleştirme ağacı içindemerged_contentalt öğesi olarak temsil edilir. Varsayılan gösterim iyi biçimlendirilmiş JSON değildir. Yansıtma zamanında zenginleştirmeyi bir ad ve değer içeren geçerli bir JSON nesnesine dönüştürdüğünüzden emin olun. Bir Shaper becerisi kullanmak veya satır içi şekiller tanımlamak bu sorunun çözülmesine yardımcı olur.Kaynak yolunun sonundaki
/*atlandığında. Projeksiyonun kaynağı ise/document/projectionShape/keyPhrases, anahtar ifadeler dizisi tek bir nesne/satır olarak yansıtılır. Bunun yerine, anahtar tümceciklerin her biri için tek bir satır veya nesne vermek üzere kaynak yolu/document/projectionShape/keyPhrases/*olarak ayarlayın.Yol söz dizimi hataları. Yol seçiciler büyük/küçük harfe duyarlıdır ve seçici için tam büyük/küçük harf kullanmazsanız eksik giriş uyarılarına yol açabilir.
Sonraki Adımlar
Sonraki adım, zengin beceri kümesinden elde ettiğiniz çıkışı şekillendirme ve yansıtma konusunda size yol gösterir. Beceri kümesiniz karmaşıksa, aşağıdaki makalede hem şekillere hem de projeksiyonlara örnekler verilmiştir.