Co to jest analizator usługi Content Understanding?

analyzer w narzędziu Azure Content Understanding in Foundry Tools to konfigurowalna jednostka przetwarzania, która definiuje sposób analizowania zawartości i wyodrębniania informacji.

Analizator definiuje:

  • Jakiego typu zawartość ma być przetwarzana (dokumenty, obrazy, dźwięk lub wideo)
  • Jakie elementy mają być wyodrębniane (tekst, układ, tabele, pola, transkrypcje)
  • Jak określić strukturę danych wyjściowych (markdown, pola JSON, segmenty)
  • Jakie modele sztucznej inteligencji używać do przetwarzania

Analizatory to podstawowe bloki konstrukcyjne usługi Content Understanding. Łączą wyodrębnianie zawartości, analizę opartą na sztucznej inteligencji oraz ustrukturyzowane dane wyjściowe w jedną konfigurację wielokrotnego użytku. Możesz użyć wstępnie utworzonych analizatorów do typowych scenariuszy lub utworzyć analizatory niestandardowe dostosowane do konkretnych potrzeb.

Jeśli nie określono inaczej, przykłady w tym artykule używają wersji interfejsu API ogólnie dostępnej 2025-11-01. Funkcje oznaczone jako wersja zapoznawcza wymagają .2026-06-01-preview

Typy analizatorów

Usługa Content Understanding udostępnia kilka typów analizatorów:

  • Analizatory podstawowe: podstawowe analizatory, które zapewniają podstawowe możliwości przetwarzania dla każdego typu zawartości (prebuilt-document, prebuilt-audio, prebuilt-video, prebuilt-image). Użyj tych analizatorów jako bloków konstrukcyjnych dla analizatorów niestandardowych.
  • Analizatory RAG: wyodrębnianie zawartości za pomocą semantycznego zrozumienia dla aplikacji wyszukiwania i sztucznej inteligencji. Są one zoptymalizowane pod kątem scenariuszy generowania z rozszerzonym pobieraniem danych. Przykłady obejmują prebuilt-documentSearch i prebuilt-videoSearch.
  • Analizatory specyficzne dla domeny: wstępnie skonfigurowane dla określonych typów dokumentów i branż, takich jak faktury, paragony, dokumenty identyfikatorów i kontrakty. Przykłady obejmują prebuilt-invoice, prebuilt-receipti prebuilt-idDocument.
  • Analizatory niestandardowe: analizatory tworzone przez rozszerzenie analizatorów podstawowych przy użyciu niestandardowych schematów pól i konfiguracji w celu spełnienia określonych wymagań.

Aby uzyskać więcej informacji i pełną listę dostępnych analizatorów specyficznych dla domeny, zobacz Wstępnie utworzone analizatory.

Uwaga

Analizatory dokumentów utworzone przy użyciu wersji 2026-06-01-preview interfejsu API mogą również używać trybu agenta w scenariuszach wymagających wnioskowania o dowodach w celu utworzenia odpowiedzi, takich jak obliczenia i walidacja. Początkowa wersja zapoznawcza obsługuje jeden plik wejściowy na żądanie analizy.

Struktura konfiguracji analizatora

Zdefiniuj konfigurację analizatora przy użyciu obiektu JSON z kilkoma właściwościami najwyższego poziomu. Można skonfigurować następujące składniki:

Oto skrócony przykład pokazujący ogólną strukturę konfiguracji analizatora:

{
  "analyzerId": "myCustomInvoiceAnalyzer",
  "description": "Extracts vendor information, line items, and totals from commercial invoices",
  "baseAnalyzerId": "prebuilt-document",
  "config": {
    "enableOcr": true
  },
  "fieldSchema": {
    "fields": {
      "vendorName": {
        "type": "string"
      }
    }
  },
  "models": {
    "completion": "gpt-5.2",
    "embedding": "text-embedding-3-large"
  }
}

Właściwości analizatora

Użyj tych właściwości, aby jednoznacznie zidentyfikować i opisać analizatora:

analyzerId

  • Opis: Unikatowy identyfikator analizatora. Użyj tego identyfikatora, aby odwołać się do analizatora w wywołaniach interfejsu API.
  • Przykład:"prebuilt-invoice", "myCustomAnalyzer"
  • Wytyczne:
    • Użyj nazw opisowych, które wskazują przeznaczenie analizatora.
    • W przypadku analizatorów niestandardowych wybierz nazwy, które nie powodują konfliktu ze wstępnie utworzonymi nazwami analizatorów.
    • Używaj liter, cyfr, kropek lub podkreśleń.

name

  • Opis: Czytelna dla człowieka nazwa wyświetlana w interfejsach użytkownika i dokumentacji.
  • Przykład:"Invoice document understanding", "Custom receipt processor"

description

  • Opis: Krótkie wyjaśnienie, co robi analizator i jaka zawartość przetwarza. Model sztucznej inteligencji używa tego opisu jako kontekstu podczas wyodrębniania pól, dlatego jasne opisy zwiększają dokładność wyodrębniania.
  • Przykład:"Analyzes invoice documents to extract line items, totals, vendor information, and payment terms"
  • Wytyczne:
    • Należy dokładnie określić, co wyodrębnia analizator.
    • Należy wspomnieć o typach zawartości, które obsługuje.
    • Zachowaj zwięzłość, ale dodaj niezbędne informacje.
    • Napisz jasne opisy, ponieważ ułatwiają zrozumienie modelu sztucznej inteligencji.

baseAnalyzerId

  • Opis: Odwołuje się do analizatora nadrzędnego, z którego ten analizator dziedziczy konfigurację.
  • Obsługiwane analizatory podstawowe:
    • "prebuilt-document" - dla analizatorów niestandardowych korzystających z dokumentów
    • "prebuilt-audio" - dla analizatorów niestandardowych opartych na dźwiękach
    • "prebuilt-video" - dla analizatorów niestandardowych opartych na wideo
    • "prebuilt-image" - dla analizatorów niestandardowych opartych na obrazach
  • Przykład:"baseAnalyzerId": "prebuilt-document"

Uwaga

Kiedy określisz analizator podstawowy, twój analizator niestandardowy dziedziczy wszystkie domyślne konfiguracje i może zastąpić określone ustawienia.

Konfiguracja modelu

models

  • Opis: Określa, które nazwy modeli programu Foundry mają być używane podczas przetwarzania za pomocą tego analizatora. Są to nazwy modeli (a nie nazwy wdrożeń), których używa usługa. Muszą one odpowiadać jednemu supportedModels z analizatora bazowego. Pełna lista modeli obsługiwanych przez usługę Content Understanding znajduje się na liście obsługiwanych modeli.
  • Właściwości:
    • completion - Nazwa modelu zadań ukończenia (wyodrębnianie pól, segmentacja, analiza rysunku, na przykład)
    • embedding — Nazwa modelu do osadzania zadań (przy użyciu bazy wiedzy)
  • Ważne: Te nazwy modeli pochodzą z katalogu Foundry, a nie nazw wdrożeń. W czasie wykonywania usługa mapuje te nazwy modeli na rzeczywiste wdrożenia modelu konfigurowane na poziomie zasobu.
  • Przykład:
    {
      "completion": "gpt-5.2",
      "embedding": "text-embedding-3-large"
    }
    

Aby uzyskać więcej informacji na temat konfigurowania połączonych modeli, zobacz Łączenie zasobu usługi Content Understanding z modelami rozwiązania Foundry .

Konfiguracja przetwarzania

Obiekt config zawiera wszystkie opcje przetwarzania, które kontrolują sposób analizowania zawartości. Te opcje są podzielone na kategorie na podstawie funkcjonalności:

Właściwości obiektu konfiguracji

Opcje ogólne

workflow
  • Wartości żądania:"default", "agentic"
  • Domyślny:"default"
  • Opis: Wybiera przepływ pracy podczas tworzenia analizatora dokumentów. Użyj metody "default", lub pomiń właściwość , aby umożliwić usłudze wybranie przepływu pracy na podstawie konfiguracji analizatora. Służy "agentic" do włączania trybu agenta na potrzeby rozszerzonego rozumowania dla złożonych dokumentów.
  • Wartość odpowiedzi: Usługa rozpoznaje wartość żądania podczas tworzenia analizatora. Tworzenie lub aktualizowanie odpowiedzi i GET odpowiedzi zwraca wartość rodziny przepływów pracy w wersji w pliku config.workflow.
  • Wpływ na koszty: Rozwiązana rodzina przepływów pracy określa częstotliwość kontekstyzacji. Wartości rozpoczynające się od standard użycia standardowego współczynnika kontekstyzacji. Wszystkie inne rodziny, w tym advanced, agentici przyszłe rodziny przepływów pracy obsługiwane przez usługę, używają zaawansowanego współczynnika kontekstyzacji. Tryb agenta może również zużywać więcej tokenów modelu i trwać dłużej niż analiza niegentyczna.
  • Obsługiwane przez: Analizatory dokumentów z wersją 2026-06-01-previewinterfejsu API . Początkowy tryb agenta w wersji zapoznawczej obsługuje jeden plik wejściowy na żądanie analizy.
  • Przykład:
    {
      "config": {
        "workflow": "agentic"
      }
    }
    

W poniższej tabeli przedstawiono sposób rozpoznawania workflow usługi dla analizatorów niestandardowych:

Scenariusz tworzenia analizatora Wartość żądania Zwrócone config.workflow Wskaźnik kontekstowej wizualizacji
Wersja interfejsu API lub starsza wersja 2025-11-01 Niedostępne standard.2025-11-01 po pobraniu za pomocą interfejsu API w wersji zapoznawczej Standard
Interfejs API w wersji zapoznawczej bez danych oznaczonych etykietami "default" lub pominięty standard.2026-06-01-preview Standard
Interfejs API w wersji zapoznawczej z danymi oznaczonymi etykietami "default" lub pominięty advanced.2026-06-01-preview Zaawansowany
Interfejs API w wersji zapoznawczej z trybem agenta "agentic" agentic.2026-06-01-preview Zaawansowany

Wstępnie utworzone analizatory zwracają wartość przypisaną przez usługę, wersję standard lub advanced przepływ pracy. Rodzina przepływów pracy identyfikuje odpowiedni współczynnik kontekstyzacji.

returnDetails
  • Ustawienie domyślne: false (różni się w zależności od analizatora)
  • Opis: Określa, czy w odpowiedzi mają być uwzględniane szczegółowe informacje, takie jak współczynniki ufności, pola ograniczenia, zakresy tekstu i metadane.
  • Kiedy należy użyć:
    • Ustaw wartość na true podczas debugowania problemów z wyodrębnianiem.
    • Gdy potrzebujesz informacji o lokalizacji dla wyodrębnionych danych.
    • Gdy oceny ufności są wymagane do weryfikacji.
    • W celu zapewnienia jakości i testowania.
  • Wpływ na odpowiedź: Znacznie zwiększa rozmiar odpowiedzi przy użyciu większej liczby metadanych.

Opcje wyodrębniania zawartości dokumentu

enableOcr
  • Wartość domyślna: true
  • Opis: Umożliwia optyczne rozpoznawanie znaków wyodrębnianie tekstu z obrazów i zeskanowanych dokumentów.
  • Kiedy należy użyć:
    • Włącz dla zeskanowanych dokumentów, zdjęć i plików PDF opartych na obrazach.
    • Wyłącz pliki PDF w formacie natywnym, aby zwiększyć wydajność.
  • Obsługiwane przez: Analizatory dokumentów.
enableLayout
  • Wartość domyślna: true
  • Opis: Wyodrębnia informacje o układzie, w tym akapity, wiersze, wyrazy, kolejność odczytu i elementy strukturalne.
  • Kiedy należy użyć:
    • Wymagane do zrozumienia struktury i hierarchii dokumentów.
    • Potrzebne do dokładnego wyodrębniania akapitu i sekcji.
    • Wyłącz, jeśli potrzebne jest tylko wyodrębnianie tekstu nieprzetworzonego.
  • Obsługiwane przez: Analizatorami opartymi na dokumentach.
enableFormula
  • Wartość domyślna: true
  • Opis: Wykrywa i wyodrębnia formuły matematyczne i równania w formacie LaTeX.
  • Kiedy należy użyć:
    • Włącz dla dokumentów naukowych, dokumentów badawczych, dokumentacji technicznej.
    • Wyłącz dla ogólnych dokumentów biznesowych, aby poprawić wydajność.
  • Obsługiwane przez: Analizatorami opartymi na dokumentach.
enableBarcode
  • Wartość domyślna: true
  • Opis: Wykrywa i wyodrębnia kody kreskowe i kody QR, zwracając zdekodowane wartości.
  • Kiedy należy użyć:
    • Włącz dla dokumentów inwentaryzacyjnych, etykiet wysyłkowych i dokumentacji produktu.
    • Wyłącz, gdy kody kreskowe nie są obecne, aby zwiększyć wydajność.
  • Obsługiwane przez: Analizatorami opartymi na dokumentach.
  • Obsługiwane typy kodów kreskowych: QR Code, PDF417, UPC-A, UPC-E, Code 39, Code 128, EAN-8, EAN-13, DataBar, Code 93, Codabar, ITF, Micro QR Code, Aztec, Data Matrix, MaxiCode.

Opcje tabeli i wykresu

tableFormat
  • Domyślny:"html"
  • Obsługiwane wartości:"html", "markdown"
  • Opis: Określa format danych wyjściowych dla wyodrębnionych tabel.
  • Kiedy należy użyć:
    • Służy "html" do renderowania w Internecie lub gdy złożone struktury tabel wymagają zachowania.
    • Użyj "markdown" do prostych tabel w dokumentacji lub przetwarzaniu tekstowym.
  • Obsługiwane przez: Analizatorami opartymi na dokumentach.
chartFormat
  • Domyślny:"chartjs"
  • Obsługiwane wartości:"chartjs"
  • Opis: Określa format wyodrębnionego wykresu i danych grafu. Zgodność z biblioteką Chart.js.
  • Kiedy należy użyć:
    • Podczas wyodrębniania danych z wykresów słupkowych, wykresów liniowych i wykresów kołowych.
    • Podczas konwertowania wykresów wizualnych na dane ustrukturyzowane na potrzeby ponownego renderowania.
  • Obsługiwane przez: Analizatorami opartymi na dokumentach.

Opcje analizy obrazów i rysunku

enableFigureDescription
  • Ustawienie domyślne: false
  • Opis: Generuje opisy tekstu w języku naturalnym dla rysunków, diagramów, obrazów i ilustracji.
  • Kiedy należy użyć:
    • W przypadku wymagań dotyczących ułatwień dostępu (generowanie tekstu alternatywnego).
    • Aby zrozumieć diagramy i schematy blokowe.
    • Do wyodrębniania informacji z infografik.
  • Obsługiwane przez: Analizatorami opartymi na dokumentach.
enableFigureAnalysis
  • Ustawienie domyślne: false
  • Opis: Przeprowadza dokładnszą analizę danych, w tym wyodrębnianie danych wykresu i identyfikację składników diagramu.
  • Kiedy należy użyć:
    • Wyodrębnianie danych strukturalnych z wykresów osadzonych w dokumentach.
    • Aby zrozumieć złożone diagramy.
    • Aby uzyskać szczegółową klasyfikację liczb.
  • Obsługiwane przez: Analizatorami opartymi na dokumentach.

Opcje adnotacji

annotationFormat
  • Domyślny:"markdown"
  • Obsługiwane wartości:"markdown"
  • Opis: Określa format zwracanych adnotacji.
  • Obsługiwane przez: Analizatorami opartymi na dokumentach.

Opcje wyodrębniania pól

estimateFieldSourceAndConfidence
  • Ustawienie domyślne: false (różni się w zależności od analizatora)
  • Opis: Zwraca lokalizację źródłową (numer strony, pole ograniczenia) i współczynnik ufności dla każdej wyodrębnionej wartości pola.
  • Kiedy należy użyć:
    • Dla procesów weryfikacji i zapewniania jakości.
    • Aby zrozumieć dokładność procesu wyodrębniania.
    • Do debugowania problemów z wyodrębnianiem.
    • Wyróżnianie tekstu źródłowego w interfejsach użytkownika.
  • Obsługiwane przez: Analizatory dokumentów dla wszystkich typów pól dokumentów (extract, classify, i generate metod).

Opcje audio i wideo

locales
  • Domyślny:[] (pusta tablica)
  • Opis: Lista kodów ustawień regionalnych i języków dla przetwarzania specyficznego dla języka, głównie na potrzeby transkrypcji.
  • Obsługiwane wartości: Kody języków BCP-47 (na przykład ["en-US", "es-ES", "fr-FR", "de-DE"])
  • Kiedy należy użyć:
    • W przypadku transkrypcji audio w wielu językach.
    • Aby określić oczekiwany język w celu uzyskania lepszej dokładności.
    • Do przetwarzania zawartości w określonych wariantach regionalnych.
  • Obsługiwane przez:prebuilt-audio, prebuilt-video, prebuilt-callCenter

Uwaga

Aby uzyskać pełną listę obsługiwanych języków i ustawień regionalnych, zobacz Obsługa języków i regionów.

Opcje klasyfikacji

contentCategories
  • Domyślny: Nie ustawiono
  • Opis: Definiuje kategorie lub typy zawartości na potrzeby automatycznej klasyfikacji i routingu do wyspecjalizowanych procedur obsługi. W przypadku używania z enableSegment set to false jest obecnie wspierane tylko w odniesieniu do dokumentów. Klasyfikuje cały plik. W przypadku użycia z enableSegment=true, plik jest podzielony na fragmenty na podstawie tych kategorii, z każdym segmentem sklasyfikowanym i opcjonalnie przetworzonym przez analizator specyficzny względem kategorii. Zawsze wybiera jedną opcję z listy dostępnych kategorii.
  • Struktury: Każda kategoria zawiera:
    • description - (Wymagane) Szczegółowy opis kategorii lub typu dokumentu. Ten opis działa jako monit, który kieruje modelem sztucznej inteligencji w określaniu granic segmentu i klasyfikacji. Uwzględnij cechy wyróżniające, aby pomóc określić, gdzie kończy się jedna kategoria, a druga zaczyna się.
    • analyzerId - (Opcjonalnie) Odwołanie do innego analizatora, który ma być użyty dla tej kategorii. Przywoływane analizatory są połączone, a nie kopiowane, zapewniając spójne zachowanie. W przypadku pominięcia jest wykonywana tylko kategoryzacja bez dalszego przetwarzania (scenariusz tylko podziału).
  • Użycie modelu: Modele określone we właściwości analizatora nadrzędnego models są używane tylko do segmentacji i klasyfikacji. Każdy podanalizator używa własnej konfiguracji modelu do wyodrębniania.
  • Zachowanie z enableSegment:
    • enableSegment: true: Zawartość jest podzielona na segmenty na podstawie opisów kategorii. Każdy segment jest klasyfikowany w jednej ze zdefiniowanych kategorii. Zwraca metadane segmentu w oryginalnym obiekcie zawartości, a także dodatkowe obiekty zawartości dla segmentów określonych za pomocą analyzerId.
    • enableSegment: false: Cała zawartość jest klasyfikowana jako całość w jednej kategorii i odpowiednio kierowana. Przydatne w przypadku klasyfikacji hierarchicznej bez dzielenia.
  • Dopasowywanie kategorii: Jeśli kategoria "inna" lub "domyślna" nie jest zdefiniowana, zawartość zostanie zmuszona do sklasyfikowania w jednej z wymienionych kategorii. Uwzględnij kategorię "inną", aby sprawnie obsługiwać niedopasowaną zawartość.
  • Obsługiwane przez: Analizatory dokumentów i wideo. W przypadku wideo można zdefiniować tylko jedną zawartośćCategory.
enableSegment
  • Ustawienie domyślne: false
  • Opis: Umożliwia segmentację zawartości, dzieląc plik na fragmenty na podstawie kategorii określonych w contentCategoriespliku . Każdy segment jest następnie klasyfikowany w jednej ze zdefiniowanych kategorii do przetwarzania selektywnego.
  • Zachowanie segmentacji: Usługa dzieli zawartość na jednostki logiczne, analizując zawartość względem opisów kategorii. Granice segmentów są określane przy użyciu:
    • Dokumentów: Opisy kategorii połączone ze strukturą zawartości (strony, sekcje, zmiany formatowania).
    • Wideo: Opisy kategorii połączone z wizualnymi wskazówkami (zmiany ujęć, przejścia scen, granice czasowe). Obsługiwana jest tylko jedna contentCategory.
  • Kiedy należy użyć:
    • Przetwarzanie partii mieszanych zawartości, w których różne części wymagają innej obsługi (na przykład pliku PDF zawierającego faktury i paragony).
    • Dzielenie długich dokumentów na kategorie do analizy selektywnej.
    • Analizowanie filmów wideo według typu zawartości (na przykład oddzielanie reklam od głównej zawartości).
  • Struktura danych wyjściowych:
    • Zwraca tablicę segments w obiekcie zawartości zawierającym metadane dla każdego segmentu (identyfikator, granice, kategoria).
    • Każdy segment zawiera swoją sklasyfikowaną kategorię z contentCategories.
    • Więcej obiektów zawartości jest zwracanych dla segmentów z określoną kategorią analyzerId .
  • Segmentacja hierarchiczna: Jeśli analizator kategorii także posiada enableSegment: true, segmenty mogą być dzielone rekursywnie, umożliwiając podział zawartości na wielu poziomach.
  • Wpływ na wydajność: Zwiększa czas przetwarzania dużych plików, szczególnie w przypadku wielu segmentów.
  • Obsługiwane przez: Analizatory dokumentów i wideo.
segmentPerPage
  • Ustawienie domyślne: false
  • Opis: Po włączeniu segmentacji wymuś jeden segment na stronę zamiast używać granic zawartości logicznej. Eliminuje konieczność oddzielnych trybów podziału "perPage".
  • Kiedy należy użyć:
    • Przepływy pracy przetwarzania stron po stronie.
    • Każda strona powinna być traktowana jako niezależna jednostka.
    • Przetwarzanie równoległe poszczególnych stron.
    • Wyodrębnianie pól na poziomie strony w dokumentach wielostronicowych.
    • Mieszane partie dokumentów, na których każda strona jest innym typem dokumentu.
  • Obsługiwane przez: Analizatorami opartymi na dokumentach.
omitContent
  • Ustawienie domyślne: false
  • Opis: Gdy trueelement wyklucza oryginalny obiekt zawartości z odpowiedzi. Odpowiedź obejmuje tylko uporządkowane dane pól lub obiekty zawartości z podanalityków podczas korzystania z contentCategories.
  • Kiedy należy użyć:
    • Gdy potrzebujesz tylko wyodrębnionych wartości pól.
    • Analizatory skomponowane z contentCategories zwracają tylko sklasyfikowane wyniki.
    • W przypadku łańcuchów klasyfikacji hierarchicznej zwróć tylko wyniki analizatora liści.
  • Przykład — analiza selektywna:
    {
      "config": {
        "enableSegment": true,
        "contentCategories": {
          "invoice": { "analyzerId": "prebuilt-invoice" },
          "other": { }  // Categorize but don't process
        },
        "omitContent": true  // Only return invoice analysis results
      }
    }
    
  • Obsługiwane przez: Analizatory dokumentów.

Konfiguracja pola

Właściwość fieldSchema definiuje dane ustrukturyzowane wyodrębnione przez analizator z zawartości. Określa pola, ich typy i sposób ich wyodrębniania.

Intencja projektu: strukturalne wyodrębnianie

Schematy pól przekształcają zawartość nieustrukturyzowaną na dane ustrukturyzowane, z możliwością wykonywania zapytań. Schemat działa jako oba te elementy:

  • Kontrakt definiujący, jakie dane są wyodrębnione
  • Przewodnik dotyczący modelu sztucznej inteligencji dotyczący tego, czego szukać i jak go interpretować

Struktura schematu pola

{
  "fieldSchema": {
    "name": "InvoiceAnalysis",
    "fields": {
      "VendorName": {
        "type": "string",
        "description": "Name of the vendor or supplier",
        "method": "extract"
      },
      "InvoiceTotal": {
        "type": "number",
        "description": "Total amount due on the invoice",
        "method": "extract"
      },
      "LineItems": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "Description": { "type": "string" },
            "Quantity": { "type": "number" },
            "UnitPrice": { "type": "number" },
            "Amount": { "type": "number" }
          }
        },
        "description": "List of items on the invoice, typically in a table format",
        "method": "generate"
      }
    }
  }
}

Właściwości schematu pola

name

  • Opis: Nazwa schematu, zazwyczaj opisująca typ zawartości lub przypadek użycia
  • Przykład:"InvoiceAnalysis", "ReceiptExtraction", "ContractFields"

fields

  • Opis: Obiekt definiujący każde pole do wyodrębnienia z nazwami pól jako kluczami. Pusty obiekt {} wskazuje, że nie wyodrębniono pól strukturalnych (na przykład analizatorów skupionych wyłącznie na układzie).
  • Obsługa hierarchiczna: Obsługuje zagnieżdżone pola za pomocą typów object i array do reprezentowania złożonych struktur danych
  • Najlepsze rozwiązanie: Unikaj głębokiego zagnieżdżania (więcej niż dwa lub trzy poziomy), ponieważ może zmniejszyć wydajność i dokładność wyodrębniania

Właściwości definicji pola

Każde pole w fields obiekcie ma następujące właściwości:

type

  • Obsługiwane wartości:"string", "number", "boolean", "date", , "object""array"
  • Opis: Typ danych wartości pola. Wybierz typ, który najlepiej pasuje do semantyki danych w celu optymalnego wyodrębniania.
  • Automatyczna normalizacja: W przypadku obsługiwanych pól wpisanych usługa Content Understanding automatycznie normalizuje zwracaną wartość do formatu kanonicznego (na przykład spójnego formatu daty).

description

  • Opis: Jasne wyjaśnienie, co zawiera pole i gdzie go znaleźć. Model sztucznej inteligencji przetwarza ten opis jako mini-podpowiedź, aby poprowadzić ekstrakcję pól, co sprawia, że precyzja i jasność bezpośrednio zwiększają dokładność ekstrakcji.

Aby uzyskać informacje na temat pisania skutecznych opisów pól, zobacz Najlepsze rozwiązania dotyczące wyodrębniania pól.

method

  • Obsługiwane wartości:"generate", "extract", "classify"
  • Opis: Metoda wyodrębniania do użycia dla tego pola. Jeśli nie określisz metody, system automatycznie określa najlepszą metodę na podstawie typu i opisu pola.
  • Typy metod:
    • "generate" — Wartości są generowane swobodnie na podstawie zawartości przy użyciu modeli sztucznej inteligencji (najlepiej w przypadku pól złożonych lub zmiennych wymagających interpretacji)
    • "extract" - Wartości są wyodrębniane tak jak pojawiają się w treści (najlepiej do dosłownego wyodrębniania tekstu z określonych lokalizacji). Wyodrębnianie wymaga estimateSourceAndConfidence ustawienia true dla tego pola.
    • "classify" - Wartości są klasyfikowane względem wstępnie zdefiniowanego zestawu kategorii (najlepiej w przypadku używania enum z stałym zestawem możliwych wartości)
estimateSourceAndConfidence
  • Ustawienie domyślne: false
  • Opis: Zwraca lokalizację źródłową (numer strony, pole ograniczenia) i współczynnik ufności dla tej wartości pola. Pola z method = extract muszą mieć wartość true. Ta właściwość zastępuje właściwość poziomu estimateFieldSourceAndConfidence analizatora.
  • Kiedy należy użyć:
    • Dla procesów weryfikacji i zapewniania jakości.
    • Aby zrozumieć dokładność procesu wyodrębniania.
    • Do debugowania problemów z wyodrębnianiem.
    • Wyróżnianie tekstu źródłowego w interfejsach użytkownika.
  • Obsługiwane przez: Analizatory dokumentów dla wszystkich typów pól dokumentów (extract, classify, i generate metod).

items (dla typów tablic)

  • Opis: Definiuje strukturę elementów w tablicy
  • Właściwości:
    • type - Typ elementów tablicy ("string", "number", "object")
    • properties — W przypadku elementów obiektów definiuje zagnieżdżoną strukturę pola

properties (dla typów obiektów)

  • Opis: Definiuje strukturę zagnieżdżonych pól w obiekcie
  • Przykład:
    {
      "Address": {
        "type": "object",
        "properties": {
          "Street": { "type": "string" },
          "City": { "type": "string" },
          "State": { "type": "string" },
          "ZipCode": { "type": "string" }
        },
        "description": "Complete mailing address"
      }
    }
    

Kompletny przykład analizatora

Oto kompleksowy przykład konfiguracji niestandardowego analizatora faktur, który demonstruje kluczowe pojęcia omówione w tej dokumentacji:

{
  "analyzerId": "myCustomInvoiceAnalyzer",
  "name": "Custom Invoice Analyzer",
  "description": "Extracts vendor information, line items, and totals from commercial invoices",
  "baseAnalyzerId": "prebuilt-document",
  "config": {
    "returnDetails": true,
    "enableOcr": true,
    "enableLayout": true,
    "tableFormat": "html",
    "estimateFieldSourceAndConfidence": true,
    "omitContent": false
  },
  "fieldSchema": {
    "name": "InvoiceFields",
    "fields": {
      "VendorName": {
        "type": "string",
        "description": "Name of the vendor or supplier, typically found in the header section",
        "method": "extract"
      },
      "VendorAddress": {
        "type": "object",
        "properties": {
          "Street": { "type": "string" },
          "City": { "type": "string" },
          "State": { "type": "string" },
          "ZipCode": { "type": "string" }
        },
        "description": "Complete vendor mailing address"
      },
      "InvoiceNumber": {
        "type": "string",
        "description": "Unique invoice number, often labeled as 'Invoice #' or 'Invoice No.'",
        "method": "extract"
      },
      "InvoiceDate": {
        "type": "date",
        "description": "Date the invoice was issued, in format MM/DD/YYYY",
        "method": "extract"
      },
      "DueDate": {
        "type": "date",
        "description": "Payment due date",
        "method": "extract"
      },
      "LineItems": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "Description": {
              "type": "string",
              "description": "Item or service description"
            },
            "Quantity": {
              "type": "number",
              "description": "Quantity ordered"
            },
            "UnitPrice": {
              "type": "number",
              "description": "Price per unit"
            },
            "Amount": {
              "type": "number",
              "description": "Line total (Quantity × UnitPrice)"
            }
          }
        },
        "description": "List of items or services on the invoice, typically in a table format",
        "method": "generate"
      },
      "Subtotal": {
        "type": "number",
        "description": "Sum of all line items before tax",
        "method": "extract"
      },
      "Tax": {
        "type": "number",
        "description": "Tax amount"
      },
      "Total": {
        "type": "number",
        "description": "Total amount due (Subtotal + Tax)"
      },
      "PaymentTerms": {
        "type": "string",
        "description": "Payment terms and conditions (for example, 'Net 30', 'Due upon receipt')",
        "method": "generate"
      }
    }
  },
  "supportedModels": {
    "completion": ["gpt-5.2"],
    "embedding": ["text-embedding-3-large", "text-embedding-3-small"]
  },
  "models": {
    "completion": "gpt-5.2",
    "embedding": "text-embedding-3-large"
  }
}

Tworzenie analizatora niestandardowego

Aby utworzyć analizator niestandardowy na podstawie struktury konfiguracji opisanej w tym dokumencie, użyj interfejsu API REST usługi Content Understanding, aby przesłać definicję analizatora.

Punkt końcowy interfejsu API

Użyj następującego polecenia curl, aby utworzyć analizator niestandardowy, przesyłając konfigurację analizatora z pliku JSON:

curl -X PUT "https://{endpoint}/contentunderstanding/analyzers/{analyzerId}?api-version=2025-11-01" \
  -H "Content-Type: application/json" \
  -H "Ocp-Apim-Subscription-Key: {key}" \
  -d @analyzer-definition.json

Zastąp następujące symbole zastępcze:

  • {endpoint} — Punkt końcowy zasobu usługi Content Understanding
  • {analyzerId} - Unikatowy identyfikator analizatora
  • {key} — Klucz subskrypcji usługi Content Understanding
  • analyzer-definition.json - Ścieżka do pliku konfiguracji analizatora

Treść żądania

Plik konfiguracji analizatora powinien być obiektem JSON zawierającym właściwości opisane w tym odwołaniu. Pełny przykład można znaleźć w samouczku Tworzenie analizatora niestandardowego.

Odpowiedzi

Interfejs API zwraca 201 Created odpowiedź z nagłówkiem Operation-Location, którego można użyć do śledzenia statusu operacji tworzenia analizatora.

Następne kroki

Aby zapoznać się z kompletnym przewodnikiem z przykładami dla różnych typów zawartości (dokumentów, obrazów, audio, wideo), zobacz Tworzenie analizatora niestandardowego.

Konfiguracja według typu zawartości

Różne typy zawartości obsługują różne opcje konfiguracji. Oto szybki odnośnik:

Analizatory dokumentów

Analizator podstawowy:prebuilt-document

Obsługiwane opcje konfiguracji:

  • ✅ returnDetails
  • ✅ omitContent
  • ✅ enableOcr
  • ✅ enableLayout
  • ✅ enableFormula
  • ✅ enableBarcode
  • ✅ tableFormat
  • ✅ chartFormat
  • ✅ enableFigureDescription
  • ✅ enableFigureAnalysis
  • ✅ enableAnnotations
  • ✅ annotationFormat
  • ✅ enableSegment
  • ✅ segmentPerPage
  • ✅ estimateFieldSourceAndConfidence (analizatory strukturalne)
  • ✅ contentCategories (analizatory z wieloma wariantami)

Analizatory audio

Analizator podstawowy:prebuilt-audio

Obsługiwane opcje konfiguracji:

  • ✅ returnDetails
  • ✅ locales

Analizatory wideo

Analizator podstawowy:prebuilt-video

Obsługiwane opcje konfiguracji:

  • ✅ returnDetails
  • ✅ locales
  • ✅ contentCategories
  • ✅ enableSegment
  • ✅ omitContent

Analizatory obrazów

Analizator podstawowy:prebuilt-image

Obsługiwane opcje konfiguracji:

  • ✅ returnDetails

Wyniki filtru zawartości w odpowiedzi analizy

Gdy wdrożenie modelu Foundry przetwarza zawartość, skojarzone wystąpienie Guardrails ocenia zarówno wiadomość wejściową, jak i wynik modelu pod kątem potencjalnie szkodliwej zawartości. Jeśli jakakolwiek kategoria jest oznaczona lub zablokowana, Content Understanding zawiera tablicę content_filters w odpowiedzi na analizę.

Każdy obiekt w tablicy content_filters ma następującą strukturę:

Właściwość Typ Opis
blocked Boolean true jeśli zawartość została zablokowana przez wystąpienie Guardrails; false jeśli została oznaczona, ale i dozwolona.
source_type ciąg Czy flaga pochodzi z danych wejściowych modelu ("prompt") lub danych wyjściowych modelu ("completion").
content_filter_raw macierz Surowe dane wyjściowe filtru z wystąpienia Guardrails. Może być pusty.
content_filter_results obiekt Klasyfikacje ważności dla poszczególnych kategorii. Każda kategoria zawiera filtered (wartość logiczną) i severity ("safe", "low", "medium"lub "high").

Następujące kategorie mogą pojawić się w content_filter_results:

Kategoria Opis
hate Zawartość, która atakuje lub używa języka pejoracyjnego na podstawie chronionej charakterystyki.
sexual Jawne lub niejawne treści seksualne.
violence Zawartość, która przedstawia lub gloryfikuje brutalne akty.
self_harm Zawartość, która promuje lub opisuje zachowania autodestrukcyjne.

Przykładowe content_filters wyjście

W poniższym przykładzie pokazano wpis, content_filters w którym ukończenie zostało zablokowane z powodu zawartości seksualnej o wysokiej ważności:

"content_filters": [
  {
    "blocked": true,
    "source_type": "completion",
    "content_filter_raw": [],
    "content_filter_results": {
      "hate": {
        "filtered": false,
        "severity": "safe"
      },
      "sexual": {
        "filtered": true,
        "severity": "high"
      },
      "violence": {
        "filtered": false,
        "severity": "safe"
      }
    }
  }
]

Gdy blocked jest ustawiona na true, operacja analizowania zwraca informację o błędzie i nie zawiera żadnych wyników wyodrębniania pól. Gdy blocked ma wartość false, ale kategorie pojawiają się z niezerową dotkliwością, zawartość jest adnotowana i przekazywana dalej — możesz sprawdzić element content_filter_results, aby zdecydować, jak obsłużyć dane wyjściowe we własnym przepływie pracy.

Zmiana zachowania filtru zawartości

Progi filtrowania treści i blokowanie/adnotowanie zachowania są konfigurowane na instancji Guardrails powiązanej z wdrożeniem modelu Foundry. Aby zmienić zachowanie:

  1. W projekcie Azure AI Foundry przejdź do wdrożenia modelu używanego przez analizatora.
  2. Wybierz skomponowaną konfigurację Guardrails.
  3. Dostosuj progi lub przełącz kategorie z Blokuj na Adnotacje zgodnie z potrzebami.

Jeśli chcesz zmniejszyć lub wyłączyć kategorię filtru w sposób, który nie jest domyślnie dozwolony, możesz zwrócić się o zmodyfikowane filtry treści. Aby uzyskać więcej informacji, zobacz Filtrowanie zawartości i Zabezpieczenia.