Udostępnij za pośrednictwem


Szybki start: korzystanie z interfejsu API REST usługi Azure AI Content Understanding

Wymagania wstępne

Aby rozpocząć pracę, potrzebujesz aktywnej subskrypcji platformy Azure. Jeśli nie masz konta platformy Azure, utwórz je bezpłatnie.

  • Po utworzeniu subskrypcji platformy Azure utwórz zasób usługi Azure AI Foundry w witrynie Azure Portal.

    • Ten zasób znajduje się w obszarze AI Foundry> w portalu.

      Zrzut ekranu przedstawiający stronę zasobu AI Foundry w witrynie Azure Portal.

W tym przewodniku użyjemy narzędzia wiersza polecenia cURL. Jeśli nie jest zainstalowany, możesz pobrać odpowiednią wersję dla środowiska deweloperskiego.

Rozpocznij korzystanie z wstępnie utworzonego analizatora

Analizatory definiują sposób przetwarzania zawartości oraz wyodrębniane szczegółowe informacje. Oferujemy wstępnie przygotowane analizatory dla typowych przypadków użycia. Możesz dostosować wstępnie utworzone analizatory , aby lepiej dopasować je do konkretnych potrzeb i przypadków użycia. W tym przewodniku Szybki start użyto wstępnie utworzonego dokumentu, obrazu, dźwięku i analizatorów wideo, aby ułatwić rozpoczęcie pracy.

Wysyłanie pliku do analizy

Przed uruchomieniem następującego polecenia cURL wprowadź następujące zmiany w żądaniu HTTP:

  1. Zastąp {endpoint} i {key} odpowiednimi wartościami z wystąpienia usługi Azure AI Foundry w portalu Azure.
  2. Zamień {analyzerId} na prebuilt-documentAnalyzer. Ten analizator wyodrębnia tekst i elementy układu, takie jak akapity, sekcje i tabele z dokumentu.
  3. Zastąp {fileUrl} element publicznie dostępnym adresem URL pliku do analizy — na przykład ścieżką do obiektu blob usługi Azure Storage przy użyciu sygnatury dostępu współdzielonego (SAS) lub użyj przykładowego adresu URL: https://github.com/Azure-Samples/azure-ai-content-understanding-python/raw/refs/heads/main/data/invoice.pdf.

Żądanie POST

curl -i -X POST "{endpoint}/contentunderstanding/analyzers/{analyzerId}:analyze?api-version=2025-05-01-preview" \
  -H "Ocp-Apim-Subscription-Key: {key}" \
  -H "Content-Type: application/json" \
  -d "{\"url\":\"{fileUrl}\"}"

Odpowiedź POST

Odpowiedź zawiera treść JSON zawierającą element resultId, który służy do pobrania wyników operacji analizy asynchronicznej. Operation-Location Ponadto nagłówek udostępnia bezpośredni adres URL umożliwiający uzyskanie dostępu do wyniku analizy.

202 Accepted
Operation-Location: {endpoint}/contentunderstanding/analyzerResults/{resultId}?api-version=2024-12-01-preview
{
  "id": {resultId},
  "status": "Running",
  "result": {
    "analyzerId": {analyzerId},
    "apiVersion": "2025-05-01-preview",
    "createdAt": "YYYY-MM-DDTHH:MM:SSZ",
    "warnings": [],
    "contents": []
  }
}

Uzyskiwanie wyniku analizy

Użyj resultId z POST odpowiedzi i pobierz wynik analizy.

  1. Zastąp wartości punktów końcowych {endpoint} i kluczami {key} z wystąpienia usługi Azure AI Foundry w witrynie Azure Portal.
  2. Zastąp {analyzerResultId} za pomocą id z odpowiedzi POST lub użyj całego adresu URL z nagłówka odpowiedzi Operation-Location.

Żądanie GET

curl -i -X GET "GET {endpoint}/contentunderstanding/analyzerResults/{analyzerResultId}?api-version=2025-05-01-preview" \
  -H "Ocp-Apim-Subscription-Key: {key}"

Odpowiedź GET

Odpowiedź JSON 200 (OK) zawiera status pole wskazujące stan operacji. Jeśli operacja nie została ukończona, wartość to statusRunning lub NotStarted. W takich przypadkach należy ponownie wysłać GET żądanie ręcznie lub za pomocą skryptu. Poczekaj interwał co najmniej jednej sekundy między wywołaniami.

{
  "id": {resultId},
  "status": "Succeeded",
  "result": {
    "analyzerId": "prebuilt-documentAnalyzer",
    "apiVersion": "2025-05-01-preview",
    "createdAt": "YYYY-MM-DDTHH:MM:SSZ",
    "warnings": [],
    "contents": [
      {
        "markdown": "CONTOSO LTD.\n\n\n# INVOICE\n\nContoso Headquarters\n123 456th St...",
        "fields": {
          "Summary": {
            "type": "string",
            "valueString": "This document is an invoice issued by Contoso Ltd. to Microsoft Corporation for services rendered during the period of 10/14/2019 to 11/14/2019..."
          }
        },
        "kind": "document",
        "startPageNumber": 1,
        "endPageNumber": 1,
        "unit": "inch",
        "pages": [
          {
            "pageNumber": 1,
            "angle": -0.0039,
            "width": 8.5,
            "height": 11,
            "spans": [ { "offset": 0, "length": 1650 } ],
            "words": [
              {
                "content": "CONTOSO",
                "span": { "offset": 0, "length": 7 },
                "confidence": 0.998,
                "source": "D(1,0.5739,0.6582,1.7446,0.6595,1.7434,0.8952,0.5729,0.8915)"
              }, ...
            ],
            "lines": [
              {
                "content": "CONTOSO LTD.",
                "source": "D(1,0.5734,0.6563,2.335,0.6601,2.3345,0.8933,0.5729,0.8895)",
                "span": { "offset": 0, "length": 12 }
              }, ...
            ]
          }
        ],
        "paragraphs": [
          {
            "content": "CONTOSO LTD.",
            "source": "D(1,0.5734,0.6563,2.335,0.6601,2.3345,0.8933,0.5729,0.8895)",
            "span": { "offset": 0, "length": 12 }
          },
          {
            "role": "title",
            "content": "INVOICE",
            "source": "D(1,7.0515,0.5614,8.0064,0.5628,8.006,0.791,7.0512,0.7897)",
            "span": { "offset": 15, "length": 9 }
          }, ...
        ],
        "sections": [
          {
            "span": { "offset": 0, "length": 1649 },
            "elements": [ "/sections/1", "/sections/2" ]
          }, ...
        ],
        "tables": [
          {
            "rowCount": 2,
            "columnCount": 6,
            "cells": [
              {
                "kind": "columnHeader",
                "rowIndex": 0,
                "columnIndex": 0,
                "rowSpan": 1,
                "columnSpan": 1,
                "content": "SALESPERSON",
                "source": "D(1,0.5389,4.5514,1.7505,4.5514,1.7505,4.8364,0.5389,4.8364)",
                "span": { "offset": 512, "length": 11 },
                "elements": [ "/paragraphs/19" ]
              }, ...
            ],
            "source": "D(1,0.4885,4.5543,8.0163,4.5539,8.015,5.1207,0.4879,5.1209)",
            "span": { "offset": 495, "length": 228 }
          }, ...
        ]
      }
    ]
  }
}

Następne kroki

Dowiedz się więcej o tworzeniu analizatorów niestandardowych dla twojego przypadku użycia.