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.
Bu öğreticide, şu görevleri gerçekleştiren çok modüllü bir dizin oluşturucu işlem hattı oluşturacaksınız:
- Metin ve resimleri çıkart ve parçala
- Benzerlik araması için metin ve resimleri vektörleştirme
- Kırpılan görüntüleri uygulamanız tarafından alınması için bilgi deposuna gönderme
Bu öğreticide, çok modüllü içeriği ayıklamanın, öbeklemenin ve vektörleştirmenin farklı yollarını göstermek için birden çok beceri kümesi yan yana gösterilir.
Önkoşullar
Örnek verileri kullanmak istiyorsanız Temel fiyatlandırma katmanında veya daha yüksek bir katmanda Azure Yapay Zeka Arama. Modellere ve verilere rol tabanlı erişim için yönetilen kimlik yapılandırın.
Azure Depolama, örnek verileri depolamak ve bilgi deposu oluşturmak için kullanılır.
Microsoft Foundry kaynağı, Foundry modelleri ve API'leri sağlar. Azure Yapay Zeka Görüntü'ı çok modüllü kullanıyorsanız Microsoft Foundry kaynağınız için desteklenen bölgelerden birini seçin.
REST istemcisi veya Python uzantısıylaVisual Studio Code. Python'ın uygun bir sürümünü yüklemediyseniz VS Code Python Öğreticisi'ndeki yönergeleri izleyin.
Çok modüllü dizin oluşturma, dizin oluşturucu işlem hattında yapay zeka modellerini ve API'leri çağıran beceriler aracılığıyla uygulanır. Model önkoşulları , her görev için seçilen becerilere bağlı olarak değişir.
Tavsiye
Bu öğreticiyi ücretsiz katmanda tamamlamak için daha az görüntü içeren daha küçük bir belge kullanın. Bu öğreticide yalnızca Foundry modelleri kullanılır, ancak diğer modelleri kullanmak için özel beceriler oluşturabilirsiniz .
Erişimi yapılandırma
Başlamadan önce Azure Yapay Zeka Arama'teki içeriğe ve işlemlere erişim izinlerinizin olduğundan emin olun. Bu hızlı başlangıçta kimlik doğrulaması için Microsoft Entra Id ve yetkilendirme için rol tabanlı erişim kullanılır. Rolleri atamak için Sahip veya Kullanıcı Erişimi Yöneticisi olmanız gerekir. Roller uygun değilse bunun yerine anahtar tabanlı kimlik doğrulamayı kullanın.
Önerilen rol tabanlı erişimi yapılandırmak için:
Arama hizmetiniz için rol tabanlı erişimi etkinleştirin.
Kullanıcı hesabınıza aşağıdaki rolleri atayın .
Arama Hizmeti Katkıda Bulunanı
Arama Dizini Veri Katkısı Sağlayan
Arama Dizini Veri Okuyucusu
Uç noktayı alma
Her Azure Yapay Zeka Arama hizmetinin, hizmeti tanımlayan ve hizmete ağ erişimi sağlayan benzersiz bir URL olan bir uç noktası vardır. Sonraki bir bölümde, arama hizmetinize program aracılığıyla bağlanmak için bu uç noktayı belirtirsiniz.
Uç noktayı almak için:
Sol bölmeden Genel Bakış'ı seçin.
Uç noktayı not alın, bu şöyle görünmelidir:
https://my-service.search.windows.net.
Verileri hazırlama
Örnek veriler, grafikler, bilgi grafikleri ve taranmış sayfalar gibi zengin görsel içerikleri özgün metinle birleştiren 36 sayfalık bir PDF belgesidir. Azure Depolama örnek verileri sağlar ve bilgi depolarını barındırıyor. Yönetilen arama hizmeti kimliğinin ihtiyaçları:
Örnek verileri almak için Azure Depolama'ya erişimi okuyun.
Bilgi deposu oluşturmak için yazma erişimi. Arama hizmeti, beceri kümesi işleme sırasında bir ortam değişkeninde sağladığınız adı kullanarak kırpılan görüntüler için kapsayıcı oluşturur.
Örnek verileri ayarlamak için bu adımları izleyin.
Aşağıdaki örnek PDF'yi indirin: sürdürülebilir-ai-pdf
Azure portalınaoturum açın.
Azure Depolama'da sustainable-ai-pdf adlı yeni bir kapsayıcı oluşturun.
Arama hizmetinin yönetilen kimliğine roller atayın:
Veri geri almak için Depolama Blobu Veri Okuyucusu
Bilgi deposu oluşturmak için Depolama Blob Verileri Katkıda Bulunanı ve Depolama Tablosu Veri Katkıda Bulunanı.
Azure portalında Azure Depolama sayfaları açıkken ortam değişkeni için bir bağlantı dizesi alın.
Ayarlar>Uç Noktaları'nın altında Kaynak Kimliği için uç noktayı seçin. Aşağıdaki örneğe benzer görünmelidir:
/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/rg-mydemo/providers/Microsoft.Storage/storageAccounts/mydemostorage/blobServices/default.Bu bağlantı dizesine ön ek
ResourceId=ekleyin. Ortam değişkeniniz için bu sürümü kullanın.ResourceId=/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/rg-mydemo/providers/Microsoft.Storage/storageAccounts/mydemostorage/blobServices/defaultKullanıcı tarafından atanan yönetilen kimlik kullanılarak yapılan bağlantılar için aynı bağlantı dizesini kullanın ve önceden tanımlanmış kullanıcı tarafından atanan yönetilen kimliğe ayarlanmış bir özellik sağlayın
identity."credentials" : { "connectionString" : "ResourceId=/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MY-DEMO-RESOURCE-GROUP/providers/Microsoft.Storage/storageAccounts/MY-DEMO-STORAGE-ACCOUNT/;" }, "identity" : { "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", "userAssignedIdentity" : "/subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MY-DEMO-RESOURCE-GROUP/providers/Microsoft.ManagedIdentity/userAssignedIdentities/MY-DEMO-USER-MANAGED-IDENTITY" }
Çok modüllü dizin oluşturma becerileri seçme
Dizin, veri kaynağı ve dizin oluşturucu tanımları çoğunlukla tüm senaryolar için aynıdır, ancak beceri kümesi, metin ve görüntüleri ayıklama, öbekleme ve vektörleştirme yönteminize bağlı olarak farklı bir beceri bileşimi içerebilir.
Ayıklama ve öbekleme için becerileri seçin:
- Belge Ayıklama, Metin Bölme
- Belge Düzeni
Vektörleştirme için becerileri seçin:
- GenAI İstemi, Azure OpenAI Ekleme
- Azure AI Görme Çok Modlu Yerleştirme
Bu becerilerin çoğu dağıtılan modele veya Microsoft Foundry kaynağına bağlıdır. Aşağıdaki tabloda, her beceriyi destekleyen modelin yanı sıra model erişimi sağlayan kaynak ve izinler tanımlanmıştır.
| Beceri | Usage | Model | Kaynak | Permissions |
|---|---|---|---|---|
| Belge Ayıklama becerisi, Metin Bölme becerisi | Belirli bir boyuta göre ayıkla ve parçalara ayır. Metin ayıklama ücretsizdir. Görüntü ayıklama faturalanabilir. |
Hiçbiri (yerleşik) | Azure Yapay Zeka Arama | Bkz . Erişimi yapılandırma |
| Belge Düzeni becerisi | Belge düzenine göre ayıkla ve bölümlere ayır. | Belge Yönetim Bilgileri 4.0 | Microsoft Foundry | Bilişsel Hizmetler Kullanıcısı |
| Azure Yapay Zeka Görüntü becerisi | Metin ve görüntü içeriğini vektörleştirin. | Azure Yapay Zeka Görüntü multimodal 4.0 | Microsoft Foundry | Bilişsel Hizmetler Kullanıcısı |
| GenAI Prompt yeteneği | Resim içeriğinin metin açıklamalarını oluşturmak için bir LLM çağırın. | GPT-5 veya GPT-4 | Microsoft Foundry | Bilişsel Hizmetler Kullanıcısı |
| Azure OpenAI ekleme becerisi | Metni ve oluşturulan metin görüntüsü açıklamalarını vektörleştirin. | Metin gömme-3 veya metin gömme-ada-002 | Microsoft Foundry | Bilişsel Hizmetler Kullanıcısı |
Metin ayıklama ve metin bölme dışında model kullanımı faturalanabilir.
Arama hizmeti genel uç nokta, özel bağlantı üzerinden bağlanırsa veya faturalama bağlantısı anahtarsızsa model dağıtımları desteklenen herhangi bir bölgede olabilir. Aksi takdirde, bağlantı anahtar tabanlıysa Azure Yapay Zeka Arama ile aynı bölgeden bir Microsoft Foundry kaynağı ekleyin .
Ortamınızı ayarlama
Bu eğitimde, Azure Yapay Zeka Arama'e yönelik yerel REST istemci bağlantınız için bir uç nokta ve bir API anahtarı gerekmektedir. Bu değerleri Azure portalından alabilirsiniz. Diğer bağlantı yöntemleri için bkz. Arama hizmetine bağlanma.
Dizin oluşturucu ve beceri kümesi işleme sırasında gerçekleşen kimliği doğrulanmış bağlantılar için, arama hizmeti daha önce tanımladığınız rol atamalarını kullanır.
Visual Studio Code'u başlatın ve yeni bir dosya oluşturun.
İstekte kullanılan değişkenler için değerler sağlayın:
@searchUrl = PUT-YOUR-SEARCH-SERVICE-ENDPOINT-HERE @storageConnection = PUT-YOUR-STORAGE-CONNECTION-STRING-HERE @imageProjectionContainer=sustainable-ai-pdf-images @token = PUT-YOUR-PERSONAL-IDENTITY-TOKEN HEREiçin
@storageConnection, bağlantı dizenizin sonunda noktalı virgül veya tırnak işareti olmadığından emin olun. Verilerinizi Hazırlama bölümüne, bağlantı dizesi söz dizimi için bakın.@imageProjectionContaineriçin, blob depolamada benzersiz bir kapsayıcı adı sağlayın. Azure Yapay Zeka Arama, beceri işleme sırasında bu kapsayıcıyı oluşturur.Erişim belirteci alma hakkında yardım için bkz. Azure Yapay Zeka Arama'e bağlanma. Rolleri kullanamıyorsanız bkz. Anahtarlarla bağlanma.
Belge Düzeni becerisini veya Azure Yapay Zeka Görüntü becerisini kullanıyorsanız (2023-04-15 model sürümünü kullanır) bu değişkeni ekleyin:
@foundryUrl = PUT-YOUR-MULTISERVICE-AZURE-AI-FOUNDRY-ENDPOINT-HERE @azureAiVisionModelVersion = 2023-04-15GenAI İstemi becerisini ve Azure OpenAI Ekleme becerisini kullanıyorsanız şu değişkenleri ekleyin:
@chatCompletionModelUri = PUT-YOUR-DEPLOYED-MODEL-URI-HERE @chatCompletionModelKey = PUT-YOUR-MODEL-KEY-HERE @textEmbeddingModelUri = PUT-YOUR-DEPLOYED-MODEL-URI-HERE @textEmbeddingModelKey = PUT-YOUR-MODEL-KEY-HEREVeya
.restdosya uzantısını kullanarak.httpdosyayı kaydedin. REST istemcisiyle ilgili yardım için bkz . Hızlı Başlangıç: REST kullanarak tam metin arama.
Aynı Foundry kaynağı Azure Yapay Zeka Görüntü, Belge Zekası, sohbet tamamlama modeli ve metin ekleme modeli sunabilir. Bölgenin ihtiyacınız olan modelleri desteklediğinden emin olmanız yeterlidir. Bir bölge kapasitedeyse, gerekli modelleri dağıtmak için yeni bir kaynak oluşturmanız gerekebilir.
İşlem hattı ayarlama
Dizin oluşturucu işlem hattı dört bileşenden oluşur: veri kaynağı, dizin, beceri kümesi ve dizin oluşturucu.
- Bir veri kaynağı oluştur
- Dizin oluşturma
- Ayıklama, öbekleme ve vektörleştirme için beceri kümesi oluşturma
- Dizin oluşturucu oluşturma (ve çalıştırma)
REST dosyalarını indirme
azure-search-rest-samples GitHub deposunda, işlem hattını oluşturan ve dizini sorgulayan REST dosyaları bulunur.
Tavsiye
Python örneği için bkz. azure-ai-search-multimodal-sample GitHub deposu.
Veri kaynağı oluşturun
Veri Kaynağı Oluştur (REST), hangi verilerin dizine alınacağını belirten bir veri kaynağı bağlantısı oluşturur.
POST {{searchUrl}}/datasources?api-version=2025-11-01-preview HTTP/1.1
Content-Type: application/json
Authorization: Bearer {{token}}
{
"name":"demo-multimodal-ds",
"description":null,
"type":"azureblob",
"subtype":null,
"credentials":{
"connectionString":"{{storageConnection}}"
},
"container":{
"name":"sustainable-ai-pdf",
"query":null
},
"dataChangeDetectionPolicy":null,
"dataDeletionDetectionPolicy":null,
"encryptionKey":null,
"identity":null
}
İsteği gönderin. Yanıt şöyle görünmelidir:
HTTP/1.1 201 Created
Transfer-Encoding: chunked
Content-Type: application/json; odata.metadata=minimal; odata.streaming=true; charset=utf-8
Location: https://<YOUR-SEARCH-SERVICE-NAME>.search.windows-int.net:443/datasources('demo-multimodal-ds')?api-version=2025-11-01-preview -Preview
Server: Microsoft-IIS/10.0
Strict-Transport-Security: max-age=2592000, max-age=15724800; includeSubDomains
Preference-Applied: odata.include-annotations="*"
OData-Version: 4.0
request-id: 4eb8bcc3-27b5-44af-834e-295ed078e8ed
elapsed-time: 346
Date: Sat, 26 Apr 2026 21:25:24 GMT
Connection: close
{
"name": "demo-multimodal-ds",
"description": null,
"type": "azureblob",
"subtype": null,
"indexerPermissionOptions": [],
"credentials": {
"connectionString": null
},
"container": {
"name": "sustainable-ai-pdf",
"query": null
},
"dataChangeDetectionPolicy": null,
"dataDeletionDetectionPolicy": null,
"encryptionKey": null,
"identity": null
}
Dizin oluşturma
Dizin Oluştur (REST), arama hizmetinizde bir dizin oluşturur. Dizin, aşağıdaki özel durumlar dışında tüm beceri kümelerinde benzerdir:
bölümünde
vectorizers, arama zamanında sorgu metninin nasıl vektörleştirildiği tanımlanmıştır. Sorgu vektörlerinin ve dizinlenmiş vektörlerin uyumlu olması için beceri kümesi tarafından kullanılan aynı ekleme sağlayıcısını ve model ailesini (Azure Yapay Zeka Görüntü çok modüllü veya Azure OpenAI metin ekleme) kullanması gerekir.Alan
content_embeddingdimensionsdeğeri, gömme modeli tarafından üretilen vektör boyutuyla tam olarak eşleşmelidir (örneğin, Azure Yapay Zeka Görüntü multimodal için1024veya3072içintext-embedding-3-large). Uyuşmazlık dizin oluşturma veya sorgu hatalarına neden olabilir.Karmaşık türler için, dizindeki iç içe alan adları zenginleştirme çıktısının adlarıyla (büyük/küçük harf dahil) tam olarak eşleşmelidir. Azure Yapay Zeka Arama iç içe alt alanları farklı adlarla eşleyemez.
location_metadata,bounding_polygonsvepage_number'yi Metin Bölme çıktılarını kabul eden alanlar için,locationMetadata,boundingPolygonsvepageNumber'yi Belge Düzeni çıktılarını kabul eden alanlar için kullanın.
Her beceri bileşimi için dizin tanımları aşağıdadır.
- Belge ayıklama ve çok modüllü ekleme
- Belge ayıklama ve metin ekleme
- Belge düzeni ve çok modüllü ekleme
- Belge düzeni ve metin ekleme
Bu desen şunu kullanır:
Ayıklama ve öbekleme için Belge Ayıklama becerisi ve Metin Bölme becerisi.
Metin ve görüntü ekleme işlemleri için Azure Yapay Zeka Görüntü çok modüllü becerisi.
{
"name":"demo-multimodal-1-index",
"fields":[
{
"name":"content_id",
"type":"Edm.String",
"retrievable":true,
"key":true,
"analyzer":"keyword"
},
{
"name":"text_document_id",
"type":"Edm.String",
"searchable":false,
"filterable":true,
"retrievable":true,
"stored":true,
"sortable":false,
"facetable":false
},
{
"name":"document_title",
"type":"Edm.String",
"searchable":true
},
{
"name":"image_document_id",
"type":"Edm.String",
"filterable":true,
"retrievable":true
},
{
"name":"content_text",
"type":"Edm.String",
"searchable":true,
"retrievable":true
},
{
"name":"content_embedding",
"type":"Collection(Edm.Single)",
"dimensions":1024,
"searchable":true,
"retrievable":true,
"vectorSearchProfile":"hnsw"
},
{
"name":"content_path",
"type":"Edm.String",
"searchable":false,
"retrievable":true
},
{
"name":"location_metadata",
"type":"Edm.ComplexType",
"fields":[
{
"name":"page_number",
"type":"Edm.Int32",
"searchable":false,
"retrievable":true
},
{
"name":"bounding_polygons",
"type":"Edm.String",
"searchable":false,
"retrievable":true,
"filterable":false,
"sortable":false,
"facetable":false
}
]
}
],
"vectorSearch":{
"profiles":[
{
"name":"hnsw",
"algorithm":"defaulthnsw",
"vectorizer":"demo-vectorizer"
}
],
"algorithms":[
{
"name":"defaulthnsw",
"kind":"hnsw",
"hnswParameters":{
"m":4,
"efConstruction":400,
"metric":"cosine"
}
}
],
"vectorizers":[
{
"name":"demo-vectorizer",
"kind":"aiServicesVision",
"aiServicesVisionParameters":{
"resourceUri":"{{foundryUrl}}",
"authIdentity":null,
"modelVersion":"{{azureAiVisionModelVersion}}"
}
}
]
},
"semantic":{
"defaultConfiguration":"semanticconfig",
"configurations":[
{
"name":"semanticconfig",
"prioritizedFields":{
"titleField":{
"fieldName":"document_title"
},
"prioritizedContentFields":[
],
"prioritizedKeywordsFields":[
]
}
}
]
}
}
Önemli noktalar:
content_embeddingtek vektör alanıdır ve hem metin hem de görüntü içeriği için vektörleri depolar. Ekleme modeli için metin ekleme-3-büyük gibi3072uygun boyutlarla ve bir vektör arama profiliyle yapılandırılmalıdır.content_path, bilgi deposundaki her görüntünün yoludur.location_metadataveyalocationMetadata, normalleştirilmiş her görüntü için sınırlayıcı çokgen ve sayfa numarası meta verilerini yakalar ve hassas uzamsal arama veya kullanıcı arayüzü katmanlarını etkinleştirir. Alan adları, bilgilerin nasıl ayıklandığına bağlı olarak değişir.Metin Bölme becerisini temel alan içerik ayıklama için: konum meta verileri yalnızca PDF dosyaları için desteklenir. Ayrıca, Metin Bölme becerisi için bellek içi konum meta verilerini yakalamak ve belge ağacında göstermek için bir Şekillendirici becerisi eklemeniz gerekir. Shaper becerisi,
content_pathöğesine bilgi deposu kapsayıcı adını eklemekle de sorumludur.
Ayıklama, öbekleme ve vektörleştirme için beceri kümesi oluşturma
Beceri Kümesi Oluştur (REST), arama hizmetinizde bir beceri kümesi oluşturur. Beceri kümesi, dizin oluşturmadan önce içeriği ayıklayan, öbekleyen ve vektörleştiren işlemleri tanımlar.
Dört beceri kümesi deseni vardır. Her biri bir vektörleştirme stratejisiyle eşleştirilmiş bir ayıklama ve öbekleme stratejisi gösterir. Her desende iki önemli fark vardır: beceri seti bileşimi ve indexProjections. Projeksiyonlar, her ekleme becerisinin çıkışlarına göre değişiklik gösterir.
Dört desen de Shaper becerisini içerir. Shaper becerisinden elde edilen çıkış, bilgi deposunda ve konum meta verilerinde (sayfa numarası ve sınırlayıcı çokgenler) görüntülerin normalleştirilmiş yolunu oluşturur.
- Belge ayıklama ve çok modüllü ekleme
- Belge ayıklama ve metin ekleme
- Belge düzeni ve çok modüllü ekleme
- Belge düzeni ve metin ekleme
Bu desen şunu kullanır:
Ayıklama ve öbekleme için Belge Ayıklama becerisi ve Metin Bölme becerisi.
Metin ve görüntü ekleme işlemleri için Azure Yapay Zeka Görüntü çok modüllü becerisi.
Şekillendirici becerisi , bilgi deposundaki görüntü dosyası yolunun konum meta verilerini ve kapsayıcı adını yakalar. Bu özellik, PDF içeriğine ve Belge Ayıklamaya özeldir.
{
"name":"demo-multimodal-skillset",
"description":"A test skillset",
"skills":[
{
"@odata.type":"#Microsoft.Skills.Util.DocumentExtractionSkill",
"name":"document-extraction-skill",
"description":"Document extraction skill to extract text and images from documents",
"parsingMode":"default",
"dataToExtract":"contentAndMetadata",
"configuration":{
"imageAction":"generateNormalizedImages",
"normalizedImageMaxWidth":2000,
"normalizedImageMaxHeight":2000
},
"context":"/document",
"inputs":[
{
"name":"file_data",
"source":"/document/file_data"
}
],
"outputs":[
{
"name":"content",
"targetName":"extracted_content"
},
{
"name":"normalized_images",
"targetName":"normalized_images"
}
]
},
{
"@odata.type":"#Microsoft.Skills.Text.SplitSkill",
"name":"split-skill",
"description":"Split skill to chunk documents",
"context":"/document",
"defaultLanguageCode":"en",
"textSplitMode":"pages",
"maximumPageLength":2000,
"pageOverlapLength":200,
"unit":"characters",
"inputs":[
{
"name":"text",
"source":"/document/extracted_content",
"inputs":[
]
}
],
"outputs":[
{
"name":"textItems",
"targetName":"pages"
}
]
},
{
"@odata.type":"#Microsoft.Skills.Vision.VectorizeSkill",
"name":"text-embedding-skill",
"description":"Vision Vectorization skill for text",
"context":"/document/pages/*",
"modelVersion":"{{azureAiVisionModelVersion}}",
"inputs":[
{
"name":"text",
"source":"/document/pages/*"
}
],
"outputs":[
{
"name":"vector",
"targetName":"text_vector"
}
]
},
{
"@odata.type":"#Microsoft.Skills.Vision.VectorizeSkill",
"name":"image-embedding-skill",
"description":"Vision Vectorization skill for images",
"context":"/document/normalized_images/*",
"modelVersion":"{{azureAiVisionModelVersion}}",
"inputs":[
{
"name":"image",
"source":"/document/normalized_images/*"
}
],
"outputs":[
{
"name":"vector",
"targetName":"image_vector"
}
]
},
{
"@odata.type":"#Microsoft.Skills.Util.ShaperSkill",
"name":"shaper-skill",
"description":"Shaper skill to reshape the data to fit the index schema",
"context":"/document/normalized_images/*",
"inputs":[
{
"name":"normalized_images",
"source":"/document/normalized_images/*",
"inputs":[
]
},
{
"name":"imagePath",
"source":"='{{imageProjectionContainer}}/'+$(/document/normalized_images/*/imagePath)",
"inputs":[
]
},
{
"name":"dataUri",
"source":"='data:image/jpeg;base64,'+$(/document/normalized_images/*/data)",
"inputs":[
]
},
{
"name":"location_metadata",
"sourceContext":"/document/normalized_images/*",
"inputs":[
{
"name":"page_number",
"source":"/document/normalized_images/*/page_number"
},
{
"name":"bounding_polygons",
"source":"/document/normalized_images/*/bounding_polygon"
}
]
}
],
"outputs":[
{
"name":"output",
"targetName":"new_normalized_images"
}
]
}
],
"cognitiveServices":{
"@odata.type":"#Microsoft.Azure.Search.AIServicesByIdentity",
"subdomainUrl":"{{foundryUrl}}",
"identity":null
},
"indexProjections":{
"selectors":[
{
"targetIndexName":"demo-multimodal-index",
"parentKeyFieldName":"text_document_id",
"sourceContext":"/document/pages/*",
"mappings":[
{
"name":"content_embedding",
"source":"/document/pages/*/text_vector"
},
{
"name":"content_text",
"source":"/document/pages/*"
},
{
"name":"document_title",
"source":"/document/document_title"
}
]
},
{
"targetIndexName":"demo-multimodal-index",
"parentKeyFieldName":"image_document_id",
"sourceContext":"/document/normalized_images/*",
"mappings":[
{
"name":"content_embedding",
"source":"/document/normalized_images/*/image_vector"
},
{
"name":"content_path",
"source":"/document/normalized_images/*/new_normalized_images/imagePath"
},
{
"name":"location_metadata",
"source":"/document/normalized_images/*/new_normalized_images/location_metadata"
},
{
"name":"document_title",
"source":"/document/document_title"
}
]
}
],
"parameters":{
"projectionMode":"skipIndexingParentDocuments"
}
},
"knowledgeStore":{
"storageConnectionString":"{{storageConnection}}",
"identity":null,
"projections":[
{
"files":[
{
"storageContainer":"{{imageProjectionContainer}}",
"source":"/document/normalized_images/*"
}
]
}
]
}
}
Dizin oluşturucuyu çalıştırma
Dizin Oluşturucu Oluştur, arama hizmetinizde bir dizin oluşturucu oluşturur. Dizin oluşturucu veri kaynağına bağlanır, verileri yükler, beceri kümesi çalıştırır ve zenginleştirilmiş içeriği dizinler.
### Create and run an indexer
POST {{searchUrl}}/indexers?api-version=2025-11-01-preview HTTP/1.1
Content-Type: application/json
Authorization: Bearer {{token}}
{
"name": "demo-multimodal-indexer",
"dataSourceName": "demo-multimodal-ds",
"targetIndexName": "demo-multimodal-index",
"skillsetName": "demo-multimodal-skillset",
"parameters": {
"maxFailedItems": -1,
"maxFailedItemsPerBatch": 0,
"batchSize": 1,
"configuration": {
"allowSkillsetToReadFileData": true
}
},
"fieldMappings": [
{
"sourceFieldName": "metadata_storage_name",
"targetFieldName": "document_title"
}
],
"outputFieldMappings": []
}
Sorgu çalıştırma
İlk belge yüklenir yüklenmez aramaya başlayabilirsiniz. Bu, dizinde alınabilir olarak işaretlenmiş tüm alanları ve belge sayısını döndüren, belirtilmemiş bir tam metin arama sorgusudur.
Tavsiye
Bu content_embedding alan binden fazla boyut içerir. Diğer tüm alanları açıkça seçerek bu alanı yanıttan dışlamak için bir select deyimi kullanın. Select deyimini dizininizdeki alanlarla (location_metadata vs locationMetadata) eşleşecek şekilde ayarlayın. Örnek: "select": "content_id, text_document_id, document_title, image_document_id, content_text,
### Query the index
POST {{searchUrl}}/indexes/demo-multimodal-index/docs/search?api-version=2025-11-01-preview HTTP/1.1
Content-Type: application/json
Authorization: Bearer {{token}}
{
"search": "*",
"count": true
}
İsteği gönderin. Yanıt şöyle görünmelidir:
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/json; odata.metadata=minimal; odata.streaming=true; charset=utf-8
Content-Encoding: gzip
Vary: Accept-Encoding
Server: Microsoft-IIS/10.0
Strict-Transport-Security: max-age=2592000, max-age=15724800; includeSubDomains
Preference-Applied: odata.include-annotations="*"
OData-Version: 4.0
request-id: 712ca003-9493-40f8-a15e-cf719734a805
elapsed-time: 198
Date: Wed, 30 Apr 2025 23:20:53 GMT
Connection: close
{
"@odata.count": 100,
"@search.nextPageParameters": {
"search": "*",
"count": true,
"skip": 50
},
"value": [
],
"@odata.nextLink": "https://<YOUR-SEARCH-SERVICE-NAME>.search.windows.net/indexes/demo-multimodal-index/docs/search?api-version=2025-11-01-preview "
}
Yanıt olarak 100 belge iade edilir.
Yalnızca görüntü içeriği için sorgu
Görüntü olmayan tüm içeriği dışlamak için filtre kullanın.
$filter parametresi yalnızca dizin oluşturma sırasında filtrelenebilir olarak işaretlenmiş alanlarda çalışır.
Filtreler için mantıksal işleçleri (ve veya değil) ve karşılaştırma işleçlerini (eq, ne, gt, lt, ge, le) de kullanabilirsiniz. Dize karşılaştırmaları büyük/küçük harfe duyarlıdır. Daha fazla bilgi ve örnek için bkz. Basit arama sorguları örnekleri.
POST {{searchUrl}}/indexes/demo-multimodal-index/docs/search?api-version=2025-11-01-preview HTTP/1.1
Content-Type: application/json
Authorization: Bearer {{token}}
{
"search": "*",
"count": true,
"filter": "image_document_id ne null"
}
Yalnızca görüntü içeriği içeren arama sonuçlarında metin içeriği olmadığından, metin alanlarını dışlayabilirsiniz.
Bu alan, content_embedding hem sayfa metni hem de sözlü resim açıklamaları için yüksek boyutlu vektörler (genellikle 1.000 ile 3.000 boyut) içerir. Bu alanı sorgunun dışında tutun.
alanı, content_path belirlenen görüntü projeksiyon kapsayıcısı içindeki görüntü dosyasının göreli yolunu içerir. Bu alan yalnızca OLARAK ayarlandığında imageActionPDF'lerden generateNormalizedImages ayıklanan görüntüler için oluşturulur ve kaynak alanındaki /document/normalized_images/*/imagePathzenginleştirilmiş belgeden eşlenebilir.
Metin Bölme becerisi kullanılarak ayıklanan PDF bağlamı için, Shaper becerisi kapsayıcı adını yola ve konum meta verilerine ekler.
"Enerji" ile ilgili içeriği sorgulama
Enerjiyle ilgili içeriğe sahip metin veya görüntüleri sorgulayın; içerik kimliğini, üst belgeyi ve metni (yalnızca metin öbekleri için doldurulur) ve görüntünün bilgi deposuna kaydedildiği içerik yolunu (yalnızca görüntüler için doldurulur) döndürür.
Bu sorgu yalnızca tam metin aramasıdır, ancak benzerlik araması için vektör alanını sorgulayabilirsiniz .
POST {{searchUrl}}/indexes/demo-multimodal-index/docs/search?api-version=2025-11-01-preview HTTP/1.1
Content-Type: application/json
Authorization: Bearer {{token}}
{
"search": "energy",
"count": true
}
Sıfırla ve yeniden çalıştır
Dizinleyiciler, tam yeniden derlemeye olanak tanıyan yüksek su seviyesi işaretini temizlemek için sıfırlanabilir. Aşağıdaki POST istekleri sıfırlamaya yöneliktir ve ardından yeniden çalıştırılır.
### Reset the indexer
POST {{searchUrl}}/indexers/demo-multimodal-indexer/reset?api-version=2025-11-01-preview HTTP/1.1
Content-Type: application/json
Authorization: Bearer {{token}}
### Run the indexer
POST {{searchUrl}}/indexers/demo-multimodal-indexer/run?api-version=2025-11-01-preview HTTP/1.1
Content-Type: application/json
Authorization: Bearer {{token}}
### Check indexer status
GET {{searchUrl}}/indexers/demo-multimodal-indexer/status?api-version=2025-11-01-preview HTTP/1.1
Content-Type: application/json
Authorization: Bearer {{token}}
Bilgi deposundaki görüntüleri görüntüleme
Bu öğreticideki beceri kümesinin PDF'den ayıklanan görüntü içeriği için bir bilgi deposu oluşturduğunu hatırlayın. Dizin oluşturma işlemi tamamlandıktan sonra, sürdürülebilir-ai-pdf-images konteynerinde yaklaşık 23 görüntü bulunmalıdır.
Bu görüntüleri bir arama sorgusunda döndüremezsiniz. Ancak, kullanıcı deneyimi için görüntüleri almak için Azure Depolama API'lerini çağıran uygulama kodu yazabilirsiniz.
content_path alanında, her görüntünün yolu bulunur.
Görüntüleri Depolama Tarayıcısı'nda görüntülemek için:
Azure portalında oturum açın ve Depolama hesabınıza gidin.
Storage Browser'da sustainable-ai-pdf-images kapsayıcısını genişletin.
Bir resim seçin.
En sağ menüde (...) Görünüm/Düzenle'yi seçin.
Kaynakları temizle
Kendi aboneliğinizde çalışırken, artık ihtiyacınız olmayan kaynakları kaldırarak bir projeyi tamamlamak iyi bir fikirdir. Çalışır durumda kalan kaynaklar size pahalıya mal olabilir.
Kaynakları bulmak ve yönetmek için Azure portalında sol bölmeden Tüm kaynaklar veya Kaynak grupları'nı seçin. Kaynakları tek tek silebilir veya tüm kaynakları aynı anda kaldırmak için kaynak grubunu silebilirsiniz.