Bagikan melalui


Keterampilan Tata Letak Dokumen

Keterampilan Tata Letak Dokumen menganalisis dokumen untuk mendeteksi struktur dan karakteristik, dan menghasilkan representasi sinonis dokumen dalam format Markdown atau Teks. Anda dapat menggunakannya untuk mengekstrak teks dan gambar, di mana ekstraksi gambar menyertakan metadata lokasi yang mempertahankan posisi gambar dalam dokumen. Kedekatan gambar dengan konten terkait bermanfaat dalam beban kerja Retrieval Augmented Generation (RAG) dan skenario pencarian multimodal .

Artikel ini adalah dokumentasi referensi untuk keterampilan Tata Letak Dokumen. Untuk informasi penggunaan, lihat Cara memotong dan mem-vektorisasi menurut tata letak dokumen.

Keterampilan ini menggunakan model tata letak dari Azure Document Intelligence di Foundry Tools.

Keterampilan ini terikat ke sumber daya Microsoft Foundry yang dapat ditagih untuk transaksi yang melebihi 20 dokumen per pengindeks per hari. Eksekusi keterampilan bawaan dibebankan pada harga Foundry Tools Standard yang ada.

Tip

Biasanya menggunakan keterampilan ini pada konten seperti PDF yang memiliki struktur dan gambar. Tutorial berikut menunjukkan verbalisasi gambar dengan dua teknik pemotongan data yang berbeda:

Limitations

Keterampilan ini memiliki batasan berikut:

  • Keterampilan ini tidak cocok untuk dokumen besar yang membutuhkan lebih dari 5 menit pemrosesan dalam model tata letak Azure Document Intelligence. Waktu keterampilan habis, tetapi biaya masih berlaku untuk sumber daya Foundry jika dilampirkan ke set keterampilan untuk tujuan penagihan. Pastikan dokumen dioptimalkan untuk tetap berada dalam batas pemrosesan untuk menghindari biaya yang tidak perlu.

  • Karena keterampilan ini memanggil model tata letak Kecerdasan Dokumen Azure, semua perilaku layanan yang didokumen untuk jenis dokumen yang berbeda untuk jenis file yang berbeda berlaku untuk outputnya. Misalnya, file Word (DOCX) dan PDF dapat menghasilkan hasil yang berbeda karena perbedaan cara gambar ditangani. Jika perilaku gambar yang konsisten di seluruh DOCX dan PDF diperlukan, pertimbangkan untuk mengonversi dokumen ke PDF atau meninjau dokumentasi pencarian multimodal untuk pendekatan alternatif.

Wilayah yang didukung

Keterampilan Tata Letak Dokumen memanggil Azure Document Intelligence 2024-11-30 API versi V4.0.

Wilayah yang didukung bervariasi menurut modalitas dan bagaimana keterampilan terhubung ke model tata letak Azure Document Intelligence.

Approach Requirement
Wizard impor data (baru) Buat sumber daya Foundry di salah satu wilayah ini untuk mendapatkan pengalaman portal: US Timur, Eropa Barat, US Tengah Utara.
Terprogram, menggunakan autentikasi ID Microsoft Entra (pratinjau) untuk penagihan Buat Pencarian Azure AI di salah satu wilayah tempat layanan didukung, sesuai dengan Ketersediaan produk menurut wilayah.
Buat sumber daya Foundry di wilayah mana pun yang tercantum dalam tabel Ketersediaan produk menurut wilayah .
Terprogram, menggunakan kunci sumber daya Foundry untuk penagihan Buat layanan Pencarian Azure AI dan sumber daya Foundry Anda di wilayah yang sama. Ini berarti bahwa wilayah yang dipilih harus memiliki dukungan untuk layanan Azure AI Search dan Azure Document Intelligence.

Versi model Tata Letak Dokumen yang diimplementasikan tidak memiliki dukungan untuk wilayah 21Vianet saat ini.

Format file yang didukung

Keterampilan ini mengenali format file berikut.

  • .PDF
  • .JPEG
  • .JPG
  • .PNG
  • .BMP
  • .TIFF
  • .DOCX
  • .XLSX
  • .PPTX
  • .HTML

Bahasa yang didukung

Lihat bahasa yang didukung model tata letak Azure Document Intelligence untuk teks cetak.

@odata.type

Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill

Batasan data

Parameter keterampilan

Parameter peka huruf besar/kecil. Beberapa parameter diperkenalkan dalam versi pratinjau tertentu dari REST API. Sebaiknya gunakan versi yang tersedia secara umum (2025-09-01) atau pratinjau terbaru (pratinjau 2025-11-01) untuk akses penuh ke semua parameter.

Nama Parameter Nilai yang diizinkan Description
outputMode oneToMany Mengontrol kardinalitas output yang dihasilkan oleh keterampilan.
markdownHeaderDepth h1, , h2h3, h4, , h5,h6(default) Hanya diterapkan jika outputFormat diatur ke markdown. Parameter ini menjelaskan tingkat bersarang terdalam yang harus dipertimbangkan. Misalnya, jika markdownHeaderDepth adalah h3, bagian apa pun yang lebih dalam seperti h4, digulirkan ke dalam h3.
outputFormat markdown(default), text New. Mengontrol format output yang dihasilkan oleh keterampilan.
extractionOptions ["images"], , ["images", "locationMetadata"]["locationMetadata"] New. Identifikasi konten tambahan yang diekstrak dari dokumen. Tentukan array enum yang sesuai dengan konten yang akan disertakan dalam output. Misalnya, jika extractionOptions adalah ["images", "locationMetadata"], output mencakup gambar dan metadata lokasi yang menyediakan informasi lokasi halaman yang terkait dengan tempat konten diekstraksi, seperti nomor halaman atau bagian. Parameter ini berlaku untuk kedua format output.
chunkingProperties Lihat di bawah. New. Hanya diterapkan jika outputFormat diatur ke text. Opsi yang merangkum cara memotong konten teks saat mengolah ulang metadata lainnya.
ChunkingProperties Parameter Version Nilai yang diizinkan Description
unit Characters. saat ini satu-satunya nilai yang diizinkan. Panjang gugus diukur dalam karakter, dibandingkan dengan kata atau token New. Mengontrol kardinalitas unit potongan.
maximumLength Bilangan bulat apa pun antara 300-50000 New. Panjang gugus maksimum dalam karakter sebagaimana diukur oleh String.Length.
overlapLength Integer. Nilai harus kurang dari setengah dari maximumLength New. Panjang tumpang tindih yang disediakan antara dua potongan teks.

Input keterampilan

Nama input Description
file_data File yang kontennya harus diekstrak.

Input "file_data" harus berupa objek yang didefinisikan sebagai:

{
  "$type": "file",
  "data": "BASE64 encoded string of the file"
}

Atau, dapat didefinisikan sebagai:

{
  "$type": "file",
  "url": "URL to download file",
  "sasToken": "OPTIONAL: SAS token for authentication if the URL provided is for a file in blob storage"
}

Objek referensi file dapat dihasilkan dengan salah satu cara berikut:

  • allowSkillsetToReadFileData Mengatur parameter pada definisi pengindeks Anda ke true. Pengaturan ini membuat jalur /document/file_data yang merupakan objek yang mewakili data file asli yang diunduh dari sumber data blob Anda. Parameter ini hanya berlaku untuk file di penyimpanan Azure Blob.

  • Memiliki keterampilan kustom yang mengembalikan definisi objek JSON yang menyediakan $type, , dataatau url dan sastoken. Parameter $type harus diatur ke file, dan data harus berupa array byte dasar yang dikodekan 64 dari konten file. Parameter url harus berupa URL yang valid dengan akses untuk mengunduh file di lokasi tersebut.

Output keterampilan

Nama output Description
markdown_document Hanya diterapkan jika outputFormat diatur ke markdown. Kumpulan objek "bagian", yang mewakili setiap bagian individual dalam dokumen Markdown.
text_sections Hanya diterapkan jika outputFormat diatur ke text. Kumpulan objek potongan teks, yang mewakili teks dalam batas halaman (memperhitungkan lebih banyak potongan yang dikonfigurasi), termasuk header bagian apa pun itu sendiri. Objek potongan teks mencakup locationMetadata jika berlaku.
normalized_images Hanya berlaku jika outputFormat diatur ke text dan extractionOptions menyertakan images. Kumpulan gambar yang diekstrak dari dokumen, termasuk locationMetadata jika berlaku.

Contoh definisi untuk mode output markdown

{
  "skills": [
    {
      "description": "Analyze a document",
      "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill",
      "context": "/document",
      "outputMode": "oneToMany", 
      "markdownHeaderDepth": "h3", 
      "inputs": [
        {
          "name": "file_data",
          "source": "/document/file_data"
        }
      ],
      "outputs": [
        {
          "name": "markdown_document", 
          "targetName": "markdown_document" 
        }
      ]
    }
  ]
}

Sampel output untuk mode output markdown

{
  "markdown_document": [
    { 
      "content": "Hi this is Jim \r\nHi this is Joe", 
      "sections": { 
        "h1": "Foo", 
        "h2": "Bar", 
        "h3": "" 
      },
      "ordinal_position": 0
    }, 
    { 
      "content": "Hi this is Lance",
      "sections": { 
         "h1": "Foo", 
         "h2": "Bar", 
         "h3": "Boo" 
      },
      "ordinal_position": 1,
    } 
  ] 
}

Nilai markdownHeaderDepth mengontrol jumlah kunci dalam kamus "bagian". Dalam contoh definisi keterampilan, karena markdownHeaderDepth adalah "h3," ada tiga kunci dalam kamus "bagian": h1, h2, h3.

Contoh untuk mode output teks dan ekstraksi gambar dan metadata

Contoh ini menunjukkan cara menghasilkan konten teks dalam gugus berukuran tetap dan mengekstrak gambar bersama dengan metadata lokasi dari dokumen.

Contoh definisi untuk mode output teks dan ekstraksi gambar dan metadata

{
  "skills": [
    {
      "description": "Analyze a document",
      "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill",
      "context": "/document",
      "outputMode": "oneToMany",
      "outputFormat": "text",
      "extractionOptions": ["images", "locationMetadata"],
      "chunkingProperties": {     
          "unit": "characters",
          "maximumLength": 2000, 
          "overlapLength": 200
      },
      "inputs": [
        {
          "name": "file_data",
          "source": "/document/file_data"
        }
      ],
      "outputs": [
        { 
          "name": "text_sections", 
          "targetName": "text_sections" 
        }, 
        { 
          "name": "normalized_images", 
          "targetName": "normalized_images" 
        } 
      ]
    }
  ]
}

Sampel output untuk mode output teks dan ekstraksi gambar dan metadata

{
  "text_sections": [
      {
        "id": "1_7e6ef1f0-d2c0-479c-b11c-5d3c0fc88f56",
        "content": "the effects of analyzers using Analyze Text (REST). For more information about analyzers, see Analyzers for text processing.During indexing, an indexer only checks field names and types. There's no validation step that ensures incoming content is correct for the corresponding search field in the index.Create an indexerWhen you're ready to create an indexer on a remote search service, you need a search client. A search client can be the Azure portal, a REST client, or code that instantiates an indexer client. We recommend the Azure portal or REST APIs for early development and proof-of-concept testing.Azure portal1. Sign in to the Azure portal 2, then find your search service.2. On the search service Overview page, choose from two options:· Import data wizard: The wizard is unique in that it creates all of the required elements. Other approaches require a predefined data source and index.All services > Azure Al services | Al Search >demo-search-svc Search serviceSearchAdd indexImport dataImport and vectorize dataOverviewActivity logEssentialsAccess control (IAM)Get startedPropertiesUsageMonitoring· Add indexer: A visual editor for specifying an indexer definition.",
        "locationMetadata": {
          "pageNumber": 1,
          "ordinalPosition": 0,
          "boundingPolygons": "[[{\"x\":1.5548,\"y\":0.4036},{\"x\":6.9691,\"y\":0.4033},{\"x\":6.9691,\"y\":0.8577},{\"x\":1.5548,\"y\":0.8581}],[{\"x\":1.181,\"y\":1.0627},{\"x\":7.1393,\"y\":1.0626},{\"x\":7.1393,\"y\":1.7363},{\"x\":1.181,\"y\":1.7365}],[{\"x\":1.1923,\"y\":2.1466},{\"x\":3.4585,\"y\":2.1496},{\"x\":3.4582,\"y\":2.4251},{\"x\":1.1919,\"y\":2.4221}],[{\"x\":1.1813,\"y\":2.6518},{\"x\":7.2464,\"y\":2.6375},{\"x\":7.2486,\"y\":3.5913},{\"x\":1.1835,\"y\":3.6056}],[{\"x\":1.3349,\"y\":3.9489},{\"x\":2.1237,\"y\":3.9508},{\"x\":2.1233,\"y\":4.1128},{\"x\":1.3346,\"y\":4.111}],[{\"x\":1.5705,\"y\":4.5322},{\"x\":5.801,\"y\":4.5326},{\"x\":5.801,\"y\":4.7311},{\"x\":1.5704,\"y\":4.7307}]]"
        },
        "sections": []
      },
      {
        "id": "2_25134f52-04c3-415a-ab3d-80729bd58e67",
        "content": "All services > Azure Al services | Al Search >demo-search-svc | Indexers Search serviceSearch0«Add indexerRefreshDelete:selected: TagsFilter by name ...:selected: Diagnose and solve problemsSearch managementStatusNameIndexesIndexers*Data sourcesRun the indexerBy default, an indexer runs immediately when you create it on the search service. You can override this behavior by setting disabled to true in the indexer definition. Indexer execution is the moment of truth where you find out if there are problems with connections, field mappings, or skillset construction.There are several ways to run an indexer:· Run on indexer creation or update (default).. Run on demand when there are no changes to the definition, or precede with reset for full indexing. For more information, see Run or reset indexers.· Schedule indexer processing to invoke execution at regular intervals.Scheduled execution is usually implemented when you have a need for incremental indexing so that you can pick up the latest changes. As such, scheduling has a dependency on change detection.Indexers are one of the few subsystems that make overt outbound calls to other Azure resources. In terms of Azure roles, indexers don't have separate identities; a connection from the search engine to another Azure resource is made using the system or user- assigned managed identity of a search service. If the indexer connects to an Azure resource on a virtual network, you should create a shared private link for that connection. For more information about secure connections, see Security in Azure Al Search.Check results",
        "locationMetadata": {
          "pageNumber": 2,
          "ordinalPosition": 1,
          "boundingPolygons": "[[{\"x\":2.2041,\"y\":0.4109},{\"x\":4.3967,\"y\":0.4131},{\"x\":4.3966,\"y\":0.5505},{\"x\":2.204,\"y\":0.5482}],[{\"x\":2.5042,\"y\":0.6422},{\"x\":4.8539,\"y\":0.6506},{\"x\":4.8527,\"y\":0.993},{\"x\":2.5029,\"y\":0.9845}],[{\"x\":2.3705,\"y\":1.1496},{\"x\":2.6859,\"y\":1.15},{\"x\":2.6858,\"y\":1.2612},{\"x\":2.3704,\"y\":1.2608}],[{\"x\":3.7418,\"y\":1.1709},{\"x\":3.8082,\"y\":1.171},{\"x\":3.8081,\"y\":1.2508},{\"x\":3.7417,\"y\":1.2507}],[{\"x\":3.9692,\"y\":1.1445},{\"x\":4.0541,\"y\":1.1445},{\"x\":4.0542,\"y\":1.2621},{\"x\":3.9692,\"y\":1.2622}],[{\"x\":4.5326,\"y\":1.2263},{\"x\":5.1065,\"y\":1.229},{\"x\":5.106,\"y\":1.346},{\"x\":4.5321,\"y\":1.3433}],[{\"x\":5.5508,\"y\":1.2267},{\"x\":5.8992,\"y\":1.2268},{\"x\":5.8991,\"y\":1.3408},{\"x\":5.5508,\"y\":1.3408}]]"
        },
        "sections": []
       }
    ],
    "normalized_images": [ 
        { 
            "id": "1_550e8400-e29b-41d4-a716-446655440000", 
            "data": "SGVsbG8sIFdvcmxkIQ==", 
            "imagePath": "aHR0cHM6Ly9henNyb2xsaW5nLmJsb2IuY29yZS53aW5kb3dzLm5ldC9tdWx0aW1vZGFsaXR5L0NyZWF0ZUluZGV4ZXJwNnA3LnBkZg2/normalized_images_0.jpg",  
            "locationMetadata": {
              "pageNumber": 1,
              "ordinalPosition": 0,
              "boundingPolygons": "[[{\"x\":2.0834,\"y\":6.2245},{\"x\":7.1818,\"y\":6.2244},{\"x\":7.1816,\"y\":7.9375},{\"x\":2.0831,\"y\":7.9377}]]"
            }
        },
        { 
            "id": "2_123e4567-e89b-12d3-a456-426614174000", 
            "data": "U29tZSBtb3JlIGV4YW1wbGUgdGV4dA==", 
            "imagePath": "aHR0cHM6Ly9henNyb2xsaW5nLmJsb2IuY29yZS53aW5kb3dzLm5ldC9tdWx0aW1vZGFsaXR5L0NyZWF0ZUluZGV4ZXJwNnA3LnBkZg2/normalized_images_1.jpg",  
            "locationMetadata": {
              "pageNumber": 2,
              "ordinalPosition": 1,
              "boundingPolygons": "[[{\"x\":2.0784,\"y\":0.3734},{\"x\":7.1837,\"y\":0.3729},{\"x\":7.183,\"y\":2.8611},{\"x\":2.0775,\"y\":2.8615}]]"
            } 
        }
    ] 
}

Perhatikan bahwa “sections” dalam sampel output di atas tampak kosong. Untuk mengisinya, Anda harus menambahkan keterampilan tambahan yang dikonfigurasi dengan outputFormat diatur ke markdownuntuk memastikan bagian diisi dengan benar.

Keterampilan ini menggunakan Kecerdasan Dokumen Azure untuk menghitung locationMetadata. Lihat model tata letak Kecerdasan Dokumen Azure untuk detail tentang bagaimana halaman dan koordinat poligon pembatas ditentukan.

imagePath mewakili jalur relatif gambar yang disimpan. Jika proyeksi file penyimpanan pengetahuan dikonfigurasi dalam set keterampilan, jalur ini cocok dengan jalur relatif gambar yang disimpan di penyimpanan pengetahuan.

Lihat juga