Udostępnij przez


Co to jest analizator analizy zawartości?

Analizator w usłudze Azure Content Understanding w narzędziach Foundry Tools to konfigurowalna jednostka przetwarzania, która definiuje sposób analizowania zawartości i wyodrębniania informacji. Analizator można sobie wyobrazić jako przepis, który instruuje usługę:

  • 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 należy użyć do przetwarzania

Analizatory to podstawowe bloki konstrukcyjne usługi Content Understanding. Łączą wyodrębnianie zawartości, analizę opartą na sztucznej inteligencji i strukturyzowane 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.

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). Te analizatory są zwykle używane jako bloki konstrukcyjne dla analizatorów niestandardowych.
  • Analizatory RAG: zoptymalizowane pod kątem scenariuszy generowania wspomaganego pobieraniem, wyodrębnianie treści z uwzględnieniem semantyki dla aplikacji wyszukiwania i sztucznej inteligencji (np. prebuilt-documentSearch, 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 (np. prebuilt-invoice, prebuilt-receipt, 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.

Struktura konfiguracji analizatora

Konfiguracja analizatora jest definiowana przy użyciu obiektu JSON, który zawiera kilka właściwości najwyższego poziomu. Można skonfigurować następujące składniki:

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

{
  "analyzerId": "my-custom-invoice-analyzer",
  "description": "Extracts vendor information, line items, and totals from commercial invoices",
  "baseAnalyzerId": "prebuilt-document",
  "config": {
    ...
    "enableOcr": true
    ...
  },
  "fieldSchema": {...}
    }
  },
  "models": {
    "completion": "gpt-4.1",
    "embedding": "text-embedding-3-large"
  }
}

Właściwości analizatora

Te właściwości jednoznacznie identyfikują i opisują analizator:

analyzerId

  • Opis: Unikatowy identyfikator analizatora. Ten identyfikator służy do odwoływania się do analizatora w wywołaniach interfejsu API.
  • Przykład:"prebuilt-invoice", "my-custom-analyzer"
  • Wytyczne:
    • Użyj nazw opisowych wskazujących przeznaczenie analizatora
    • W przypadku analizatorów niestandardowych wybierz nazwy, które nie powodują konfliktu ze wstępnie utworzonymi nazwami analizatorów
    • Używanie małych liter z łącznikami w celu zapewnienia spójności

name

  • Opis: Czytelna dla użytkownika 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. Ten opis jest używany jako kontekst modelu sztucznej inteligencji 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:
    • Określ, co analizator wyodrębnia
    • Wzmianka o typach zawartości, które obsługuje
    • Zachowaj zwięzłość, ale informacyjną
    • Pisz jasne opisy, ponieważ one kierują zrozumieniem 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 niestandardowych analizatorów opartych na dokumentach
    • "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 / Notatka

Po określeniu analizatora podstawowego analizator niestandardowy dziedziczy wszystkie konfiguracje domyślne 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 z elementów supportedModels z analizatora podstawowego. 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 dla zadań ukończenia (wyodrębnianie pól, segmentacja, analiza rysunku itp.)
    • embedding — Nazwa modelu do osadzania zadań (przy użyciu bazy wiedzy)
  • Ważne: Są to nazwy modeli z katalogu Foundry, a nie nazwy wdrożeń. Podczas działania usługa przypisuje te nazwy modeli do rzeczywistych wdrożeń modeli, które konfigurowane są na poziomie zasobu.
  • Example:
    {
      "completion": "gpt-4o",
      "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

returnDetails
  • Ustawienie domyślne: false (różni się w zależności od analizatora)
  • Opis: Określa, czy należy uwzględnić szczegółowe informacje w odpowiedzi (współczynniki ufności, pola ograniczenia, zakresy tekstu, metadane)
  • Kiedy należy używać:
    • 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 w celu wyodrębnienia tekstu z obrazów i zeskanowanych dokumentów
  • Kiedy należy używać:
    • Włącz dla zeskanowanych dokumentów, zdjęć i plików PDF opartych na obrazach
    • Wyłącz dla natywnych cyfrowych plików PDF w celu zwiększenia wydajności
  • 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żywać:
    • Wymagane do zrozumienia struktury i hierarchii dokumentów
    • Wymagane do dokładnego wyodrębniania akapitu i sekcji
    • Wyłącz, jeśli potrzebne jest tylko wyodrębnianie tekstu nieprzetworzonego
  • Obsługiwane przez: Analizatory oparte 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żywać:
    • Włącz dla dokumentów naukowych, dokumentów badawczych, dokumentacji technicznej
    • Wyłącz w przypadku ogólnych dokumentów biznesowych, aby zwiększyć wydajność
  • Obsługiwane przez: Analizatory oparte 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żywać:
    • Włącz dla dokumentów inwentaryzacyjnych, etykiet wysyłkowych, dokumentacji produktu
    • Wyłącz, gdy kody kreskowe nie są obecne, aby zwiększyć wydajność
  • Obsługiwane przez: Analizatory dokumentowe
  • 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żywać:
    • Używanie "html" do renderowania w Internecie lub gdy złożone struktury tabel wymagają zachowania
    • Używaj "markdown" do prostych tabel w dokumentacji lub przetwarzaniu opartym na tekście
  • Obsługiwane przez: Analizatory oparte na dokumentach
chartFormat
  • Domyślny:"chartjs"
  • Obsługiwane wartości:"chartjs"
  • Opis: Określa format wyodrębnionych danych wykresu i grafu (zgodny z biblioteką Chart.js)
  • Kiedy należy używać:
    • Podczas wyodrębniania danych z wykresów słupkowych, wykresów liniowych, wykresów kołowych
    • Konwertowanie wykresów wizualnych na dane ustrukturyzowane na potrzeby ponownego renderowania
  • Obsługiwane przez: Analizatory bazujące 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żywać:
    • Wymagania dotyczące ułatwień dostępu (generowanie tekstu alternatywnego)
    • Zrozumienie diagramów i schematów blokowych
    • Wyodrębnianie szczegółowych informacji z infografiki
  • Obsługiwane przez: Analizatory oparte 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żywać:
    • Wyodrębnianie danych strukturalnych z wykresów osadzonych w dokumentach
    • Opis złożonych diagramów
    • Szczegółowa klasyfikacja liczb
  • Obsługiwane przez: Analizatory oparte na dokumentach

Opcje adnotacji

annotationFormat
  • Domyślny:"markdown"
  • Obsługiwane wartości:"markdown"
  • Opis: Określa format zwracanych adnotacji
  • Obsługiwane przez: Analizatory bazujące 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żywać:
    • Przepływy pracy weryfikacji i zapewniania jakości
    • Zrozumienie dokładności ekstrakcji
    • Debugowanie problemów związanych z wyodrębnianiem
    • Wyróżnianie tekstu źródłowego w interfejsach użytkownika
  • Obsługiwane przez: Analizatory dokumentów (faktura, paragon, dokumenty identyfikatorów, formularze podatkowe)

Opcje audio i wideo

locales
  • Domyślny:[] (pusta tablica)
  • Opis: Lista kodów ustawień regionalnych/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żywać:
    • Transkrypcja audio w wielu językach
    • Określanie oczekiwanego języka w celu uzyskania lepszej dokładności
    • Przetwarzanie zawartości w określonych wariantach regionalnych
  • Obsługiwane przez:prebuilt-audio, prebuilt-video, prebuilt-callCenter

Uwaga / Notatka

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

disableFaceBlurring
  • Ustawienie domyślne: false
  • Opis: Określa, czy twarze na obrazach i wideo powinny być zamazane w celu ochrony prywatności
  • Kiedy należy używać:
    • Ustaw na true, gdy wymagana jest widoczność twarzy do analizy
    • Ustaw false, gdy jest pożądane zanonimizowanie osób w udostępnionej treści.
  • Obsługiwane przez:prebuilt-imageprebuilt-video

Ważne

Funkcja funkcji rozpoznawania twarzy w usłudze Content Understanding jest usługą Ograniczonego dostępu i rejestracja jest wymagana do uzyskania dostępu. Funkcja grupowania twarzy i identyfikacji w usłudze Content Understanding jest ograniczona na podstawie kryteriów uprawnień i użycia. Usługa rozpoznawania twarzy jest dostępna tylko dla klientów i partnerów zarządzanych przez firmę Microsoft. Użyj formularza zgłoszeniowego do rozpoznawania twarzy, aby ubiegać się o dostęp. Aby uzyskać więcej informacji, zobacz Odpowiedzialne inwestycje w sztuczną inteligencję i zabezpieczenia dotyczące rozpoznawania twarzy.

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. Kiedy używane z enableSegment set to false jest obecnie obsługiwane tylko dla dokumentów. Klasyfikuje cały plik. W przypadku użycia z enableSegment=true, plik jest podzielony na fragmenty na podstawie tych kategorii, przy czym każdy segment jest sklasyfikowany i opcjonalnie przetworzony przez analizator specyficzny dla kategorii. Zawsze wybiera jedną opcję z listy dostępnych kategorii.
  • Struktura: Każda kategoria zawiera:
    • description - (Wymagane) Szczegółowy opis kategorii/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 do wykorzystania w tej kategorii. Przywoływane analizatory są połączone, a nie kopiowane, zapewniając spójne zachowanie. W przypadku pominięcia tylko kategoryzacja jest wykonywana bez większego przetwarzania (scenariusz tylko z podziałem).
  • 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 podanalyzer 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 treści, a także dodatkowe obiekty treści dla segmentów ze wskazanym 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 bezpiecznie obsługiwać niedopasowaną zawartość.
  • Obsługiwane przez: Analizatory dokumentów i wideo. W przypadku wideo można zdefiniować tylko jedną kategorię treści.
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)
    • Filmy: Opisy kategorii połączone z wizualnymi wskazówkami (zmiany ujęć, przejścia między scenami, granice czasowe). Obsługiwana jest tylko jedna contentCategory.
  • Kiedy należy używać:
    • 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 fragmenty podzielone na kategorie na potrzeby analizy selektywnej
    • Analizowanie filmów wideo według typu zawartości (na przykład oddzielenie 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 zawiera również enableSegment: true, segmenty mogą być dzielone rekursywnie, co umożliwia wielopoziomowy podział zawartości.
  • 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. Zastępuje konieczność oddzielnych trybów podziału "perPage".
  • Kiedy należy używać:
    • Przepływy pracy przetwarzania stron strona po stronie
    • Każda strona powinna być traktowana jako niezależna jednostka
    • Równoległe przetwarzanie 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: Analizatory oparte na dokumentach
omitContent
  • Ustawienie domyślne: false
  • Opis: Gdy true, oryginalny obiekt zawartości jest wykluczany z odpowiedzi, a zwracane są jedynie dane pól strukturalnych lub obiekty zawartości z podanalizatorów (przy użyciu contentCategories)
  • Kiedy należy używać:
    • Gdy potrzebne są tylko wyodrębnione wartości pól
    • W skomponowanych analizatorach używanych z contentCategories zwracane są tylko sklasyfikowane wyniki.
    • W przypadku łańcuchów klasyfikacji hierarchicznej zwracaj 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.

Zamiarem 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": "generative"
      }
    }
  }
}

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 w analizatorach układu).
  • 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 (ponad 2–3 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.

description

  • Opis: Jasne wyjaśnienie, co zawiera pole i gdzie go znaleźć. Ten opis jest przetwarzany przez model sztucznej inteligencji jako mini-polecenie, aby poprowadzić wyodrębnianie pól, więc specyfika i jasność muszą bezpośrednio poprawić dokładność wyodrębniania.

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 zostanie określony, system automatycznie określa najlepszą metodę na podstawie typu pola i opisu.
  • 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 w przypadku wyodrębniania dosłownego tekstu z określonych lokalizacji). Aby wyodrębnianie działało, pole musi mieć ustawioną wartość enableSourceGroundingAndConfidence na true.
    • "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. Wartość dla pól z method = extract musi być równa true. Ta właściwość zastąpi właściwość level estimateFieldSourceAndConfidence analizatora.
  • Kiedy należy używać:
    • Przepływy pracy weryfikacji i zapewniania jakości
    • Zrozumienie dokładności ekstrakcji
    • Debugowanie problemów związanych z wyodrębnianiem
    • Wyróżnianie tekstu źródłowego w interfejsach użytkownika
  • Obsługiwane przez: Analizatory dokumentów (faktura, paragon, dokumenty identyfikatorów, formularze podatkowe)

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 typu obiekt definiuje zagnieżdżoną strukturę pól

properties (dla typów obiektów)

  • Opis: Definiuje strukturę zagnieżdżonych pól w obiekcie
  • Example:
    {
      "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": "my-custom-invoice-analyzer",
  "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": "generative"
      },
      "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 (e.g., 'Net 30', 'Due upon receipt')",
        "method": "generative"
      }
    }
  },
  "supportedModels": {
    "completion": ["gpt-4o", "gpt-4o-mini", "gpt-4.1"],
    "embedding": ["text-embedding-3-large", "text-embedding-3-small"]
  },
  "models": {
    "completion": "gpt-4.1",
    "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-preview" \
  -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

Ciało żą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.

Odpowiedź

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

Dalsze 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 szybkie odniesienie:

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
  • disableFaceBlurring

Analizatory obrazów

Analizator podstawowy:prebuilt-image

Obsługiwane opcje konfiguracji:

  • returnDetails
  • disableFaceBlurring