Azure Formigenkänning-klientbibliotek för Python – version 3.3.2

Azure Document Intelligence (tidigare kallat Formigenkänning) är en molntjänst som använder maskininlärning för att analysera text och strukturerade data från dina dokument. Den innehåller följande huvudfunktioner:

  • Layout – Extrahera innehåll och struktur (t.ex. ord, markeringar, tabeller) från dokument.
  • Dokument – Analysera nyckel/värde-par utöver allmän layout från dokument.
  • Läs – Läs sidinformation från dokument.
  • Fördefinierad – Extrahera vanliga fältvärden från utvalda dokumenttyper (t.ex. kvitton, fakturor, visitkort, ID-dokument, amerikanska W-2-skattedokument, bland annat) med hjälp av fördefinierade modeller.
  • Anpassad – Skapa anpassade modeller från dina egna data för att extrahera anpassade fältvärden utöver allmän layout från dokument.
  • Klassificerare – Skapa anpassade klassificeringsmodeller som kombinerar layout- och språkfunktioner för att korrekt identifiera och identifiera dokument som du bearbetar i ditt program.
  • Tilläggsfunktioner – Extrahera streckkoder/QR-koder, formler, teckensnitt/format osv. eller aktivera högupplösningsläge för stora dokument med valfria parametrar.

Källkod | Paket (PyPI) | Paket (Conda) | API-referensdokumentation | Produktdokumentation | Prover

Komma igång

Förutsättningar

Installera paketet

Installera Azure Formigenkänning-klientbiblioteket för Python med pip:

pip install azure-ai-formrecognizer

Obs! Den här versionen av klientbiblioteket är standard för 2023-07-31 tjänstens version.

Den här tabellen visar relationen mellan SDK-versioner och API-versioner som stöds av tjänsten:

SDK-version API-version av tjänsten som stöds
3.3.X – senaste ga-versionen 2.0, 2.1, 2022-08-31, 2023-07-31 (standard)
3.2.X 2.0, 2.1, 2022-08-31 (standard)
3.1.X 2.0, 2.1 (standard)
3.0.0 2.0

Obs! Från och med version 3.2.Xintroducerades en ny uppsättning klienter för att utnyttja de senaste funktionerna i dokumentunderrättelsetjänsten. Se migreringsguiden för detaljerade instruktioner om hur du uppdaterar programkod från klientbibliotekets version 3.1.X eller lägre till den senaste versionen. Mer detaljerad information finns i Ändringsloggen . I tabellen nedan beskrivs relationen mellan varje klient och dess API-versioner som stöds:

API-version Klienter som stöds
2023-07-31 DocumentAnalysisClient och DocumentModelAdministrationClient
2022-08-31 DocumentAnalysisClient och DocumentModelAdministrationClient
2.1 FormRecognizerClient och FormTrainingClient
2.0 FormRecognizerClient och FormTrainingClient

Skapa en Cognitive Services- eller Formigenkänning resurs

Dokumentinformation stöder både åtkomst med flera tjänster och en enda tjänst. Skapa en Cognitive Services-resurs om du planerar att komma åt flera kognitiva tjänster under en enda slutpunkt/nyckel. För endast åtkomst till dokumentinformation skapar du en Formigenkänning resurs. Observera att du behöver en resurs med en enda tjänst om du tänker använda Azure Active Directory-autentisering.

Du kan skapa någon av resurserna med hjälp av:

Nedan visas ett exempel på hur du kan skapa en Formigenkänning resurs med hjälp av CLI:

# Create a new resource group to hold the Form Recognizer resource
# if using an existing resource group, skip this step
az group create --name <your-resource-name> --location <location>
# Create form recognizer
az cognitiveservices account create \
    --name <your-resource-name> \
    --resource-group <your-resource-group-name> \
    --kind FormRecognizer \
    --sku <sku> \
    --location <location> \
    --yes

Mer information om hur du skapar resursen eller hur du hämtar plats- och sku-information finns här.

Autentisera klienten

För att kunna interagera med dokumentunderrättelsetjänsten måste du skapa en instans av en klient. En slutpunkt och autentiseringsuppgifter krävs för att instansiera klientobjektet.

Hämta slutpunkten

Du hittar slutpunkten för din Formigenkänning resurs med hjälp av Azure-portalen eller Azure CLI:

# Get the endpoint for the Form Recognizer resource
az cognitiveservices account show --name "resource-name" --resource-group "resource-group-name" --query "properties.endpoint"

Antingen kan en regional slutpunkt eller en anpassad underdomän användas för autentisering. De är formaterade på följande sätt:

Regional endpoint: https://<region>.api.cognitive.microsoft.com/
Custom subdomain: https://<resource-name>.cognitiveservices.azure.com/

En regional slutpunkt är densamma för varje resurs i en region. En fullständig lista över regionala slutpunkter som stöds kan konsulteras här. Observera att regionala slutpunkter inte stöder AAD-autentisering.

En anpassad underdomän är å andra sidan ett namn som är unikt för den Formigenkänning resursen. De kan bara användas av resurser med en enda tjänst.

Hämta API-nyckeln

API-nyckeln finns i Azure-portalen eller genom att köra följande Azure CLI-kommando:

az cognitiveservices account keys list --name "<resource-name>" --resource-group "<resource-group-name>"

Skapa klienten med AzureKeyCredential

Om du vill använda en API-nyckel som credential parameter skickar du nyckeln som en sträng till en instans av AzureKeyCredential.

from azure.core.credentials import AzureKeyCredential
from azure.ai.formrecognizer import DocumentAnalysisClient

endpoint = "https://<my-custom-subdomain>.cognitiveservices.azure.com/"
credential = AzureKeyCredential("<api_key>")
document_analysis_client = DocumentAnalysisClient(endpoint, credential)

Skapa klienten med en Azure Active Directory-autentiseringsuppgift

AzureKeyCredential autentisering används i exemplen i den här komma igång-guiden, men du kan också autentisera med Azure Active Directory med hjälp av azure-identity-biblioteket . Observera att regionala slutpunkter inte stöder AAD-autentisering. Skapa ett anpassat underdomännamn för resursen för att använda den här typen av autentisering.

Om du vill använda typen DefaultAzureCredential som visas nedan eller andra typer av autentiseringsuppgifter som medföljer Azure SDK installerar azure-identity du paketet:

pip install azure-identity

Du måste också registrera ett nytt AAD-program och bevilja åtkomst till Dokumentinformation genom att "Cognitive Services User" tilldela rollen till tjänstens huvudnamn.

När du är klar anger du värdena för klient-ID, klient-ID och klienthemlighet för AAD-programmet som miljövariabler: AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET.

"""DefaultAzureCredential will use the values from these environment
variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET
"""
from azure.ai.formrecognizer import DocumentAnalysisClient
from azure.identity import DefaultAzureCredential

endpoint = os.environ["AZURE_FORM_RECOGNIZER_ENDPOINT"]
credential = DefaultAzureCredential()

document_analysis_client = DocumentAnalysisClient(endpoint, credential)

Viktiga begrepp

DocumentAnalysisClient

DocumentAnalysisClient innehåller åtgärder för att analysera indatadokument med hjälp av fördefinierade och anpassade modeller via API:erna begin_analyze_document och begin_analyze_document_from_url . Använd parametern model_id för att välja typ av modell för analys. Se en fullständig lista över modeller som stöds här. Innehåller DocumentAnalysisClient även åtgärder för att klassificera dokument via API:erna begin_classify_document och begin_classify_document_from_url . Anpassade klassificeringsmodeller kan klassificera varje sida i en indatafil för att identifiera dokument i och kan även identifiera flera dokument eller flera instanser av ett enskilt dokument i en indatafil.

Exempelkodfragment tillhandahålls för att illustrera med hjälp av ett DocumentAnalysisClient-exempel här. Mer information om att analysera dokument, inklusive funktioner, nationella inställningar och dokumenttyper som stöds finns i tjänstdokumentationen.

DocumentModelAdministrationClient

DocumentModelAdministrationClient tillhandahåller åtgärder för:

  • Skapa anpassade modeller för att analysera specifika fält som du anger genom att märka dina anpassade dokument. En DocumentModelDetails returneras som anger de dokumenttyper som modellen kan analysera, samt den uppskattade konfidensen för varje fält. Mer detaljerad förklaring finns i tjänstdokumentationen .
  • Skapa en sammansatt modell från en samling befintliga modeller.
  • Hantera modeller som skapats i ditt konto.
  • Visa åtgärder eller hämta en specifik modellåtgärd som skapats under de senaste 24 timmarna.
  • Kopiera en anpassad modell från en Formigenkänning resurs till en annan.
  • Skapa och hantera en anpassad klassificeringsmodell för att klassificera de dokument som du bearbetar i ditt program.

Observera att modeller också kan skapas med hjälp av ett grafiskt användargränssnitt, till exempel Document Intelligence Studio.

Exempelkodfragment tillhandahålls för att illustrera med hjälp av ett DocumentModelAdministrationClient-exempel här.

Långvariga åtgärder

Långvariga åtgärder är åtgärder som består av en första begäran som skickas till tjänsten för att starta en åtgärd, följt av avsökning av tjänsten med jämna mellanrum för att avgöra om åtgärden har slutförts eller misslyckats, och om den har lyckats för att få resultatet.

Metoder som analyserar dokument, byggmodeller eller kopierar/skriver modeller modelleras som långvariga åtgärder. Klienten exponerar en begin_<method-name> metod som returnerar en LROPoller eller AsyncLROPoller. Anropare bör vänta tills åtgärden har slutförts genom att anropa result() det pollerobjekt som returneras från begin_<method-name> metoden . Exempelkodfragment tillhandahålls för att illustrera med hjälp av långvariga åtgärder nedan.

Exempel

Följande avsnitt innehåller flera kodfragment som täcker några av de vanligaste uppgifterna för dokumentinformation, inklusive:

Extrahera layout

Extrahera text, markeringsmarkeringar, textformat och tabellstrukturer, tillsammans med deras koordinater för avgränsningsområde, från dokument.

from azure.core.credentials import AzureKeyCredential
from azure.ai.formrecognizer import DocumentAnalysisClient

endpoint = os.environ["AZURE_FORM_RECOGNIZER_ENDPOINT"]
key = os.environ["AZURE_FORM_RECOGNIZER_KEY"]

document_analysis_client = DocumentAnalysisClient(
    endpoint=endpoint, credential=AzureKeyCredential(key)
)
with open(path_to_sample_documents, "rb") as f:
    poller = document_analysis_client.begin_analyze_document(
        "prebuilt-layout", document=f
    )
result = poller.result()

for idx, style in enumerate(result.styles):
    print(
        "Document contains {} content".format(
            "handwritten" if style.is_handwritten else "no handwritten"
        )
    )

for page in result.pages:
    print("----Analyzing layout from page #{}----".format(page.page_number))
    print(
        "Page has width: {} and height: {}, measured with unit: {}".format(
            page.width, page.height, page.unit
        )
    )

    for line_idx, line in enumerate(page.lines):
        words = line.get_words()
        print(
            "...Line # {} has word count {} and text '{}' within bounding polygon '{}'".format(
                line_idx,
                len(words),
                line.content,
                line.polygon,
            )
        )

        for word in words:
            print(
                "......Word '{}' has a confidence of {}".format(
                    word.content, word.confidence
                )
            )

    for selection_mark in page.selection_marks:
        print(
            "...Selection mark is '{}' within bounding polygon '{}' and has a confidence of {}".format(
                selection_mark.state,
                selection_mark.polygon,
                selection_mark.confidence,
            )
        )

for table_idx, table in enumerate(result.tables):
    print(
        "Table # {} has {} rows and {} columns".format(
            table_idx, table.row_count, table.column_count
        )
    )
    for region in table.bounding_regions:
        print(
            "Table # {} location on page: {} is {}".format(
                table_idx,
                region.page_number,
                region.polygon,
            )
        )
    for cell in table.cells:
        print(
            "...Cell[{}][{}] has content '{}'".format(
                cell.row_index,
                cell.column_index,
                cell.content,
            )
        )
        for region in cell.bounding_regions:
            print(
                "...content on page {} is within bounding polygon '{}'".format(
                    region.page_number,
                    region.polygon,
                )
            )

print("----------------------------------------")

Använda den allmänna dokumentmodellen

Analysera nyckel/värde-par, tabeller, format och urvalsmarkeringar från dokument med hjälp av den allmänna dokumentmodellen som tillhandahålls av dokumentinformationstjänsten. Välj den allmänna dokumentmodellen genom att skicka model_id="prebuilt-document" till begin_analyze_document metoden :

from azure.core.credentials import AzureKeyCredential
from azure.ai.formrecognizer import DocumentAnalysisClient

endpoint = os.environ["AZURE_FORM_RECOGNIZER_ENDPOINT"]
key = os.environ["AZURE_FORM_RECOGNIZER_KEY"]

document_analysis_client = DocumentAnalysisClient(
    endpoint=endpoint, credential=AzureKeyCredential(key)
)
with open(path_to_sample_documents, "rb") as f:
    poller = document_analysis_client.begin_analyze_document(
        "prebuilt-document", document=f
    )
result = poller.result()

for style in result.styles:
    if style.is_handwritten:
        print("Document contains handwritten content: ")
        print(",".join([result.content[span.offset:span.offset + span.length] for span in style.spans]))

print("----Key-value pairs found in document----")
for kv_pair in result.key_value_pairs:
    if kv_pair.key:
        print(
                "Key '{}' found within '{}' bounding regions".format(
                    kv_pair.key.content,
                    kv_pair.key.bounding_regions,
                )
            )
    if kv_pair.value:
        print(
                "Value '{}' found within '{}' bounding regions\n".format(
                    kv_pair.value.content,
                    kv_pair.value.bounding_regions,
                )
            )

for page in result.pages:
    print("----Analyzing document from page #{}----".format(page.page_number))
    print(
        "Page has width: {} and height: {}, measured with unit: {}".format(
            page.width, page.height, page.unit
        )
    )

    for line_idx, line in enumerate(page.lines):
        words = line.get_words()
        print(
            "...Line # {} has {} words and text '{}' within bounding polygon '{}'".format(
                line_idx,
                len(words),
                line.content,
                line.polygon,
            )
        )

        for word in words:
            print(
                "......Word '{}' has a confidence of {}".format(
                    word.content, word.confidence
                )
            )

    for selection_mark in page.selection_marks:
        print(
            "...Selection mark is '{}' within bounding polygon '{}' and has a confidence of {}".format(
                selection_mark.state,
                selection_mark.polygon,
                selection_mark.confidence,
            )
        )

for table_idx, table in enumerate(result.tables):
    print(
        "Table # {} has {} rows and {} columns".format(
            table_idx, table.row_count, table.column_count
        )
    )
    for region in table.bounding_regions:
        print(
            "Table # {} location on page: {} is {}".format(
                table_idx,
                region.page_number,
                region.polygon,
            )
        )
    for cell in table.cells:
        print(
            "...Cell[{}][{}] has content '{}'".format(
                cell.row_index,
                cell.column_index,
                cell.content,
            )
        )
        for region in cell.bounding_regions:
            print(
                "...content on page {} is within bounding polygon '{}'\n".format(
                    region.page_number,
                    region.polygon,
                )
            )
print("----------------------------------------")
  • Läs mer om de funktioner som tillhandahålls av prebuilt-document modellen här.

Använda fördefinierade modeller

Extrahera fält från utvalda dokumenttyper, till exempel kvitton, fakturor, visitkort, identitetsdokument och amerikanska W-2-skattedokument med hjälp av fördefinierade modeller som tillhandahålls av dokumentinformationstjänsten.

Om du till exempel vill analysera fält från ett försäljningskvitto använder du den fördefinierade kvittomodellen som tillhandahålls genom att skicka model_id="prebuilt-receipt" till begin_analyze_document metoden :

from azure.core.credentials import AzureKeyCredential
from azure.ai.formrecognizer import DocumentAnalysisClient

endpoint = os.environ["AZURE_FORM_RECOGNIZER_ENDPOINT"]
key = os.environ["AZURE_FORM_RECOGNIZER_KEY"]

document_analysis_client = DocumentAnalysisClient(
    endpoint=endpoint, credential=AzureKeyCredential(key)
)
with open(path_to_sample_documents, "rb") as f:
    poller = document_analysis_client.begin_analyze_document(
        "prebuilt-receipt", document=f, locale="en-US"
    )
receipts = poller.result()

for idx, receipt in enumerate(receipts.documents):
    print(f"--------Analysis of receipt #{idx + 1}--------")
    print(f"Receipt type: {receipt.doc_type if receipt.doc_type else 'N/A'}")
    merchant_name = receipt.fields.get("MerchantName")
    if merchant_name:
        print(
            f"Merchant Name: {merchant_name.value} has confidence: "
            f"{merchant_name.confidence}"
        )
    transaction_date = receipt.fields.get("TransactionDate")
    if transaction_date:
        print(
            f"Transaction Date: {transaction_date.value} has confidence: "
            f"{transaction_date.confidence}"
        )
    if receipt.fields.get("Items"):
        print("Receipt items:")
        for idx, item in enumerate(receipt.fields.get("Items").value):
            print(f"...Item #{idx + 1}")
            item_description = item.value.get("Description")
            if item_description:
                print(
                    f"......Item Description: {item_description.value} has confidence: "
                    f"{item_description.confidence}"
                )
            item_quantity = item.value.get("Quantity")
            if item_quantity:
                print(
                    f"......Item Quantity: {item_quantity.value} has confidence: "
                    f"{item_quantity.confidence}"
                )
            item_price = item.value.get("Price")
            if item_price:
                print(
                    f"......Individual Item Price: {item_price.value} has confidence: "
                    f"{item_price.confidence}"
                )
            item_total_price = item.value.get("TotalPrice")
            if item_total_price:
                print(
                    f"......Total Item Price: {item_total_price.value} has confidence: "
                    f"{item_total_price.confidence}"
                )
    subtotal = receipt.fields.get("Subtotal")
    if subtotal:
        print(f"Subtotal: {subtotal.value} has confidence: {subtotal.confidence}")
    tax = receipt.fields.get("TotalTax")
    if tax:
        print(f"Total tax: {tax.value} has confidence: {tax.confidence}")
    tip = receipt.fields.get("Tip")
    if tip:
        print(f"Tip: {tip.value} has confidence: {tip.confidence}")
    total = receipt.fields.get("Total")
    if total:
        print(f"Total: {total.value} has confidence: {total.confidence}")
    print("--------------------------------------")

Du är inte begränsad till kvitton! Det finns några fördefinierade modeller att välja mellan, där var och en har en egen uppsättning fält som stöds. Se andra fördefinierade modeller som stöds här.

Skapa en anpassad modell

Skapa en anpassad modell på din egen dokumenttyp. Den resulterande modellen kan användas för att analysera värden från de typer av dokument som den har tränats på. Ange en CONTAINER-SAS-URL till din Azure Storage Blob-container där du lagrar träningsdokumenten.

Mer information om hur du konfigurerar en container och nödvändig filstruktur finns i tjänstdokumentationen.

from azure.ai.formrecognizer import (
    DocumentModelAdministrationClient,
    ModelBuildMode,
)
from azure.core.credentials import AzureKeyCredential

endpoint = os.environ["AZURE_FORM_RECOGNIZER_ENDPOINT"]
key = os.environ["AZURE_FORM_RECOGNIZER_KEY"]
container_sas_url = os.environ["CONTAINER_SAS_URL"]

document_model_admin_client = DocumentModelAdministrationClient(
    endpoint, AzureKeyCredential(key)
)
poller = document_model_admin_client.begin_build_document_model(
    ModelBuildMode.TEMPLATE,
    blob_container_url=container_sas_url,
    description="my model description",
)
model = poller.result()

print(f"Model ID: {model.model_id}")
print(f"Description: {model.description}")
print(f"Model created on: {model.created_on}")
print(f"Model expires on: {model.expires_on}")
print("Doc types the model can recognize:")
for name, doc_type in model.doc_types.items():
    print(
        f"Doc Type: '{name}' built with '{doc_type.build_mode}' mode which has the following fields:"
    )
    for field_name, field in doc_type.field_schema.items():
        print(
            f"Field: '{field_name}' has type '{field['type']}' and confidence score "
            f"{doc_type.field_confidence[field_name]}"
        )

Analysera dokument med en anpassad modell

Analysera dokumentfält, tabeller, urvalsmarkeringar med mera. Dessa modeller tränas med dina egna data, så de är skräddarsydda för dina dokument. För bästa resultat bör du bara analysera dokument av samma dokumenttyp som den anpassade modellen skapades med.

from azure.core.credentials import AzureKeyCredential
from azure.ai.formrecognizer import DocumentAnalysisClient

endpoint = os.environ["AZURE_FORM_RECOGNIZER_ENDPOINT"]
key = os.environ["AZURE_FORM_RECOGNIZER_KEY"]
model_id = os.getenv("CUSTOM_BUILT_MODEL_ID", custom_model_id)

document_analysis_client = DocumentAnalysisClient(
    endpoint=endpoint, credential=AzureKeyCredential(key)
)

# Make sure your document's type is included in the list of document types the custom model can analyze
with open(path_to_sample_documents, "rb") as f:
    poller = document_analysis_client.begin_analyze_document(
        model_id=model_id, document=f
    )
result = poller.result()

for idx, document in enumerate(result.documents):
    print(f"--------Analyzing document #{idx + 1}--------")
    print(f"Document has type {document.doc_type}")
    print(f"Document has document type confidence {document.confidence}")
    print(f"Document was analyzed with model with ID {result.model_id}")
    for name, field in document.fields.items():
        field_value = field.value if field.value else field.content
        print(
            f"......found field of type '{field.value_type}' with value '{field_value}' and with confidence {field.confidence}"
        )

# iterate over tables, lines, and selection marks on each page
for page in result.pages:
    print(f"\nLines found on page {page.page_number}")
    for line in page.lines:
        print(f"...Line '{line.content}'")
    for word in page.words:
        print(f"...Word '{word.content}' has a confidence of {word.confidence}")
    if page.selection_marks:
        print(f"\nSelection marks found on page {page.page_number}")
        for selection_mark in page.selection_marks:
            print(
                f"...Selection mark is '{selection_mark.state}' and has a confidence of {selection_mark.confidence}"
            )

for i, table in enumerate(result.tables):
    print(f"\nTable {i + 1} can be found on page:")
    for region in table.bounding_regions:
        print(f"...{region.page_number}")
    for cell in table.cells:
        print(
            f"...Cell[{cell.row_index}][{cell.column_index}] has text '{cell.content}'"
        )
print("-----------------------------------")

Du kan också använda en dokument-URL för att analysera dokument med hjälp av begin_analyze_document_from_url metoden .

document_url = "<url_of_the_document>"
poller = document_analysis_client.begin_analyze_document_from_url(model_id=model_id, document_url=document_url)
result = poller.result()

Hantera dina modeller

Hantera de anpassade modeller som är kopplade till ditt konto.

from azure.ai.formrecognizer import DocumentModelAdministrationClient
from azure.core.credentials import AzureKeyCredential
from azure.core.exceptions import ResourceNotFoundError

endpoint = "https://<my-custom-subdomain>.cognitiveservices.azure.com/"
credential = AzureKeyCredential("<api_key>")

document_model_admin_client = DocumentModelAdministrationClient(endpoint, credential)

account_details = document_model_admin_client.get_resource_details()
print("Our account has {} custom models, and we can have at most {} custom models".format(
    account_details.custom_document_models.count, account_details.custom_document_models.limit
))

# Here we get a paged list of all of our models
models = document_model_admin_client.list_document_models()
print("We have models with the following ids: {}".format(
    ", ".join([m.model_id for m in models])
))

# Replace with the custom model ID from the "Build a model" sample
model_id = "<model_id from the Build a Model sample>"

custom_model = document_model_admin_client.get_document_model(model_id=model_id)
print("Model ID: {}".format(custom_model.model_id))
print("Description: {}".format(custom_model.description))
print("Model created on: {}\n".format(custom_model.created_on))

# Finally, we will delete this model by ID
document_model_admin_client.delete_document_model(model_id=custom_model.model_id)

try:
    document_model_admin_client.get_document_model(model_id=custom_model.model_id)
except ResourceNotFoundError:
    print("Successfully deleted model with id {}".format(custom_model.model_id))

Tilläggsfunktioner

Dokumentinformation har stöd för mer avancerade analysfunktioner. Dessa valfria funktioner kan aktiveras och inaktiveras beroende på scenariot för extrahering av dokument.

Följande tilläggsfunktioner är tillgängliga för 2023-07-31 (GA) och senare versioner:

Observera att vissa tilläggsfunktioner medför ytterligare avgifter. Se priser: https://azure.microsoft.com/pricing/details/ai-document-intelligence/.

Felsökning

Allmänt

Formigenkänning klientbibliotek skapar undantag som definierats i Azure Core. Felkoder och meddelanden som genereras av dokumentinformationstjänsten finns i tjänstdokumentationen.

Loggning

Det här biblioteket använder standardloggningsbiblioteket för loggning.

Grundläggande information om HTTP-sessioner (URL:er, rubriker osv.) loggas på INFO nivå.

Detaljerad DEBUG nivåloggning, inklusive begärande-/svarskroppar och oredigerade rubriker, kan aktiveras på klienten eller per åtgärd med nyckelordsargumentet logging_enable .

Se fullständig SDK-loggningsdokumentation med exempel här.

Valfri konfiguration

Valfria nyckelordsargument kan skickas in på klient- och åtgärdsnivå. Referensdokumentationen för azure-core beskriver tillgängliga konfigurationer för återförsök, loggning, transportprotokoll med mera.

Nästa steg

Mer exempelkod

Se README-exempel för flera kodfragment som illustrerar vanliga mönster som används i Formigenkänning Python API.

Ytterligare dokumentation

Mer omfattande dokumentation om Azure AI-dokumentinformation finns i dokumentationen om dokumentinformation om docs.microsoft.com.

Bidra

Det här projektet välkomnar bidrag och förslag. Merparten av bidragen kräver att du godkänner ett licensavtal för bidrag, där du deklarerar att du har behörighet att bevilja oss rättigheten att använda ditt bidrag, och att du dessutom uttryckligen gör så. Mer information finns i cla.microsoft.com.

När du skickar en pull-förfrågan avgör en CLA-robot automatiskt om du måste tillhandahålla ett licensavtal för bidrag med lämplig PR (t.ex. etikett eller kommentar). Följ bara robotens anvisningar. Du behöver bara göra detta en gång för alla repor som använder vårt licensavtal för bidrag.

Det här projektet använder sig av Microsofts uppförandekod för öppen källkod. Mer information finns i Vanliga frågor och svar om uppförandekoden eller kontakta opencode@microsoft.com med ytterligare frågor eller kommentarer.