FormRecognizerClient Klass
FormRecognizerClient extraherar information från formulär och bilder till strukturerade data. Det är gränssnittet som ska användas för att analysera med fördefinierade modeller (kvitton, visitkort, fakturor, identitetsdokument), identifiera innehåll/layout från formulär och analysera anpassade formulär från tränade modeller. Den tillhandahåller olika metoder baserat på indata från en URL och indata från en ström.
Anteckning
FormRecognizerClient ska användas med API-versioner <=v2.1.
Om du vill använda API-versionerna 2022-08-31 och senare instansierar du en DocumentAnalysisClient.
- Arv
-
azure.ai.formrecognizer._form_base_client.FormRecognizerClientBaseFormRecognizerClient
Konstruktor
FormRecognizerClient(endpoint: str, credential: AzureKeyCredential | TokenCredential, **kwargs: Any)
Parametrar
- endpoint
- str
Cognitive Services-slutpunkter som stöds (protokoll och värdnamn, till exempel: https://westus2.api.cognitive.microsoft.com).
- credential
- AzureKeyCredential eller TokenCredential
Autentiseringsuppgifter som krävs för att klienten ska kunna ansluta till Azure. Det här är en instans av AzureKeyCredential om du använder en API-nyckel eller en tokenautentiseringsuppgift från identity.
- api_version
- str eller FormRecognizerApiVersion
API-versionen av tjänsten som ska användas för begäranden. Standardinställningen är API-version v2.1. Om du anger en äldre version kan funktionskompatibiliteten minska. Om du vill använda den senaste API-versionen och funktionerna som stöds instansierar du en DocumentAnalysisClient i stället.
Exempel
Skapa FormRecognizerClient med en slutpunkt och API-nyckel.
from azure.core.credentials import AzureKeyCredential
from azure.ai.formrecognizer import FormRecognizerClient
endpoint = os.environ["AZURE_FORM_RECOGNIZER_ENDPOINT"]
key = os.environ["AZURE_FORM_RECOGNIZER_KEY"]
form_recognizer_client = FormRecognizerClient(endpoint, AzureKeyCredential(key))
Skapa FormRecognizerClient med en tokenautentiseringsuppgift.
"""DefaultAzureCredential will use the values from these environment
variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET
"""
from azure.ai.formrecognizer import FormRecognizerClient
from azure.identity import DefaultAzureCredential
endpoint = os.environ["AZURE_FORM_RECOGNIZER_ENDPOINT"]
credential = DefaultAzureCredential()
form_recognizer_client = FormRecognizerClient(endpoint, credential)
Metoder
begin_recognize_business_cards |
Extrahera fälttext och semantiska värden från ett visst visitkort. Indatadokumentet måste ha någon av de innehållstyper som stöds – "application/pdf", "image/jpeg", "image/png", "image/tiff" eller "image/bmp". Se fält som finns på ett visitkort här: https://aka.ms/formrecognizer/businesscardfields Nytt i version v2.1: Klientmetoden begin_recognize_business_cards |
begin_recognize_business_cards_from_url |
Extrahera fälttext och semantiska värden från ett visst visitkort. Indatadokumentet måste vara platsen (URL) för kortet som ska analyseras. Se fält som finns på ett visitkort här: https://aka.ms/formrecognizer/businesscardfields Nytt i version v2.1: Klientmetoden begin_recognize_business_cards_from_url |
begin_recognize_content |
Extrahera text- och innehålls-/layoutinformation från ett visst dokument. Indatadokumentet måste ha någon av de innehållstyper som stöds – "application/pdf", "image/jpeg", "image/png", "image/tiff" eller "image/bmp". Ny i version v2.1: Sidorna, språket och reading_order nyckelordsargument och stöd för bild-/bmp-innehåll |
begin_recognize_content_from_url |
Extrahera text- och layoutinformation från ett visst dokument. Indatadokumentet måste vara platsen (URL) för dokumentet som ska analyseras. Ny i version v2.1: Sidorna, språket och reading_order nyckelordsargument och stöd för bild-/bmp-innehåll |
begin_recognize_custom_forms |
Analysera ett anpassat formulär med en modell som tränats med eller utan etiketter. Formuläret som ska analyseras bör vara av samma typ som de formulär som användes för att träna modellen. Indatadokumentet måste vara av någon av de innehållstyper som stöds – "application/pdf", "image/jpeg", "image/png", "image/tiff" eller "image/bmp". |
begin_recognize_custom_forms_from_url |
Analysera ett anpassat formulär med en modell som tränats med eller utan etiketter. Formuläret som ska analyseras bör vara av samma typ som de formulär som användes för att träna modellen. Indatadokumentet måste vara platsen (URL) för dokumentet som ska analyseras. |
begin_recognize_identity_documents |
Extrahera fälttext och semantiska värden från ett visst identitetsdokument. Indatadokumentet måste ha någon av de innehållstyper som stöds – "application/pdf", "image/jpeg", "image/png", "image/tiff" eller "image/bmp". Se fält som finns i ett identitetsdokument här: https://aka.ms/formrecognizer/iddocumentfields Ny i version v2.1: klientmetoden begin_recognize_identity_documents |
begin_recognize_identity_documents_from_url |
Extrahera fälttext och semantiska värden från ett visst identitetsdokument. Indatadokumentet måste vara platsen (URL) för identitetsdokumentet som ska analyseras. Se fält som finns i ett identitetsdokument här: https://aka.ms/formrecognizer/iddocumentfields Ny i version v2.1: klientmetoden begin_recognize_identity_documents_from_url |
begin_recognize_invoices |
Extrahera fälttext och semantiska värden från en viss faktura. Indatadokumentet måste ha någon av de innehållstyper som stöds – "application/pdf", "image/jpeg", "image/png", "image/tiff" eller "image/bmp". Se fält som finns på en faktura här: https://aka.ms/formrecognizer/invoicefields Ny i version v2.1: klientmetoden begin_recognize_invoices |
begin_recognize_invoices_from_url |
Extrahera fälttext och semantiska värden från en viss faktura. Indatadokumentet måste vara platsen (URL) för fakturan som ska analyseras. Se fält som finns på ett fakturakort här: https://aka.ms/formrecognizer/invoicefields Ny i version v2.1: klientmetoden begin_recognize_invoices_from_url |
begin_recognize_receipts |
Extrahera fälttext och semantiska värden från ett givet försäljningskvitto. Indatadokumentet måste ha någon av de innehållstyper som stöds – "application/pdf", "image/jpeg", "image/png", "image/tiff" eller "image/bmp". Se fält som finns på ett kvitto här: https://aka.ms/formrecognizer/receiptfields Nytt i version v2.1: Nyckelordsargument för nationella inställningar och sidor och stöd för bild-/bmp-innehåll |
begin_recognize_receipts_from_url |
Extrahera fälttext och semantiska värden från ett givet försäljningskvitto. Indatadokumentet måste vara platsen (URL) för kvittot som ska analyseras. Se fält som finns på ett kvitto här: https://aka.ms/formrecognizer/receiptfields Nytt i version v2.1: Nyckelordsargument för nationella inställningar och sidor och stöd för bild-/bmp-innehåll |
close |
FormRecognizerClient Stäng sessionen. |
send_request |
Kör en nätverksbegäran med hjälp av klientens befintliga pipeline. Begärande-URL:en kan vara relativ till bas-URL:en. Den tjänst-API-version som används för begäran är samma som klientens om inget annat anges. Att åsidosätta klientens konfigurerade API-version i relativ URL stöds på klienten med API-version 2022-08-31 och senare. Åsidosätter i absolut URL som stöds på klienten med valfri API-version. Den här metoden utlöser inte om svaret är ett fel. om du vill skapa ett undantag anropar du raise_for_status() på det returnerade svarsobjektet. Mer information om hur du skickar anpassade begäranden med den här metoden finns i https://aka.ms/azsdk/dpcodegen/python/send_request. |
begin_recognize_business_cards
Extrahera fälttext och semantiska värden från ett visst visitkort. Indatadokumentet måste ha någon av de innehållstyper som stöds – "application/pdf", "image/jpeg", "image/png", "image/tiff" eller "image/bmp".
Se fält som finns på ett visitkort här: https://aka.ms/formrecognizer/businesscardfields
Nytt i version v2.1: Klientmetoden begin_recognize_business_cards
begin_recognize_business_cards(business_card: bytes | IO[bytes], **kwargs: Any) -> LROPoller[List[RecognizedForm]]
Parametrar
JPEG-, PNG-, PDF-, TIFF- eller BMP-typfilström eller byte.
- locale
- str
Visitkortets nationella inställningar. Språk som stöds är: en-US, en-AU, en-CA, en-GB och en-IN.
- include_field_elements
- bool
Om du vill inkludera alla rader per sida och fältelement, till exempel rader, ord och markeringsmarkeringar för varje formulärfält.
Anpassade sidnummer för flersidiga dokument (PDF/TIFF). Ange sidnummer och/eller sidintervall som du vill få i resultatet. För ett antal sidor använder du ett bindestreck, t.ex. pages=["1-3", "5-6"]. Avgränsa varje sidnummer eller intervall med ett kommatecken.
- content_type
- str eller FormContentType
Innehållstyp för brödtexten som skickas till API:et. Innehållstypen identifieras automatiskt, men kan åsidosättas genom att det här nyckelordsargumentet skickas. Alternativ finns i FormContentType.
- continuation_token
- str
En fortsättningstoken för att starta om en poller från ett sparat tillstånd.
Returer
En instans av en LROPoller. Anropa result() på pollerobjektet för att returnera en lista[RecognizedForm].
Returtyp
Undantag
Exempel
Identifiera visitkort från en fil.
from azure.core.credentials import AzureKeyCredential
from azure.ai.formrecognizer import FormRecognizerClient
endpoint = os.environ["AZURE_FORM_RECOGNIZER_ENDPOINT"]
key = os.environ["AZURE_FORM_RECOGNIZER_KEY"]
form_recognizer_client = FormRecognizerClient(
endpoint=endpoint, credential=AzureKeyCredential(key)
)
with open(path_to_sample_forms, "rb") as f:
poller = form_recognizer_client.begin_recognize_business_cards(business_card=f, locale="en-US")
business_cards = poller.result()
for idx, business_card in enumerate(business_cards):
print("--------Recognizing business card #{}--------".format(idx+1))
contact_names = business_card.fields.get("ContactNames")
if contact_names:
for contact_name in contact_names.value:
print("Contact First Name: {} has confidence: {}".format(
contact_name.value["FirstName"].value, contact_name.value["FirstName"].confidence
))
print("Contact Last Name: {} has confidence: {}".format(
contact_name.value["LastName"].value, contact_name.value["LastName"].confidence
))
company_names = business_card.fields.get("CompanyNames")
if company_names:
for company_name in company_names.value:
print("Company Name: {} has confidence: {}".format(company_name.value, company_name.confidence))
departments = business_card.fields.get("Departments")
if departments:
for department in departments.value:
print("Department: {} has confidence: {}".format(department.value, department.confidence))
job_titles = business_card.fields.get("JobTitles")
if job_titles:
for job_title in job_titles.value:
print("Job Title: {} has confidence: {}".format(job_title.value, job_title.confidence))
emails = business_card.fields.get("Emails")
if emails:
for email in emails.value:
print("Email: {} has confidence: {}".format(email.value, email.confidence))
websites = business_card.fields.get("Websites")
if websites:
for website in websites.value:
print("Website: {} has confidence: {}".format(website.value, website.confidence))
addresses = business_card.fields.get("Addresses")
if addresses:
for address in addresses.value:
print("Address: {} has confidence: {}".format(address.value, address.confidence))
mobile_phones = business_card.fields.get("MobilePhones")
if mobile_phones:
for phone in mobile_phones.value:
print("Mobile phone number: {} has confidence: {}".format(phone.value, phone.confidence))
faxes = business_card.fields.get("Faxes")
if faxes:
for fax in faxes.value:
print("Fax number: {} has confidence: {}".format(fax.value, fax.confidence))
work_phones = business_card.fields.get("WorkPhones")
if work_phones:
for work_phone in work_phones.value:
print("Work phone number: {} has confidence: {}".format(work_phone.value, work_phone.confidence))
other_phones = business_card.fields.get("OtherPhones")
if other_phones:
for other_phone in other_phones.value:
print("Other phone number: {} has confidence: {}".format(other_phone.value, other_phone.confidence))
begin_recognize_business_cards_from_url
Extrahera fälttext och semantiska värden från ett visst visitkort. Indatadokumentet måste vara platsen (URL) för kortet som ska analyseras.
Se fält som finns på ett visitkort här: https://aka.ms/formrecognizer/businesscardfields
Nytt i version v2.1: Klientmetoden begin_recognize_business_cards_from_url
begin_recognize_business_cards_from_url(business_card_url: str, **kwargs: Any) -> LROPoller[List[RecognizedForm]]
Parametrar
- business_card_url
- str
URL:en för visitkortet som ska analyseras. Indata måste vara en giltig, kodad URL för något av de format som stöds: JPEG, PNG, PDF, TIFF eller BMP.
- locale
- str
Visitkortets nationella inställningar. Språk som stöds är: en-US, en-AU, en-CA, en-GB och en-IN.
- include_field_elements
- bool
Om du vill inkludera alla rader per sida och fältelement, till exempel rader, ord och markeringsmarkeringar för varje formulärfält.
Anpassade sidnummer för flersidiga dokument (PDF/TIFF). Ange sidnummer och/eller sidintervall som du vill få i resultatet. För ett antal sidor använder du ett bindestreck, t.ex. pages=["1-3", "5-6"]. Avgränsa varje sidnummer eller intervall med ett kommatecken.
- continuation_token
- str
En fortsättningstoken för att starta om en poller från ett sparat tillstånd.
Returer
En instans av en LROPoller. Anropa result() på pollerobjektet för att returnera en lista[RecognizedForm].
Returtyp
Undantag
begin_recognize_content
Extrahera text- och innehålls-/layoutinformation från ett visst dokument. Indatadokumentet måste ha någon av de innehållstyper som stöds – "application/pdf", "image/jpeg", "image/png", "image/tiff" eller "image/bmp".
Ny i version v2.1: Sidorna, språket och reading_order nyckelordsargument och stöd för bild-/bmp-innehåll
begin_recognize_content(form: bytes | IO[bytes], **kwargs: Any) -> LROPoller[List[FormPage]]
Parametrar
Anpassade sidnummer för flersidiga dokument (PDF/TIFF). Ange sidnummer och/eller sidintervall som du vill få i resultatet. För ett antal sidor använder du ett bindestreck, t.ex. pages=["1-3", "5-6"]. Avgränsa varje sidnummer eller intervall med ett kommatecken.
- language
- str
BCP-47-språkkoden för texten i dokumentet. Se språkkoder som stöds här: https://docs.microsoft.com/azure/cognitive-services/form-recognizer/language-support. Innehållet stöder automatisk språkidentifiering och dokument med flera språk, så ange bara en språkkod om du vill tvinga den dokumenterade att bearbetas som det specifika språket.
- reading_order
- str
Läsordningsalgoritmen för att sortera de returnerade textraderna. Läsordrar som stöds är: grundläggande (standard), naturliga. Ange "grundläggande" för att sortera rader från vänster till höger och uppifrån och ned, även om närhet i vissa fall behandlas med högre prioritet. Ange "naturlig" för att sortera linjer med hjälp av positionsinformation för att hålla ihop närliggande linjer.
- content_type
- str eller FormContentType
Innehållstyp för brödtexten som skickas till API:et. Innehållstypen identifieras automatiskt, men kan åsidosättas genom att det här nyckelordsargumentet skickas. Alternativ finns i FormContentType.
- continuation_token
- str
En fortsättningstoken för att starta om en poller från ett sparat tillstånd.
Returer
En instans av en LROPoller. Anropa result() på pollerobjektet för att returnera en lista[FormPage].
Returtyp
Undantag
Exempel
Identifiera text och innehåll/layoutinformation från ett formulär.
from azure.core.credentials import AzureKeyCredential
from azure.ai.formrecognizer import FormRecognizerClient
endpoint = os.environ["AZURE_FORM_RECOGNIZER_ENDPOINT"]
key = os.environ["AZURE_FORM_RECOGNIZER_KEY"]
form_recognizer_client = FormRecognizerClient(endpoint=endpoint, credential=AzureKeyCredential(key))
with open(path_to_sample_forms, "rb") as f:
poller = form_recognizer_client.begin_recognize_content(form=f)
form_pages = poller.result()
for idx, content in enumerate(form_pages):
print("----Recognizing content from page #{}----".format(idx+1))
print("Page has width: {} and height: {}, measured with unit: {}".format(
content.width,
content.height,
content.unit
))
for table_idx, table in enumerate(content.tables):
print("Table # {} has {} rows and {} columns".format(table_idx, table.row_count, table.column_count))
print("Table # {} location on page: {}".format(table_idx, format_bounding_box(table.bounding_box)))
for cell in table.cells:
print("...Cell[{}][{}] has text '{}' within bounding box '{}'".format(
cell.row_index,
cell.column_index,
cell.text,
format_bounding_box(cell.bounding_box)
))
for line_idx, line in enumerate(content.lines):
print("Line # {} has word count '{}' and text '{}' within bounding box '{}'".format(
line_idx,
len(line.words),
line.text,
format_bounding_box(line.bounding_box)
))
if line.appearance:
if line.appearance.style_name == "handwriting" and line.appearance.style_confidence > 0.8:
print("Text line '{}' is handwritten and might be a signature.".format(line.text))
for word in line.words:
print("...Word '{}' has a confidence of {}".format(word.text, word.confidence))
for selection_mark in content.selection_marks:
print("Selection mark is '{}' within bounding box '{}' and has a confidence of {}".format(
selection_mark.state,
format_bounding_box(selection_mark.bounding_box),
selection_mark.confidence
))
print("----------------------------------------")
begin_recognize_content_from_url
Extrahera text- och layoutinformation från ett visst dokument. Indatadokumentet måste vara platsen (URL) för dokumentet som ska analyseras.
Ny i version v2.1: Sidorna, språket och reading_order nyckelordsargument och stöd för bild-/bmp-innehåll
begin_recognize_content_from_url(form_url: str, **kwargs: Any) -> LROPoller[List[FormPage]]
Parametrar
- form_url
- str
URL:en för formuläret som ska analyseras. Indata måste vara en giltig, kodad URL för något av de format som stöds: JPEG, PNG, PDF, TIFF eller BMP.
Anpassade sidnummer för flersidiga dokument (PDF/TIFF). Ange sidnummer och/eller sidintervall som du vill få i resultatet. För ett antal sidor använder du ett bindestreck, t.ex. pages=["1-3", "5-6"]. Avgränsa varje sidnummer eller intervall med ett kommatecken.
- language
- str
BCP-47-språkkoden för texten i dokumentet. Se språkkoder som stöds här: https://docs.microsoft.com/azure/cognitive-services/form-recognizer/language-support. Innehållet stöder automatisk språkidentifiering och dokument med flera språk, så ange bara en språkkod om du vill tvinga den dokumenterade att bearbetas som det specifika språket.
- reading_order
- str
Läsordningsalgoritmen för att sortera de returnerade textraderna. Läsordrar som stöds är: grundläggande (standard), naturliga. Ange "grundläggande" för att sortera rader från vänster till höger och uppifrån och ned, även om närhet i vissa fall behandlas med högre prioritet. Ange "naturlig" för att sortera linjer med hjälp av positionsinformation för att hålla ihop närliggande linjer.
- continuation_token
- str
En fortsättningstoken för att starta om en poller från ett sparat tillstånd.
Returer
En instans av en LROPoller. Anropa result() på pollerobjektet för att returnera en lista[FormPage].
Returtyp
Undantag
begin_recognize_custom_forms
Analysera ett anpassat formulär med en modell som tränats med eller utan etiketter. Formuläret som ska analyseras bör vara av samma typ som de formulär som användes för att träna modellen. Indatadokumentet måste vara av någon av de innehållstyper som stöds – "application/pdf", "image/jpeg", "image/png", "image/tiff" eller "image/bmp".
begin_recognize_custom_forms(model_id: str, form: bytes | IO[bytes], **kwargs: Any) -> LROPoller[List[RecognizedForm]]
Parametrar
- include_field_elements
- bool
Om du vill inkludera alla rader per sida och fältelement, till exempel rader, ord och markeringsmarkeringar för varje formulärfält.
- content_type
- str eller FormContentType
Innehållstyp för brödtexten som skickas till API:et. Innehållstypen identifieras automatiskt, men kan åsidosättas genom att det här nyckelordsargumentet skickas. Alternativ finns i FormContentType.
Anpassade sidnummer för dokument med flera sidor (PDF/TIFF). Ange sidnummer och/eller sidintervall som du vill få i resultatet. För ett sidintervall använder du ett bindestreck, till exempel pages=["1-3", "5-6"]. Avgränsa varje sidnummer eller intervall med kommatecken.
- continuation_token
- str
En fortsättningstoken för att starta om en poller från ett sparat tillstånd.
Returer
En instans av en LROPoller. Anropa result() på pollerobjektet för att returnera en lista[RecognizedForm].
Returtyp
Undantag
Exempel
Identifiera fält och värden från ett anpassat formulär.
from azure.core.credentials import AzureKeyCredential
from azure.ai.formrecognizer import FormRecognizerClient
endpoint = os.environ["AZURE_FORM_RECOGNIZER_ENDPOINT"]
key = os.environ["AZURE_FORM_RECOGNIZER_KEY"]
model_id = os.getenv("CUSTOM_TRAINED_MODEL_ID", custom_model_id)
form_recognizer_client = FormRecognizerClient(
endpoint=endpoint, credential=AzureKeyCredential(key)
)
# Make sure your form's type is included in the list of form types the custom model can recognize
with open(path_to_sample_forms, "rb") as f:
poller = form_recognizer_client.begin_recognize_custom_forms(
model_id=model_id, form=f, include_field_elements=True
)
forms = poller.result()
for idx, form in enumerate(forms):
print("--------Recognizing Form #{}--------".format(idx+1))
print("Form has type {}".format(form.form_type))
print("Form has form type confidence {}".format(form.form_type_confidence))
print("Form was analyzed with model with ID {}".format(form.model_id))
for name, field in form.fields.items():
# each field is of type FormField
# label_data is populated if you are using a model trained without labels,
# since the service needs to make predictions for labels if not explicitly given to it.
if field.label_data:
print("...Field '{}' has label '{}' with a confidence score of {}".format(
name,
field.label_data.text,
field.confidence
))
print("...Label '{}' has value '{}' with a confidence score of {}".format(
field.label_data.text if field.label_data else name, field.value, field.confidence
))
# iterate over tables, lines, and selection marks on each page
for page in form.pages:
for i, table in enumerate(page.tables):
print("\nTable {} on page {}".format(i+1, table.page_number))
for cell in table.cells:
print("...Cell[{}][{}] has text '{}' with confidence {}".format(
cell.row_index, cell.column_index, cell.text, cell.confidence
))
print("\nLines found on page {}".format(page.page_number))
for line in page.lines:
print("...Line '{}' is made up of the following words: ".format(line.text))
for word in line.words:
print("......Word '{}' has a confidence of {}".format(
word.text,
word.confidence
))
if page.selection_marks:
print("\nSelection marks found on page {}".format(page.page_number))
for selection_mark in page.selection_marks:
print("......Selection mark is '{}' and has a confidence of {}".format(
selection_mark.state,
selection_mark.confidence
))
print("-----------------------------------")
begin_recognize_custom_forms_from_url
Analysera ett anpassat formulär med en modell som tränats med eller utan etiketter. Formuläret som ska analyseras bör vara av samma typ som de formulär som användes för att träna modellen. Indatadokumentet måste vara platsen (URL) för dokumentet som ska analyseras.
begin_recognize_custom_forms_from_url(model_id: str, form_url: str, **kwargs: Any) -> LROPoller[List[RecognizedForm]]
Parametrar
- form_url
- str
URL:en för formuläret som ska analyseras. Indata måste vara en giltig, kodad URL för något av de format som stöds: JPEG, PNG, PDF, TIFF eller BMP.
- include_field_elements
- bool
Om du vill inkludera alla rader per sida och fältelement, till exempel rader, ord och markeringsmarkeringar för varje formulärfält.
Anpassade sidnummer för dokument med flera sidor (PDF/TIFF). Ange sidnummer och/eller sidintervall som du vill få i resultatet. För ett sidintervall använder du ett bindestreck, till exempel pages=["1-3", "5-6"]. Avgränsa varje sidnummer eller intervall med kommatecken.
- continuation_token
- str
En fortsättningstoken för att starta om en poller från ett sparat tillstånd.
Returer
En instans av en LROPoller. Anropa result() på pollerobjektet för att returnera en lista[RecognizedForm].
Returtyp
Undantag
begin_recognize_identity_documents
Extrahera fälttext och semantiska värden från ett visst identitetsdokument. Indatadokumentet måste ha någon av de innehållstyper som stöds – "application/pdf", "image/jpeg", "image/png", "image/tiff" eller "image/bmp".
Se fält som finns i ett identitetsdokument här: https://aka.ms/formrecognizer/iddocumentfields
Ny i version v2.1: klientmetoden begin_recognize_identity_documents
begin_recognize_identity_documents(identity_document: bytes | IO[bytes], **kwargs: Any) -> LROPoller[List[RecognizedForm]]
Parametrar
JPEG, PNG, PDF, TIFF eller BMP typ filström eller byte.
- include_field_elements
- bool
Om du vill inkludera alla rader per sida och fältelement, till exempel rader, ord och markeringsmarkeringar för varje formulärfält.
- content_type
- str eller FormContentType
Innehållstyp för brödtexten som skickas till API:et. Innehållstypen identifieras automatiskt, men kan åsidosättas genom att det här nyckelordsargumentet skickas. Alternativ finns i FormContentType.
- continuation_token
- str
En fortsättningstoken för att starta om en poller från ett sparat tillstånd.
Anpassade sidnummer för dokument med flera sidor (PDF/TIFF). Ange sidnummer och/eller sidintervall som du vill få i resultatet. För ett sidintervall använder du ett bindestreck, till exempel pages=["1-3", "5-6"]. Avgränsa varje sidnummer eller intervall med kommatecken.
Returer
En instans av en LROPoller. Anropa result() på pollerobjektet för att returnera en lista[RecognizedForm].
Returtyp
Undantag
Exempel
Identifiera identitetsdokumentfält.
from azure.core.credentials import AzureKeyCredential
from azure.ai.formrecognizer import FormRecognizerClient
endpoint = os.environ["AZURE_FORM_RECOGNIZER_ENDPOINT"]
key = os.environ["AZURE_FORM_RECOGNIZER_KEY"]
form_recognizer_client = FormRecognizerClient(
endpoint=endpoint, credential=AzureKeyCredential(key)
)
with open(path_to_sample_forms, "rb") as f:
poller = form_recognizer_client.begin_recognize_identity_documents(identity_document=f)
id_documents = poller.result()
for idx, id_document in enumerate(id_documents):
print("--------Recognizing ID document #{}--------".format(idx+1))
first_name = id_document.fields.get("FirstName")
if first_name:
print("First Name: {} has confidence: {}".format(first_name.value, first_name.confidence))
last_name = id_document.fields.get("LastName")
if last_name:
print("Last Name: {} has confidence: {}".format(last_name.value, last_name.confidence))
document_number = id_document.fields.get("DocumentNumber")
if document_number:
print("Document Number: {} has confidence: {}".format(document_number.value, document_number.confidence))
dob = id_document.fields.get("DateOfBirth")
if dob:
print("Date of Birth: {} has confidence: {}".format(dob.value, dob.confidence))
doe = id_document.fields.get("DateOfExpiration")
if doe:
print("Date of Expiration: {} has confidence: {}".format(doe.value, doe.confidence))
sex = id_document.fields.get("Sex")
if sex:
print("Sex: {} has confidence: {}".format(sex.value, sex.confidence))
address = id_document.fields.get("Address")
if address:
print("Address: {} has confidence: {}".format(address.value, address.confidence))
country_region = id_document.fields.get("CountryRegion")
if country_region:
print("Country/Region: {} has confidence: {}".format(country_region.value, country_region.confidence))
region = id_document.fields.get("Region")
if region:
print("Region: {} has confidence: {}".format(region.value, region.confidence))
begin_recognize_identity_documents_from_url
Extrahera fälttext och semantiska värden från ett visst identitetsdokument. Indatadokumentet måste vara platsen (URL) för identitetsdokumentet som ska analyseras.
Se fält som finns i ett identitetsdokument här: https://aka.ms/formrecognizer/iddocumentfields
Ny i version v2.1: klientmetoden begin_recognize_identity_documents_from_url
begin_recognize_identity_documents_from_url(identity_document_url: str, **kwargs: Any) -> LROPoller[List[RecognizedForm]]
Parametrar
- identity_document_url
- str
URL:en för identitetsdokumentet som ska analyseras. Indata måste vara en giltig, kodad URL för något av de format som stöds: JPEG, PNG, PDF, TIFF eller BMP.
- include_field_elements
- bool
Om du vill inkludera alla rader per sida och fältelement, till exempel rader, ord och markeringsmarkeringar för varje formulärfält.
- continuation_token
- str
En fortsättningstoken för att starta om en poller från ett sparat tillstånd.
Anpassade sidnummer för dokument med flera sidor (PDF/TIFF). Ange sidnummer och/eller sidintervall som du vill få i resultatet. För ett sidintervall använder du ett bindestreck, till exempel pages=["1-3", "5-6"]. Avgränsa varje sidnummer eller intervall med kommatecken.
Returer
En instans av en LROPoller. Anropa result() på pollerobjektet för att returnera en lista[RecognizedForm].
Returtyp
Undantag
begin_recognize_invoices
Extrahera fälttext och semantiska värden från en viss faktura. Indatadokumentet måste ha någon av de innehållstyper som stöds – "application/pdf", "image/jpeg", "image/png", "image/tiff" eller "image/bmp".
Se fält som finns på en faktura här: https://aka.ms/formrecognizer/invoicefields
Ny i version v2.1: klientmetoden begin_recognize_invoices
begin_recognize_invoices(invoice: bytes | IO[bytes], **kwargs: Any) -> LROPoller[List[RecognizedForm]]
Parametrar
- locale
- str
Nationella inställningar för fakturan. Språk som stöds är: en-US
- include_field_elements
- bool
Om du vill inkludera alla rader per sida och fältelement, till exempel rader, ord och markeringsmarkeringar för varje formulärfält.
Anpassade sidnummer för dokument med flera sidor (PDF/TIFF). Ange sidnummer och/eller sidintervall som du vill få i resultatet. För ett sidintervall använder du ett bindestreck, till exempel pages=["1-3", "5-6"]. Avgränsa varje sidnummer eller intervall med kommatecken.
- content_type
- str eller FormContentType
Innehållstyp för brödtexten som skickas till API:et. Innehållstypen identifieras automatiskt, men kan åsidosättas genom att det här nyckelordsargumentet skickas. Alternativ finns i FormContentType.
- continuation_token
- str
En fortsättningstoken för att starta om en poller från ett sparat tillstånd.
Returer
En instans av en LROPoller. Anropa result() på pollerobjektet för att returnera en lista[RecognizedForm].
Returtyp
Undantag
Exempel
Identifiera fakturor från en fil.
from azure.core.credentials import AzureKeyCredential
from azure.ai.formrecognizer import FormRecognizerClient
endpoint = os.environ["AZURE_FORM_RECOGNIZER_ENDPOINT"]
key = os.environ["AZURE_FORM_RECOGNIZER_KEY"]
form_recognizer_client = FormRecognizerClient(
endpoint=endpoint, credential=AzureKeyCredential(key)
)
with open(path_to_sample_forms, "rb") as f:
poller = form_recognizer_client.begin_recognize_invoices(invoice=f, locale="en-US")
invoices = poller.result()
for idx, invoice in enumerate(invoices):
print("--------Recognizing invoice #{}--------".format(idx+1))
vendor_name = invoice.fields.get("VendorName")
if vendor_name:
print("Vendor Name: {} has confidence: {}".format(vendor_name.value, vendor_name.confidence))
vendor_address = invoice.fields.get("VendorAddress")
if vendor_address:
print("Vendor Address: {} has confidence: {}".format(vendor_address.value, vendor_address.confidence))
vendor_address_recipient = invoice.fields.get("VendorAddressRecipient")
if vendor_address_recipient:
print("Vendor Address Recipient: {} has confidence: {}".format(vendor_address_recipient.value, vendor_address_recipient.confidence))
customer_name = invoice.fields.get("CustomerName")
if customer_name:
print("Customer Name: {} has confidence: {}".format(customer_name.value, customer_name.confidence))
customer_id = invoice.fields.get("CustomerId")
if customer_id:
print("Customer Id: {} has confidence: {}".format(customer_id.value, customer_id.confidence))
customer_address = invoice.fields.get("CustomerAddress")
if customer_address:
print("Customer Address: {} has confidence: {}".format(customer_address.value, customer_address.confidence))
customer_address_recipient = invoice.fields.get("CustomerAddressRecipient")
if customer_address_recipient:
print("Customer Address Recipient: {} has confidence: {}".format(customer_address_recipient.value, customer_address_recipient.confidence))
invoice_id = invoice.fields.get("InvoiceId")
if invoice_id:
print("Invoice Id: {} has confidence: {}".format(invoice_id.value, invoice_id.confidence))
invoice_date = invoice.fields.get("InvoiceDate")
if invoice_date:
print("Invoice Date: {} has confidence: {}".format(invoice_date.value, invoice_date.confidence))
invoice_total = invoice.fields.get("InvoiceTotal")
if invoice_total:
print("Invoice Total: {} has confidence: {}".format(invoice_total.value, invoice_total.confidence))
due_date = invoice.fields.get("DueDate")
if due_date:
print("Due Date: {} has confidence: {}".format(due_date.value, due_date.confidence))
purchase_order = invoice.fields.get("PurchaseOrder")
if purchase_order:
print("Purchase Order: {} has confidence: {}".format(purchase_order.value, purchase_order.confidence))
billing_address = invoice.fields.get("BillingAddress")
if billing_address:
print("Billing Address: {} has confidence: {}".format(billing_address.value, billing_address.confidence))
billing_address_recipient = invoice.fields.get("BillingAddressRecipient")
if billing_address_recipient:
print("Billing Address Recipient: {} has confidence: {}".format(billing_address_recipient.value, billing_address_recipient.confidence))
shipping_address = invoice.fields.get("ShippingAddress")
if shipping_address:
print("Shipping Address: {} has confidence: {}".format(shipping_address.value, shipping_address.confidence))
shipping_address_recipient = invoice.fields.get("ShippingAddressRecipient")
if shipping_address_recipient:
print("Shipping Address Recipient: {} has confidence: {}".format(shipping_address_recipient.value, shipping_address_recipient.confidence))
print("Invoice items:")
for idx, item in enumerate(invoice.fields.get("Items").value):
print("...Item #{}".format(idx+1))
item_description = item.value.get("Description")
if item_description:
print("......Description: {} has confidence: {}".format(item_description.value, item_description.confidence))
item_quantity = item.value.get("Quantity")
if item_quantity:
print("......Quantity: {} has confidence: {}".format(item_quantity.value, item_quantity.confidence))
unit = item.value.get("Unit")
if unit:
print("......Unit: {} has confidence: {}".format(unit.value, unit.confidence))
unit_price = item.value.get("UnitPrice")
if unit_price:
print("......Unit Price: {} has confidence: {}".format(unit_price.value, unit_price.confidence))
product_code = item.value.get("ProductCode")
if product_code:
print("......Product Code: {} has confidence: {}".format(product_code.value, product_code.confidence))
item_date = item.value.get("Date")
if item_date:
print("......Date: {} has confidence: {}".format(item_date.value, item_date.confidence))
tax = item.value.get("Tax")
if tax:
print("......Tax: {} has confidence: {}".format(tax.value, tax.confidence))
amount = item.value.get("Amount")
if amount:
print("......Amount: {} has confidence: {}".format(amount.value, amount.confidence))
subtotal = invoice.fields.get("SubTotal")
if subtotal:
print("Subtotal: {} has confidence: {}".format(subtotal.value, subtotal.confidence))
total_tax = invoice.fields.get("TotalTax")
if total_tax:
print("Total Tax: {} has confidence: {}".format(total_tax.value, total_tax.confidence))
previous_unpaid_balance = invoice.fields.get("PreviousUnpaidBalance")
if previous_unpaid_balance:
print("Previous Unpaid Balance: {} has confidence: {}".format(previous_unpaid_balance.value, previous_unpaid_balance.confidence))
amount_due = invoice.fields.get("AmountDue")
if amount_due:
print("Amount Due: {} has confidence: {}".format(amount_due.value, amount_due.confidence))
service_start_date = invoice.fields.get("ServiceStartDate")
if service_start_date:
print("Service Start Date: {} has confidence: {}".format(service_start_date.value, service_start_date.confidence))
service_end_date = invoice.fields.get("ServiceEndDate")
if service_end_date:
print("Service End Date: {} has confidence: {}".format(service_end_date.value, service_end_date.confidence))
service_address = invoice.fields.get("ServiceAddress")
if service_address:
print("Service Address: {} has confidence: {}".format(service_address.value, service_address.confidence))
service_address_recipient = invoice.fields.get("ServiceAddressRecipient")
if service_address_recipient:
print("Service Address Recipient: {} has confidence: {}".format(service_address_recipient.value, service_address_recipient.confidence))
remittance_address = invoice.fields.get("RemittanceAddress")
if remittance_address:
print("Remittance Address: {} has confidence: {}".format(remittance_address.value, remittance_address.confidence))
remittance_address_recipient = invoice.fields.get("RemittanceAddressRecipient")
if remittance_address_recipient:
print("Remittance Address Recipient: {} has confidence: {}".format(remittance_address_recipient.value, remittance_address_recipient.confidence))
begin_recognize_invoices_from_url
Extrahera fälttext och semantiska värden från en viss faktura. Indatadokumentet måste vara platsen (URL) för fakturan som ska analyseras.
Se fält som finns på ett fakturakort här: https://aka.ms/formrecognizer/invoicefields
Ny i version v2.1: klientmetoden begin_recognize_invoices_from_url
begin_recognize_invoices_from_url(invoice_url: str, **kwargs: Any) -> LROPoller[List[RecognizedForm]]
Parametrar
- invoice_url
- str
URL:en för fakturan som ska analyseras. Indata måste vara en giltig, kodad URL för något av de format som stöds: JPEG, PNG, PDF, TIFF eller BMP.
- locale
- str
Nationella inställningar för fakturan. Språk som stöds är: en-US
- include_field_elements
- bool
Om du vill inkludera alla rader per sida och fältelement, till exempel rader, ord och markeringsmarkeringar för varje formulärfält.
Anpassade sidnummer för dokument med flera sidor (PDF/TIFF). Ange sidnummer och/eller sidintervall som du vill få i resultatet. För ett sidintervall använder du ett bindestreck, till exempel pages=["1-3", "5-6"]. Avgränsa varje sidnummer eller intervall med kommatecken.
- continuation_token
- str
En fortsättningstoken för att starta om en poller från ett sparat tillstånd.
Returer
En instans av en LROPoller. Anropa result() på pollerobjektet för att returnera en lista[RecognizedForm].
Returtyp
Undantag
begin_recognize_receipts
Extrahera fälttext och semantiska värden från ett givet försäljningskvitto. Indatadokumentet måste ha någon av de innehållstyper som stöds – "application/pdf", "image/jpeg", "image/png", "image/tiff" eller "image/bmp".
Se fält som finns på ett kvitto här: https://aka.ms/formrecognizer/receiptfields
Nytt i version v2.1: Nyckelordsargument för nationella inställningar och sidor och stöd för bild-/bmp-innehåll
begin_recognize_receipts(receipt: bytes | IO[bytes], **kwargs: Any) -> LROPoller[List[RecognizedForm]]
Parametrar
- include_field_elements
- bool
Om du vill inkludera alla rader per sida och fältelement, till exempel rader, ord och markeringsmarkeringar för varje formulärfält.
- content_type
- str eller FormContentType
Innehållstyp för brödtexten som skickas till API:et. Innehållstypen identifieras automatiskt, men kan åsidosättas genom att det här nyckelordsargumentet skickas. Alternativ finns i FormContentType.
- continuation_token
- str
En fortsättningstoken för att starta om en poller från ett sparat tillstånd.
- locale
- str
Nationella inställningar för kvittot. Språk som stöds är: en-US, en-AU, en-CA, en-GB och en-IN.
Anpassade sidnummer för flersidiga dokument (PDF/TIFF). Ange sidnummer och/eller sidintervall som du vill få i resultatet. För ett antal sidor använder du ett bindestreck, t.ex. pages=["1-3", "5-6"]. Avgränsa varje sidnummer eller intervall med ett kommatecken.
Returer
En instans av en LROPoller. Anropa result() på pollerobjektet för att returnera en lista[RecognizedForm].
Returtyp
Undantag
Exempel
Identifiera försäljningskvittofält.
from azure.core.credentials import AzureKeyCredential
from azure.ai.formrecognizer import FormRecognizerClient
endpoint = os.environ["AZURE_FORM_RECOGNIZER_ENDPOINT"]
key = os.environ["AZURE_FORM_RECOGNIZER_KEY"]
form_recognizer_client = FormRecognizerClient(
endpoint=endpoint, credential=AzureKeyCredential(key)
)
with open(path_to_sample_forms, "rb") as f:
poller = form_recognizer_client.begin_recognize_receipts(receipt=f, locale="en-US")
receipts = poller.result()
for idx, receipt in enumerate(receipts):
print("--------Recognizing receipt #{}--------".format(idx+1))
receipt_type = receipt.fields.get("ReceiptType")
if receipt_type:
print("Receipt Type: {} has confidence: {}".format(receipt_type.value, receipt_type.confidence))
merchant_name = receipt.fields.get("MerchantName")
if merchant_name:
print("Merchant Name: {} has confidence: {}".format(merchant_name.value, merchant_name.confidence))
transaction_date = receipt.fields.get("TransactionDate")
if transaction_date:
print("Transaction Date: {} has confidence: {}".format(transaction_date.value, transaction_date.confidence))
if receipt.fields.get("Items"):
print("Receipt items:")
for idx, item in enumerate(receipt.fields.get("Items").value):
print("...Item #{}".format(idx+1))
item_name = item.value.get("Name")
if item_name:
print("......Item Name: {} has confidence: {}".format(item_name.value, item_name.confidence))
item_quantity = item.value.get("Quantity")
if item_quantity:
print("......Item Quantity: {} has confidence: {}".format(item_quantity.value, item_quantity.confidence))
item_price = item.value.get("Price")
if item_price:
print("......Individual Item Price: {} has confidence: {}".format(item_price.value, item_price.confidence))
item_total_price = item.value.get("TotalPrice")
if item_total_price:
print("......Total Item Price: {} has confidence: {}".format(item_total_price.value, item_total_price.confidence))
subtotal = receipt.fields.get("Subtotal")
if subtotal:
print("Subtotal: {} has confidence: {}".format(subtotal.value, subtotal.confidence))
tax = receipt.fields.get("Tax")
if tax:
print("Tax: {} has confidence: {}".format(tax.value, tax.confidence))
tip = receipt.fields.get("Tip")
if tip:
print("Tip: {} has confidence: {}".format(tip.value, tip.confidence))
total = receipt.fields.get("Total")
if total:
print("Total: {} has confidence: {}".format(total.value, total.confidence))
print("--------------------------------------")
begin_recognize_receipts_from_url
Extrahera fälttext och semantiska värden från ett givet försäljningskvitto. Indatadokumentet måste vara platsen (URL) för kvittot som ska analyseras.
Se fält som finns på ett kvitto här: https://aka.ms/formrecognizer/receiptfields
Nytt i version v2.1: Nyckelordsargument för nationella inställningar och sidor och stöd för bild-/bmp-innehåll
begin_recognize_receipts_from_url(receipt_url: str, **kwargs: Any) -> LROPoller[List[RecognizedForm]]
Parametrar
- receipt_url
- str
URL:en för kvittot som ska analyseras. Indata måste vara en giltig, kodad URL för något av de format som stöds: JPEG, PNG, PDF, TIFF eller BMP.
- include_field_elements
- bool
Om du vill inkludera alla rader per sida och fältelement, till exempel rader, ord och markeringsmarkeringar för varje formulärfält.
- continuation_token
- str
En fortsättningstoken för att starta om en poller från ett sparat tillstånd.
- locale
- str
Nationella inställningar för kvittot. Språk som stöds är: en-US, en-AU, en-CA, en-GB och en-IN.
Anpassade sidnummer för flersidiga dokument (PDF/TIFF). Ange sidnummer och/eller sidintervall som du vill få i resultatet. För ett antal sidor använder du ett bindestreck, t.ex. pages=["1-3", "5-6"]. Avgränsa varje sidnummer eller intervall med ett kommatecken.
Returer
En instans av en LROPoller. Anropa result() på pollerobjektet för att returnera en lista[RecognizedForm].
Returtyp
Undantag
Exempel
Identifiera försäljningskvittofält från en URL.
from azure.core.credentials import AzureKeyCredential
from azure.ai.formrecognizer import FormRecognizerClient
endpoint = os.environ["AZURE_FORM_RECOGNIZER_ENDPOINT"]
key = os.environ["AZURE_FORM_RECOGNIZER_KEY"]
form_recognizer_client = FormRecognizerClient(
endpoint=endpoint, credential=AzureKeyCredential(key)
)
url = "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/main/sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/receipt/contoso-receipt.png"
poller = form_recognizer_client.begin_recognize_receipts_from_url(receipt_url=url)
receipts = poller.result()
for idx, receipt in enumerate(receipts):
print("--------Recognizing receipt #{}--------".format(idx+1))
receipt_type = receipt.fields.get("ReceiptType")
if receipt_type:
print("Receipt Type: {} has confidence: {}".format(receipt_type.value, receipt_type.confidence))
merchant_name = receipt.fields.get("MerchantName")
if merchant_name:
print("Merchant Name: {} has confidence: {}".format(merchant_name.value, merchant_name.confidence))
transaction_date = receipt.fields.get("TransactionDate")
if transaction_date:
print("Transaction Date: {} has confidence: {}".format(transaction_date.value, transaction_date.confidence))
if receipt.fields.get("Items"):
print("Receipt items:")
for idx, item in enumerate(receipt.fields.get("Items").value):
print("...Item #{}".format(idx+1))
item_name = item.value.get("Name")
if item_name:
print("......Item Name: {} has confidence: {}".format(item_name.value, item_name.confidence))
item_quantity = item.value.get("Quantity")
if item_quantity:
print("......Item Quantity: {} has confidence: {}".format(item_quantity.value, item_quantity.confidence))
item_price = item.value.get("Price")
if item_price:
print("......Individual Item Price: {} has confidence: {}".format(item_price.value, item_price.confidence))
item_total_price = item.value.get("TotalPrice")
if item_total_price:
print("......Total Item Price: {} has confidence: {}".format(item_total_price.value, item_total_price.confidence))
subtotal = receipt.fields.get("Subtotal")
if subtotal:
print("Subtotal: {} has confidence: {}".format(subtotal.value, subtotal.confidence))
tax = receipt.fields.get("Tax")
if tax:
print("Tax: {} has confidence: {}".format(tax.value, tax.confidence))
tip = receipt.fields.get("Tip")
if tip:
print("Tip: {} has confidence: {}".format(tip.value, tip.confidence))
total = receipt.fields.get("Total")
if total:
print("Total: {} has confidence: {}".format(total.value, total.confidence))
print("--------------------------------------")
close
send_request
Kör en nätverksbegäran med hjälp av klientens befintliga pipeline.
Begärande-URL:en kan vara relativ till bas-URL:en. Den tjänst-API-version som används för begäran är samma som klientens om inget annat anges. Att åsidosätta klientens konfigurerade API-version i relativ URL stöds på klienten med API-version 2022-08-31 och senare. Åsidosätter i absolut URL som stöds på klienten med valfri API-version. Den här metoden utlöser inte om svaret är ett fel. om du vill skapa ett undantag anropar du raise_for_status() på det returnerade svarsobjektet. Mer information om hur du skickar anpassade begäranden med den här metoden finns i https://aka.ms/azsdk/dpcodegen/python/send_request.
send_request(request: HttpRequest, *, stream: bool = False, **kwargs) -> HttpResponse
Parametrar
- stream
- bool
Om svarsnyttolasten kommer att strömmas. Standardvärdet är False.
Returer
Svaret på ditt nätverksanrop. Felhantering sker inte för ditt svar.
Returtyp
Undantag
Azure SDK for Python