Tartalom darabolása és vektorizálása a Azure Tartalomértés képesség használatával

Note

Azure AI Keresés a Azure portálon, REST API-kon és Azure SDK-k keresztül érhető el. Emellett a Foundry IQ-t is támogatja, amely a vállalati tartalmakat újrafelhasználható, engedélytudatos tudásbázisokká alakítja át az Microsoft Foundry portálon található ügynökök számára.

Important

Az (előzetes verzióban) megjelölt funkciókra, képességekre vagy tulajdonságokra nem vonatkozik szolgáltatási szintű szerződés, nem ajánlott éles számítási feladatokhoz, és az általános elérhetővé válásuk előtt változhatnak vagy korlátozhatók. Az Azure AI Keresés előzetes verziójú kifejezések az összes előzetes verziós funkcióra vonatkoznak, függetlenül attól, hogy önálló vagy egy általánosan elérhető funkció része.

Important

Ezek a funkciók és szolgáltatások támogatják a más Microsoft-szolgáltatásokhoz és harmadik féltől származó szolgáltatásokhoz való kapcsolódást. Ezeknek a szolgáltatásoknak a használatára a vonatkozó feltételek vonatkoznak, és a Azure megfelelőségi határán kívüli adatfeldolgozást vagy tárolást, valamint a Azure megfelelőségi határba történő adatáramlást eredményezhetnek.

Az Ön felelőssége annak kezelése, hogy az adatok a szervezet megfelelőségi és földrajzi határain kívülre áramlanak-e, valamint hogy a megfelelő engedélyek, határok és jóváhagyások ki vannak-e építve.

Ön a felelős azért, hogy gondosan áttekintse és tesztelje azokat az alkalmazásokat, amelyeket az adott használati esetek kontextusában hoz létre, és minden megfelelő döntést és testreszabást meghoz. Ez magában foglalja a saját, felelős mesterségesintelligencia-csökkentő megoldások, például metapromptok, tartalomszűrők vagy egyéb biztonsági rendszerek implementálását, valamint annak biztosítását, hogy az alkalmazások megfeleljenek a megfelelő minőségi, megbízhatósági, biztonsági és megbízhatósági szabványoknak. További információ: Azure AI Keresés Átláthatósági megjegyzés.

Ebből a cikkből megtudhatja, hogyan használhatja a Azure Tartalomértés készséget a következőre:

  • Szöveg és képek kinyerve egy dokumentumból
  • Szemantikailag koherens, bekezdés- és szakaszhatárokat tiszteletben tartó adattömbök létrehozása (előzetes verzió)
  • Diagramok, ábrák és egyéb soron belüli képek MI-alapú leírásainak létrehozása (előzetes verzió)
  • Mindegyik adattömb beágyazása vektorkereséshez, és kivetítése egy Azure AI Keresés indexbe

A Azure Tartalomértés képesség dokumentumonként egy vagy több adattömbet ad vissza. Minden adattömb markdown formátumú tartalmat, hely metaadatait (oldalszámokat és határoló sokszögeket) és opcionális hivatkozásokat tartalmaz a kinyert képekre. Ha a(z) chunkingProperties.method értékét semantic értékre állítja, a darabok a rögzített karakterszakaszok helyett a bekezdés- és címsorhatárokat követik. A modelName és modelDeployment beállításakor a képesség meghív egy Azure OpenAI-csevegés-befejezési üzembe helyezést a beágyazott képek leírásának létrehozásához. A képesség ezután egyesíti ezeket a leírásokat az adattömb tartalmával.

Ez a cikk az sample állapotterv PDF-fájljait használja illusztrációként. Ugyanazt a folyamatot bármely olyan támogatott adatforráson futtathatja, amely a Content Understanding által támogatott formátumban teszi elérhetővé a fájlokat.

Prerequisites

  • Azure AI Keresés szolgáltatás bármely támogatott régióban. Maga a keresési szolgáltatás nem korlátozza a régiót ebben a forgatókönyvben.

  • Egy olyan régióban található Microsoft Foundry-erőforrás, amelyet az Azure Content Understanding-készség támogat. A rendszer a kép leírását és az adattömb-feldolgozást az Foundry-erőforrás régiójában dolgozza fel.

  • A számlázáshoz a készségkészlethez csatolt Microsoft Foundry-erőforrás. A Azure Content Understanding-készség számlázása a Azure Content Understanding díjszabásában történik.

  • (Nem kötelező) Egy Azure csevegővégrehajtási modell (például gpt-4.1) OpenAI-telepítése ugyanabban az Foundry-erőforrásban, amely képleírások létrehozására szolgál. Csak akkor szükséges, ha AI-alapú képleírásokat szeretne.

  • Egy beágyazási modell (például text-embedding-3-small) Azure OpenAI-telepítése, amelyet a Azure OpenAI beágyazási képesség használ az adattömbök vektorizálásához.

  • Egy Azure Blob Storage tároló az indexelni kívánt fájlokkal. Ez a cikk egy blobadatforrást használ az allowSkillsetToReadFileData indexelő beállítással (a fájltartalom tartalommegértési képességnek való átadására szolgál).

Overview

A cikk egy egy-többhöz indexelési folyamatot épít ki. Minden forrásdokumentum több keresési dokumentumot hoz létre (darabszámonként egyet):

  1. Az indexelő beolvassa az egyes fájlokat az Azure Blob Storage-ból, és a bináris tartalmat a /document/file_data használatával továbbítja a képességkészletnek.

  2. Az Azure Content Understanding készség szemantikus darabolás (előzetes verzió) segítségével hoz létre text_sections. Amikor modelName és modelDeployment be van állítva, a beágyazott képek AI által létrehozott leírását (előzetes verzióját) is létrehozza, és azokat az egyes adattömbök Markdown-elemeibe alakítja.

  3. A Azure OpenAI beágyazási képesség darabszámonként egyszer fut, és vektort hoz létre az adattömb tartalmához.

  4. Az indexkivetítés darabonként egy keresési dokumentumot hoz létre a célindexben, a tartalmat, az oldal metaadatait, a képhivatkozásokat és a vektort mezőkhöz rendelve.

  5. (Nem kötelező) Egy tudástárnormalized_images az Azure Blob Storage-ba vetíti ki a tartalmat, hogy az ügyfélalkalmazások URL alapján le tudják kérni a kinyert képeket.

Készítsd elő az adatfájlokat

A Azure Tartalomértés képesség feldolgozza az egyes dokumentumok bináris tartalmát, ezért a forrásfájloknak olyan formátumban kell lenniük, amelyet a képesség támogat. Az aktuális lista a Tartalomértés szolgáltatás korlátait tartalmazza. A támogatott formátumok közé tartozik a PDF, a DOCX, az XLSX, a PPTX és számos képformátum.

Töltse fel a fájlokat a támogatott adatforrásba. A Azure portál, REST API-k vagy Azure SDK segítségével az adatforrást hozhatja létre.

Az alábbi minimális kérés létrehozza az útmutató során használt adatforrást.

POST {endpoint}/datasources?api-version=2026-08-01-preview

{
  "name": "my_blob_datasource",
  "type": "azureblob",
  "credentials": {
    "connectionString": "<your-blob-connection-string>"
  },
  "container": {
    "name": "my-container"
  }
}

Index létrehozása egy-több indexeléshez

Minden keresési dokumentum egy adattömbnek felel meg, amelyet a Tartalomértés képesség állít elő. Az indexnek a következőre van szüksége:

  • Fő mező (chunk_id).
  • Egy szülőmező, amely azonosítja, hogy az adattömb melyik forrásdokumentumból származik (parent_id).
  • Az adattömb tartalmát, a lap metaadatait és a képhivatkozásokat tároló mezők.
  • Az adattömb beágyazásának vektormezője.

Az alábbi indexdefiníció megegyezik a következő szakaszban létrehozott képességkészletkel.

{
  "name": "my_content_understanding_index",
  "fields": [
    {
      "name": "chunk_id",
      "type": "Edm.String",
      "key": true,
      "searchable": true,
      "filterable": false,
      "retrievable": true,
      "stored": true,
      "sortable": true,
      "facetable": false,
      "analyzer": "keyword"
    },
    {
      "name": "parent_id",
      "type": "Edm.String",
      "searchable": false,
      "filterable": true,
      "retrievable": true,
      "stored": true,
      "sortable": false,
      "facetable": false
    },
    {
      "name": "title",
      "type": "Edm.String",
      "searchable": true,
      "filterable": false,
      "retrievable": true,
      "stored": true,
      "sortable": false,
      "facetable": false
    },
    {
      "name": "chunk",
      "type": "Edm.String",
      "searchable": true,
      "filterable": false,
      "retrievable": true,
      "stored": true,
      "sortable": false,
      "facetable": false
    },
    {
      "name": "page_number_from",
      "type": "Edm.Int32",
      "searchable": false,
      "filterable": true,
      "retrievable": true,
      "stored": true,
      "sortable": true,
      "facetable": false
    },
    {
      "name": "page_number_to",
      "type": "Edm.Int32",
      "searchable": false,
      "filterable": true,
      "retrievable": true,
      "stored": true,
      "sortable": true,
      "facetable": false
    },
    {
      "name": "image_path",
      "type": "Edm.String",
      "searchable": false,
      "filterable": false,
      "retrievable": true,
      "stored": true,
      "sortable": false,
      "facetable": false
    },
    {
      "name": "text_vector",
      "type": "Collection(Edm.Single)",
      "searchable": true,
      "retrievable": true,
      "stored": false,
      "dimensions": 1536,
      "vectorSearchProfile": "profile"
    }
  ],
  "vectorSearch": {
    "profiles": [
      {
        "name": "profile",
        "algorithm": "algorithm"
      }
    ],
    "algorithms": [
      {
        "name": "algorithm",
        "kind": "hnsw"
      }
    ]
  }
}

Készségkészlet meghatározása szemantikai daraboláshoz (előzetes verzió) és vektorizáláshoz

Ha a célindex a helyén van, határozza meg azt a képességkészletet, amely az adattömböket, vektorokat és leképezéseket hozza létre.

A készségkészlet két képességgel rendelkezik:

  • Az Azure Content Understanding-képesség darabokra bontja az egyes dokumentumokat. A(z) chunkingProperties.methodsemantic értékre állítása azt eredményezi, hogy a képesség figyelembe veszi a bekezdés- és címsorhatárokat. A modelName és modelDeployment beállítása engedélyezi az AI által generált képleírásokat (előzetes), amelyeket a képesség a vektorizálás előtt beilleszt a darab tartalmába. A támogatott csevegővégzítési modellek és egyéb paraméterek listájáért tekintse meg a szakértelem paramétereit.

  • Az Azure OpenAI beágyazási képesség létrehoz egy vektort az egyes adattömbök tartalmához.

A készségkészlet a indexProjections használatával minden egyes darabot külön keresési dokumentumhoz rendel. További tájékoztatásért lásd: Határozzon meg egy index kivetítést.

A kérés elküldése előtt cserélje le a <subdomain> Azure OpenAI altartományra, <Azure OpenAI api key> a beágyazási-erőforráskulcsra, <Foundry resource key> pedig a képességkészlethez csatolt Foundry-erőforrás kulcsára.

POST {endpoint}/skillsets?api-version=2026-08-01-preview

{
  "name": "my_content_understanding_skillset",
  "description": "Semantic chunking, image descriptions, and vectorization with the Azure Content Understanding skill",
  "skills": [
    {
      "@odata.type": "#Microsoft.Skills.Util.ContentUnderstandingSkill",
      "name": "my_content_understanding_skill",
      "context": "/document",
      "modelName": "gpt-4.1",
      "modelDeployment": "my-gpt-4-1-deployment",
      "chunkingProperties": {
        "method": "semantic",
        "unit": "tokens",
        "maximumLength": 500
      },
      "extractionOptions": ["images", "locationMetadata"],
      "inputs": [
        {
          "name": "file_data",
          "source": "/document/file_data"
        }
      ],
      "outputs": [
        {
          "name": "text_sections",
          "targetName": "text_sections"
        },
        {
          "name": "normalized_images",
          "targetName": "normalized_images"
        }
      ]
    },
    {
      "@odata.type": "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill",
      "name": "my_azure_openai_embedding_skill",
      "context": "/document/text_sections/*",
      "inputs": [
        {
          "name": "text",
          "source": "/document/text_sections/*/content"
        }
      ],
      "outputs": [
        {
          "name": "embedding",
          "targetName": "text_vector"
        }
      ],
      "resourceUri": "https://<subdomain>.openai.azure.com",
      "deploymentId": "text-embedding-3-small",
      "modelName": "text-embedding-3-small",
      "apiKey": "<Azure OpenAI api key>"
    }
  ],
  "cognitiveServices": {
    "@odata.type": "#Microsoft.Azure.Search.CognitiveServicesByKey",
    "key": "<Foundry resource key>"
  },
  "indexProjections": {
    "selectors": [
      {
        "targetIndexName": "my_content_understanding_index",
        "parentKeyFieldName": "parent_id",
        "sourceContext": "/document/text_sections/*",
        "mappings": [
          {
            "name": "chunk",
            "source": "/document/text_sections/*/content"
          },
          {
            "name": "text_vector",
            "source": "/document/text_sections/*/text_vector"
          },
          {
            "name": "page_number_from",
            "source": "/document/text_sections/*/locationMetadata/pageNumberFrom"
          },
          {
            "name": "page_number_to",
            "source": "/document/text_sections/*/locationMetadata/pageNumberTo"
          },
          {
            "name": "image_path",
            "source": "/document/text_sections/*/imagePath"
          },
          {
            "name": "title",
            "source": "/document/metadata_storage_name"
          }
        ]
      }
    ],
    "parameters": {
      "projectionMode": "skipIndexingParentDocuments"
    }
  }
}

A tartalomértelmező képesség teljes paraméterreferenciája, támogatott értékei és érvényesítési szabályai: Azure Tartalomértési képesség.

Note

Ez a cikk API-kulcsokkal tartja tömören a példákat. Éles környezetben a felügyelt identitás használatát javasoljuk:

A teljes körű áttekintésért lásd a Csatlakozás az Azure AI Keresés szolgáltatáshoz szerepkörök használatával című témakört.

Az indexelő konfigurálása és futtatása

Hozzon létre és futtasson egy indexelőt, amely az adatforrásból olvas, meghívja a készségkészletet, és az adatrészeket az indexbe vetíti. Állítsa a(z) allowSkillsetToReadFileData értékét erre: true, hogy a Content Understanding-képesség megkapja a fájl tartalmát, és állítsa a(z) parsingMode értékét erre: default.

Ebben a forgatókönyvben nincs szükség rá outputFieldMappings . A indexProjections képességkészlet blokkja már megfelelteti az egyes adattömbeket a célindexmezőknek.

POST {endpoint}/indexers?api-version=2026-08-01-preview

{
  "name": "my_content_understanding_indexer",
  "dataSourceName": "my_blob_datasource",
  "targetIndexName": "my_content_understanding_index",
  "skillsetName": "my_content_understanding_skillset",
  "parameters": {
    "batchSize": 1,
    "configuration": {
      "dataToExtract": "contentAndMetadata",
      "parsingMode": "default",
      "allowSkillsetToReadFileData": true
    }
  },
  "fieldMappings": [],
  "outputFieldMappings": []
}

Az indexelő futtatásakor a Tartalomértés képesség szemantikai adattömböket (előzetes verziót) használ, igény szerint AI-alapú képleírásokat (előzetes verziót) hoz létre, és adattömbönként egy keresési dokumentumot ír az indexbe.

Az indexelő állapotának ellenőrzése

A lekérdezés előtt ellenőrizze, hogy az indexelő futtatása befejeződött-e:

GET {endpoint}/indexers/my_content_understanding_indexer/status?api-version=2026-08-01-preview

Ellenőrizze, hogy ez-elastResult.status.success Ha transientFailureitemsProcessed nagyobb, mint 0, a futtatás részben sikeres, és továbbra is lekérdezheti a feltöltött adatdarabokat. További információt az indexelő állapotának figyelése című témakörben talál.

Eredmények ellenőrzése

Az index lekérdezésével ellenőrizze, hogy az adattömbök tartalmazzák-e a várt tartalmat, és hogy a vektorkeresés a várt módon működik-e. Használja a Keresőböngészőt , vagy bármely olyan eszközt, amely HTTP-kéréseket küld.

A következő kérés hibrid lekérdezést futtat (kulcsszókeresést chunk és vektoros lekérdezést text_vector) annak ellenőrzéséhez, hogy az adattömbök és a beágyazások is fel vannak-e töltve.

POST /indexes/my_content_understanding_index/docs/search?api-version=2026-08-01-preview
{
  "search": "copay for in-network providers",
  "count": true,
  "searchMode": "all",
  "vectorQueries": [
    {
      "kind": "text",
      "text": "copay for in-network providers",
      "fields": "text_vector"
    }
  ],
  "select": "chunk, title, page_number_from, page_number_to, image_path"
}

A sikeres válasz a következőhöz hasonlóan néz ki (a rövidség kedvéért levágva):

{
  "@odata.count": 2,
  "value": [
    {
      "@search.score": 0.0317,
      "chunk": "## Cost sharing\n\nFor in-network providers, the copay is $20 per visit...\n\n![Chart: Copay comparison across plans](figures/3)",
      "title": "Northwind_Standard_Benefits_Details.pdf",
      "page_number_from": 4,
      "page_number_to": 4,
      "image_path": "figures/3"
    },
    {
      "@search.score": 0.0289,
      "chunk": "### Out-of-network providers\n\nWhen you visit a provider that isn't in the Northwind network, the copay is $40 per visit...",
      "title": "Northwind_Standard_Benefits_Details.pdf",
      "page_number_from": 5,
      "page_number_to": 6,
      "image_path": null
    }
  ]
}

A válasz a következőket tartalmazza:

  • chunk: Az egyes adattömbek Markdown-tartalma. Amikor konfigurálja a(z) modelName és modelDeployment elemet, az AI által generált képleírások (előzetes verzió) közvetlenül a Markdownban jelennek meg.
  • page_number_from és page_number_to: Az adattömbet előállító oldaltartomány.
  • image_path: Az adattömbből kinyert kép elérési útja, vagy ha egy adattömb több képre is kiterjed, az elérési utak pontosvesszővel tagolt listája. A pontos alakzat attól függ, hogy konfigurálva van-e egy tudástárbeli fájlvetítés. Fájlvetítés nélkül az elérési út a példában látható rövid alak (figures/3). Fájlkivetítés esetén az elérési út a tudástárban található kép relatív elérési útja. Azért, hogy ezeket a képeket elérhetővé tegye az ügyfélalkalmazások számára, lásd: (Nem kötelező) Projektképek lekéréshez.

(Nem kötelező) Projektképek lekéréséhez

Az image_path indexben tárolt értékek a képesség gazdagítási fájára mutatnak, nem pedig közvetlenül lekért URL-címekre. A képek lekéréséhez egy tudástár használatával vetítse ki a(z) normalized_images elemet az Azure Blob Storage-ba, majd származtasson egy blob URL-címet az egyes darabok mellé.

Ez a lépés nem kötelező. Csak akkor adja hozzá, ha az ügyfélalkalmazásnak meg kell jelenítenie vagy le kell töltenie a kinyert képeket.

Adja hozzá az alábbi tulajdonságot az előző szakaszban szereplő készségkészlet hasznos adataihoz. A készségkészlet-kérelem a következőt használja api-version=2026-08-01-preview: .

"knowledgeStore": {
  "storageConnectionString": "<your-azure-storage-connection-string>",
  "projections": [
    {
      "files": [
        {
          "storageContainer": "extracted-images",
          "source": "/document/normalized_images/*"
        }
      ],
      "tables": [],
      "objects": []
    }
  ]
}

Az indexelő futtatása után a tárolóban lévő extracted-images összes blob egy normalized_images elemnek felel meg. A blob URL formátuma https://<storage-account>.blob.core.windows.net/<container>/<imagePath>, ahol a(z) <imagePath> megegyezik a image_path mezőben tárolt értékkel.

A teljes sémát, beleértve a további vetülettípusokat (tables és objects) és a hitelesítési beállításokat, lásd itt: „Knowledge store-projekciók” az Azure AI Keresésben.

Erőforrások tisztítása

Amikor végzett, törölje az indexelőt, a képességkészletet és az indexet, hogy ne keletkezzenek további Content Understanding- és Azure OpenAI-díjak. A Azure Blob Storage és maga az Foundry-erőforrás forrásfájljai mindaddig megmaradnak, amíg el nem törli őket.

Hibaelhárítás

Ha az indexelő meghibásodik vagy váratlan eredményeket ad vissza, ellenőrizze az alábbi gyakori okokat.

A képességkészlet ellenőrzése 400-zal meghiúsul

A képesség hibát 400 Skill validation failed ad vissza, ha a paraméterkombinációk ütköznek. Gyakori okok:

  • A(z) modelName be van állítva a(z) modelDeployment nélkül, vagy fordítva. Mindkettőt össze kell állítani.
  • method: semantic (előzetes verzió), és overlapLength nagyobb, mint 0. Állítsa a overlapLength értékét 0-re, vagy hagyja ki azt.
  • method és unit nem támogatott párok. Használja a(z) fixedSize elemet a(z) characters elemmel együtt, vagy a(z) semantic elemet a(z) tokens elemmel együtt.

A hitelesítés sikertelen a Foundry-erőforrás esetében

Ha a képesség a 401-et vagy a 403-at adja vissza az Foundry-erőforrás meghívásakor, ellenőrizze, hogy:

text_sections üres

Ha az indexelt dokumentumokban nincsenek adattömbök, ellenőrizze, hogy:

  • A fájlformátum támogatott. A lista esetében lásd a támogatott fájlformátumokat.
  • Az Foundry-erőforrás egy támogatott régióban található.
  • Az indexelés előtt a jelszóval védett PDF-fájlok feloldódnak.

Hiányoznak a képleírások (előzetes verzió)

Ha az adattömbök nem tartalmaznak beágyazott képleírásokat, ellenőrizze, hogy:

  • Mindkettő modelName , és modelDeployment a képességkészletben vannak beállítva.
  • A modelName található csevegéskiegészítési modell ugyanabban a Foundry-erőforrásban van üzembe helyezve, amelyre a készségkészlet hivatkozik.
  • A telepítés elegendő TPM- vagy RPM-kvótával rendelkezik a dokumentumok mennyiségéhez.

Az indexelő időtúllépés miatt leáll nagy dokumentumok esetén

A Content Understanding dokumentumonkénti feldolgozási időtúllépést kényszerít ki. Ha a nagy PDF-fájlok sikertelenek:

  • Indexelés előtt ossza fel a forrásdokumentumot kisebb fájlokra.
  • Csökkentse batchSize értékét 1 értékre, hogy minden dokumentum feldolgozása egymástól függetlenül történjen.

A Azure Tartalomértés képesség teljes adatkorlátjaiért lásd: Adatkorlátok.