FormRecognizerClient Sınıf

FormRecognizerClient, formlardan ve görüntülerden bilgileri yapılandırılmış verilere ayıklar. Önceden oluşturulmuş modellerle (makbuzlar, kartvizitler, faturalar, kimlik belgeleri) analiz etmek, formlardan içeriği/düzeni tanımak ve eğitilen modellerden özel formları analiz etmek için kullanılacak arabirimdir. BIR URL'den girişlere ve bir akıştan girişlere göre farklı yöntemler sağlar.

Not

FormRecognizerClient, =v2.1 API sürümleriyle <kullanılmalıdır.

API'nin 2022-08-31 ve daha yeni sürümlerini kullanmak için bir DocumentAnalysisClient örneği oluşturun.

Devralma
azure.ai.formrecognizer._form_base_client.FormRecognizerClientBase
FormRecognizerClient

Oluşturucu

FormRecognizerClient(endpoint: str, credential: AzureKeyCredential | TokenCredential, **kwargs: Any)

Parametreler

endpoint
str
Gerekli

Desteklenen Bilişsel Hizmetler uç noktaları (protokol ve konak adı, örneğin: https://westus2.api.cognitive.microsoft.com).

credential
AzureKeyCredential veya TokenCredential
Gerekli

İstemcinin Azure'a bağlanması için gereken kimlik bilgileri. Api anahtarı veya belirteç identitykimlik bilgisi kullanılıyorsa, bu AzureKeyCredential örneğidir.

api_version
str veya FormRecognizerApiVersion

İstekler için kullanılacak hizmetin API sürümü. Varsayılan olarak API sürüm v2.1'e ayarlanır. Eski bir sürüme ayar yapmak özellik uyumluluğunu azaltabilir. Desteklenen en son API sürümünü ve özelliklerini kullanmak için bunun yerine bir DocumentAnalysisClient örneği oluşturun.

Örnekler

FormRecognizerClient'ı bir uç nokta ve API anahtarıyla oluşturma.


   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))

Belirteç kimlik bilgileriyle FormRecognizerClient oluşturma.


   """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)

Yöntemler

begin_recognize_business_cards

Belirli bir kartvizitten alan metnini ve anlam değerlerini ayıklayın. Giriş belgesi desteklenen içerik türlerinden biri olmalıdır: 'application/pdf', 'image/jpeg', 'image/png', 'image/tiff' veya 'image/bmp'.

Kartvizitte bulunan alanları burada görebilirsiniz: https://aka.ms/formrecognizer/businesscardfields

Sürüm v2.1'de yeni: begin_recognize_business_cards istemci yöntemi

begin_recognize_business_cards_from_url

Belirli bir kartvizitten alan metnini ve anlam değerlerini ayıklayın. Giriş belgesi, analiz edilecek kartın konumu (URL) olmalıdır.

Kartvizitte bulunan alanları burada görebilirsiniz: https://aka.ms/formrecognizer/businesscardfields

Sürüm v2.1'de yeni: begin_recognize_business_cards_from_url istemci yöntemi

begin_recognize_content

Belirli bir belgeden metin ve içerik/düzen bilgilerini ayıklayın. Giriş belgesi desteklenen içerik türlerinden biri olmalıdır: 'application/pdf', 'image/jpeg', 'image/png', 'image/tiff' veya 'image/bmp'.

Sürüm v2.1'de yeni: Sayfalar, dil ve reading_order anahtar sözcük bağımsız değişkenleri ve image/bmp içeriği desteği

begin_recognize_content_from_url

Belirli bir belgeden metin ve düzen bilgilerini ayıklayın. Giriş belgesi, analiz edilecek belgenin konumu (URL) olmalıdır.

Sürüm v2.1'de yeni: Sayfalar, dil ve reading_order anahtar sözcük bağımsız değişkenleri ve image/bmp içeriği desteği

begin_recognize_custom_forms

Etiketlerle veya etiketler olmadan eğitilmiş bir modelle özel formu analiz edin. Analiz edilecek form, modeli eğitmek için kullanılan formlar ile aynı türde olmalıdır. Giriş belgesi desteklenen içerik türlerinden biri olmalıdır: 'application/pdf', 'image/jpeg', 'image/png', 'image/tiff' veya 'image/bmp'.

begin_recognize_custom_forms_from_url

Etiketlerle veya etiketler olmadan eğitilmiş bir modelle özel formu analiz edin. Analiz edilecek form, modeli eğitmek için kullanılan formlar ile aynı türde olmalıdır. Giriş belgesi, analiz edilecek belgenin konumu (URL) olmalıdır.

begin_recognize_identity_documents

Belirli bir kimlik belgesinden alan metnini ve anlam değerlerini ayıklayın. Giriş belgesi desteklenen içerik türlerinden biri olmalıdır: 'application/pdf', 'image/jpeg', 'image/png', 'image/tiff' veya 'image/bmp'.

Kimlik belgesinde bulunan alanlara buradan bakın: https://aka.ms/formrecognizer/iddocumentfields

Sürüm v2.1'de yeni: begin_recognize_identity_documents istemci yöntemi

begin_recognize_identity_documents_from_url

Belirli bir kimlik belgesinden alan metnini ve anlam değerlerini ayıklayın. Giriş belgesi, analiz edilecek kimlik belgesinin konumu (URL) olmalıdır.

Kimlik belgesinde bulunan alanlara buradan bakın: https://aka.ms/formrecognizer/iddocumentfields

Sürüm v2.1'de yeni: begin_recognize_identity_documents_from_url istemci yöntemi

begin_recognize_invoices

Belirli bir faturadaki alan metnini ve anlam değerlerini ayıklayın. Giriş belgesi desteklenen içerik türlerinden biri olmalıdır: 'application/pdf', 'image/jpeg', 'image/png', 'image/tiff' veya 'image/bmp'.

Faturada bulunan alanlara buradan bakın: https://aka.ms/formrecognizer/invoicefields

Sürüm v2.1'de yeni: begin_recognize_invoices istemci yöntemi

begin_recognize_invoices_from_url

Belirli bir faturadaki alan metnini ve anlam değerlerini ayıklayın. Giriş belgesi, analiz edilecek faturanın konumu (URL) olmalıdır.

Fatura kartında bulunan alanlara buradan bakın: https://aka.ms/formrecognizer/invoicefields

Sürüm v2.1'de yeni: begin_recognize_invoices_from_url istemci yöntemi

begin_recognize_receipts

Belirli bir satış alış irsaliyesinden alan metnini ve anlam değerlerini ayıklayın. Giriş belgesi desteklenen içerik türlerinden biri olmalıdır: 'application/pdf', 'image/jpeg', 'image/png', 'image/tiff' veya 'image/bmp'.

Makbuzda bulunan alanlara buradan bakın: https://aka.ms/formrecognizer/receiptfields

Sürüm v2.1'de yeni: Yerel ayar ve sayfalar anahtar sözcük bağımsız değişkenleri ve görüntü/bmp içeriği desteği

begin_recognize_receipts_from_url

Belirli bir satış alış irsaliyesinden alan metnini ve anlam değerlerini ayıklayın. Giriş belgesi, analiz edilecek makbuzun konumu (URL) olmalıdır.

Makbuzda bulunan alanlara buradan bakın: https://aka.ms/formrecognizer/receiptfields

Sürüm v2.1'de yeni: Yerel ayar ve sayfalar anahtar sözcük bağımsız değişkenleri ve görüntü/bmp içeriği desteği

close

FormRecognizerClient Oturumu kapatın.

send_request

İstemcinin mevcut işlem hattını kullanarak bir ağ isteği çalıştırır.

İstek URL'si temel URL'ye göre olabilir. İstek için kullanılan hizmet API'sinin sürümü, aksi belirtilmedikçe istemcinin sürümüyle aynıdır. İstemcinin yapılandırılmış API sürümünü göreli URL'de geçersiz kılma, 2022-08-31 ve üzeri API sürümüne sahip istemcide desteklenir. herhangi bir API sürümüyle istemcide desteklenen mutlak URL'yi geçersiz kılma. Yanıt bir hataysa bu yöntem tetiklenmez; özel durum tetikleyemek için döndürülen yanıt nesnesinde raise_for_status() öğesini çağırın. Bu yöntemle özel istek gönderme hakkında daha fazla bilgi için bkz https://aka.ms/azsdk/dpcodegen/python/send_request. .

begin_recognize_business_cards

Belirli bir kartvizitten alan metnini ve anlam değerlerini ayıklayın. Giriş belgesi desteklenen içerik türlerinden biri olmalıdır: 'application/pdf', 'image/jpeg', 'image/png', 'image/tiff' veya 'image/bmp'.

Kartvizitte bulunan alanları burada görebilirsiniz: https://aka.ms/formrecognizer/businesscardfields

Sürüm v2.1'de yeni: begin_recognize_business_cards istemci yöntemi

begin_recognize_business_cards(business_card: bytes | IO[bytes], **kwargs: Any) -> LROPoller[List[RecognizedForm]]

Parametreler

business_card
bytes veya IO[bytes]
Gerekli

JPEG, PNG, PDF, TIFF veya BMP türü dosya akışı veya bayt.

locale
str

Kartvizitin yerel ayarı. Desteklenen yerel ayarlar şunlardır: en-US, en-AU, en-CA, en-GB ve en-IN.

include_field_elements
bool

Sayfa başına tüm satırların ve her form alanı için satırlar, sözcükler ve seçim işaretleri gibi alan öğelerinin dahil edilip edilmeyeceği.

pages
list[str]

Çok sayfalı belgeler (PDF/TIFF) için özel sayfa numaraları. Sonuçta elde etmek istediğiniz sayfa numaralarını ve/veya sayfa aralıklarını girin. Bir sayfa aralığı için pages =["1-3", "5-6"] gibi bir kısa çizgi kullanın. Her sayfa numarasını veya aralığı virgülle ayırın.

content_type
str veya FormContentType

API'ye gönderilen gövdenin içerik türü. İçerik türü otomatik olarak algılanır, ancak bu anahtar sözcük bağımsız değişkeni geçirilerek geçersiz kılınabilir. Seçenekler için bkz FormContentType. .

continuation_token
str

Bir poller'ı kaydedilmiş durumdan yeniden başlatmak için bir devamlılık belirteci.

Döndürülenler

LROPoller örneği. Liste[RecognizedForm] döndürmek için poller nesnesinde result() öğesini çağırın.

Dönüş türü

Özel durumlar

Örnekler

Bir dosyadan kartvizitleri tanıma.


   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

Belirli bir kartvizitten alan metnini ve anlam değerlerini ayıklayın. Giriş belgesi, analiz edilecek kartın konumu (URL) olmalıdır.

Kartvizitte bulunan alanları burada görebilirsiniz: https://aka.ms/formrecognizer/businesscardfields

Sürüm v2.1'de yeni: begin_recognize_business_cards_from_url istemci yöntemi

begin_recognize_business_cards_from_url(business_card_url: str, **kwargs: Any) -> LROPoller[List[RecognizedForm]]

Parametreler

business_card_url
str
Gerekli

Analiz etmek için kartvizitin URL'si. Giriş, desteklenen biçimlerden birinin geçerli, kodlanmış BIR URL'si olmalıdır: JPEG, PNG, PDF, TIFF veya BMP.

locale
str

Kartvizitin yerel ayarı. Desteklenen yerel ayarlar şunlardır: en-US, en-AU, en-CA, en-GB ve en-IN.

include_field_elements
bool

Sayfa başına tüm satırların ve her form alanı için satırlar, sözcükler ve seçim işaretleri gibi alan öğelerinin dahil edilip edilmeyeceği.

pages
list[str]

Çok sayfalı belgeler (PDF/TIFF) için özel sayfa numaraları. Sonuçta elde etmek istediğiniz sayfa numaralarını ve/veya sayfa aralıklarını girin. Bir sayfa aralığı için pages =["1-3", "5-6"] gibi bir kısa çizgi kullanın. Her sayfa numarasını veya aralığı virgülle ayırın.

continuation_token
str

Bir poller'ı kaydedilmiş durumdan yeniden başlatmak için bir devamlılık belirteci.

Döndürülenler

LROPoller örneği. Liste[RecognizedForm] döndürmek için poller nesnesinde result() öğesini çağırın.

Dönüş türü

Özel durumlar

begin_recognize_content

Belirli bir belgeden metin ve içerik/düzen bilgilerini ayıklayın. Giriş belgesi desteklenen içerik türlerinden biri olmalıdır: 'application/pdf', 'image/jpeg', 'image/png', 'image/tiff' veya 'image/bmp'.

Sürüm v2.1'de yeni: Sayfalar, dil ve reading_order anahtar sözcük bağımsız değişkenleri ve image/bmp içeriği desteği

begin_recognize_content(form: bytes | IO[bytes], **kwargs: Any) -> LROPoller[List[FormPage]]

Parametreler

form
bytes veya IO[bytes]
Gerekli

JPEG, PNG, PDF, TIFF veya BMP türü dosya akışı veya bayt.

pages
list[str]

Çok sayfalı belgeler (PDF/TIFF) için özel sayfa numaraları. Sonuçta elde etmek istediğiniz sayfa numaralarını ve/veya sayfa aralıklarını girin. Bir sayfa aralığı için pages =["1-3", "5-6"] gibi bir kısa çizgi kullanın. Her sayfa numarasını veya aralığı virgülle ayırın.

language
str

Belgedeki metnin BCP-47 dil kodu. Desteklenen dil kodları için buraya bakın: https://docs.microsoft.com/azure/cognitive-services/form-recognizer/language-support. İçerik, otomatik dil tanımlamayı ve çok dilli belgeleri destekler, bu nedenle yalnızca belgenin belirli bir dil olarak işlenmesini zorlamak istiyorsanız bir dil kodu sağlayın.

reading_order
str

Döndürülen metin satırlarını sıralamak için okuma düzeni algoritması. Desteklenen okuma siparişleri şunlardır: temel (varsayılan), doğal. Bazı durumlarda yakınlık daha yüksek öncelikle ele alınsa da, satırları soldan sağa ve yukarıdan aşağıya doğru sıralamak için 'temel'i ayarlayın. Yakınlardaki satırları bir arada tutmak için konum bilgilerini kullanarak çizgileri sıralamak için 'doğal' değerini ayarlayın.

content_type
str veya FormContentType

API'ye gönderilen gövdenin içerik türü. İçerik türü otomatik olarak algılanır, ancak bu anahtar sözcük bağımsız değişkeni geçirilerek geçersiz kılınabilir. Seçenekler için bkz FormContentType. .

continuation_token
str

Bir poller'ı kaydedilmiş durumdan yeniden başlatmak için bir devamlılık belirteci.

Döndürülenler

LROPoller örneği. Liste[FormPage] döndürmek için poller nesnesinde result() öğesini çağırın.

Dönüş türü

Özel durumlar

Örnekler

Formdan metin ve içerik/düzen bilgilerini tanıma.


   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

Belirli bir belgeden metin ve düzen bilgilerini ayıklayın. Giriş belgesi, analiz edilecek belgenin konumu (URL) olmalıdır.

Sürüm v2.1'de yeni: Sayfalar, dil ve reading_order anahtar sözcük bağımsız değişkenleri ve image/bmp içeriği desteği

begin_recognize_content_from_url(form_url: str, **kwargs: Any) -> LROPoller[List[FormPage]]

Parametreler

form_url
str
Gerekli

Analiz için formun URL'si. Giriş, desteklenen biçimlerden birinin geçerli, kodlanmış BIR URL'si olmalıdır: JPEG, PNG, PDF, TIFF veya BMP.

pages
list[str]

Çok sayfalı belgeler (PDF/TIFF) için özel sayfa numaraları. Sonuçta elde etmek istediğiniz sayfa numaralarını ve/veya sayfa aralıklarını girin. Bir sayfa aralığı için pages =["1-3", "5-6"] gibi bir kısa çizgi kullanın. Her sayfa numarasını veya aralığı virgülle ayırın.

language
str

Belgedeki metnin BCP-47 dil kodu. Desteklenen dil kodları için buraya bakın: https://docs.microsoft.com/azure/cognitive-services/form-recognizer/language-support. İçerik, otomatik dil tanımlamayı ve çok dilli belgeleri destekler, bu nedenle yalnızca belgenin belirli bir dil olarak işlenmesini zorlamak istiyorsanız bir dil kodu sağlayın.

reading_order
str

Döndürülen metin satırlarını sıralamak için okuma düzeni algoritması. Desteklenen okuma siparişleri şunlardır: temel (varsayılan), doğal. Bazı durumlarda yakınlık daha yüksek öncelikle ele alınsa da, satırları soldan sağa ve yukarıdan aşağıya doğru sıralamak için 'temel'i ayarlayın. Yakınlardaki satırları bir arada tutmak için konum bilgilerini kullanarak çizgileri sıralamak için 'doğal' değerini ayarlayın.

continuation_token
str

Bir poller'ı kaydedilmiş durumdan yeniden başlatmak için bir devamlılık belirteci.

Döndürülenler

LROPoller örneği. Liste[FormPage] döndürmek için poller nesnesinde result() öğesini çağırın.

Dönüş türü

Özel durumlar

begin_recognize_custom_forms

Etiketlerle veya etiketler olmadan eğitilmiş bir modelle özel formu analiz edin. Analiz edilecek form, modeli eğitmek için kullanılan formlar ile aynı türde olmalıdır. Giriş belgesi desteklenen içerik türlerinden biri olmalıdır: 'application/pdf', 'image/jpeg', 'image/png', 'image/tiff' veya 'image/bmp'.

begin_recognize_custom_forms(model_id: str, form: bytes | IO[bytes], **kwargs: Any) -> LROPoller[List[RecognizedForm]]

Parametreler

model_id
str
Gerekli

Özel model tanımlayıcısı.

form
bytes veya IO[bytes]
Gerekli

JPEG, PNG, PDF, TIFF veya BMP türü dosya akışı veya bayt.

include_field_elements
bool

Sayfa başına tüm satırların ve her form alanı için satırlar, sözcükler ve seçim işaretleri gibi alan öğelerinin dahil edilip edilmeyeceği.

content_type
str veya FormContentType

API'ye gönderilen gövdenin içerik türü. İçerik türü otomatik olarak algılanır, ancak bu anahtar sözcük bağımsız değişkeni geçirilerek geçersiz kılınabilir. Seçenekler için bkz FormContentType. .

pages
list[str]

Çok sayfalı belgeler için özel sayfa numaraları (PDF/TIFF). Sonuçta elde etmek istediğiniz sayfa numaralarını ve/veya sayfa aralıklarını girin. Bir sayfa aralığı için pages =["1-3", "5-6"] gibi bir kısa çizgi kullanın. Her sayfa numarasını veya aralığını virgülle ayırın.

continuation_token
str

Bir poller'ı kaydedilmiş durumdan yeniden başlatmak için bir devamlılık belirteci.

Döndürülenler

LROPoller örneği. Liste[RecognizedForm] döndürmek için poller nesnesinde result() öğesini çağırın.

Dönüş türü

Özel durumlar

Örnekler

Özel formdaki alanları ve değerleri tanıma.


   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

Etiketlerle veya etiketler olmadan eğitilmiş bir modelle özel formu analiz edin. Analiz edilecek form, modeli eğitmek için kullanılan formlar ile aynı türde olmalıdır. Giriş belgesi, analiz edilecek belgenin konumu (URL) olmalıdır.

begin_recognize_custom_forms_from_url(model_id: str, form_url: str, **kwargs: Any) -> LROPoller[List[RecognizedForm]]

Parametreler

model_id
str
Gerekli

Özel model tanımlayıcısı.

form_url
str
Gerekli

Analiz için formun URL'si. Giriş, desteklenen biçimlerden birinin geçerli, kodlanmış BIR URL'si olmalıdır: JPEG, PNG, PDF, TIFF veya BMP.

include_field_elements
bool

Sayfa başına tüm satırların ve her form alanı için satırlar, sözcükler ve seçim işaretleri gibi alan öğelerinin dahil edilip edilmeyeceği.

pages
list[str]

Çok sayfalı belgeler için özel sayfa numaraları (PDF/TIFF). Sonuçta elde etmek istediğiniz sayfa numaralarını ve/veya sayfa aralıklarını girin. Bir sayfa aralığı için pages =["1-3", "5-6"] gibi bir kısa çizgi kullanın. Her sayfa numarasını veya aralığını virgülle ayırın.

continuation_token
str

Bir poller'ı kaydedilmiş durumdan yeniden başlatmak için bir devamlılık belirteci.

Döndürülenler

LROPoller örneği. Liste[RecognizedForm] döndürmek için poller nesnesinde result() öğesini çağırın.

Dönüş türü

Özel durumlar

begin_recognize_identity_documents

Belirli bir kimlik belgesinden alan metnini ve anlam değerlerini ayıklayın. Giriş belgesi desteklenen içerik türlerinden biri olmalıdır: 'application/pdf', 'image/jpeg', 'image/png', 'image/tiff' veya 'image/bmp'.

Kimlik belgesinde bulunan alanlara buradan bakın: https://aka.ms/formrecognizer/iddocumentfields

Sürüm v2.1'de yeni: begin_recognize_identity_documents istemci yöntemi

begin_recognize_identity_documents(identity_document: bytes | IO[bytes], **kwargs: Any) -> LROPoller[List[RecognizedForm]]

Parametreler

identity_document
bytes veya IO[bytes]
Gerekli

JPEG, PNG, PDF, TIFF veya BMP türü dosya akışı veya bayt.

include_field_elements
bool

Sayfa başına tüm satırların ve her form alanı için satırlar, sözcükler ve seçim işaretleri gibi alan öğelerinin dahil edilip edilmeyeceği.

content_type
str veya FormContentType

API'ye gönderilen gövdenin içerik türü. İçerik türü otomatik olarak algılanır, ancak bu anahtar sözcük bağımsız değişkeni geçirilerek geçersiz kılınabilir. Seçenekler için bkz FormContentType. .

continuation_token
str

Bir poller'ı kaydedilmiş durumdan yeniden başlatmak için bir devamlılık belirteci.

pages
list[str]

Çok sayfalı belgeler için özel sayfa numaraları (PDF/TIFF). Sonuçta elde etmek istediğiniz sayfa numaralarını ve/veya sayfa aralıklarını girin. Bir sayfa aralığı için pages =["1-3", "5-6"] gibi bir kısa çizgi kullanın. Her sayfa numarasını veya aralığını virgülle ayırın.

Döndürülenler

LROPoller örneği. Liste[RecognizedForm] döndürmek için poller nesnesinde result() öğesini çağırın.

Dönüş türü

Özel durumlar

Örnekler

Kimlik belgesi alanlarını tanıma.


   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

Belirli bir kimlik belgesinden alan metnini ve anlam değerlerini ayıklayın. Giriş belgesi, analiz edilecek kimlik belgesinin konumu (URL) olmalıdır.

Kimlik belgesinde bulunan alanlara buradan bakın: https://aka.ms/formrecognizer/iddocumentfields

Sürüm v2.1'de yeni: begin_recognize_identity_documents_from_url istemci yöntemi

begin_recognize_identity_documents_from_url(identity_document_url: str, **kwargs: Any) -> LROPoller[List[RecognizedForm]]

Parametreler

identity_document_url
str
Gerekli

Analiz etmek için kimlik belgesinin URL'si. Giriş, desteklenen biçimlerden birinin geçerli, kodlanmış BIR URL'si olmalıdır: JPEG, PNG, PDF, TIFF veya BMP.

include_field_elements
bool

Sayfa başına tüm satırların ve her form alanı için satırlar, sözcükler ve seçim işaretleri gibi alan öğelerinin dahil edilip edilmeyeceği.

continuation_token
str

Bir poller'ı kaydedilmiş durumdan yeniden başlatmak için bir devamlılık belirteci.

pages
list[str]

Çok sayfalı belgeler için özel sayfa numaraları (PDF/TIFF). Sonuçta elde etmek istediğiniz sayfa numaralarını ve/veya sayfa aralıklarını girin. Bir sayfa aralığı için pages =["1-3", "5-6"] gibi bir kısa çizgi kullanın. Her sayfa numarasını veya aralığını virgülle ayırın.

Döndürülenler

LROPoller örneği. Liste[RecognizedForm] döndürmek için poller nesnesinde result() öğesini çağırın.

Dönüş türü

Özel durumlar

begin_recognize_invoices

Belirli bir faturadaki alan metnini ve anlam değerlerini ayıklayın. Giriş belgesi desteklenen içerik türlerinden biri olmalıdır: 'application/pdf', 'image/jpeg', 'image/png', 'image/tiff' veya 'image/bmp'.

Faturada bulunan alanlara buradan bakın: https://aka.ms/formrecognizer/invoicefields

Sürüm v2.1'de yeni: begin_recognize_invoices istemci yöntemi

begin_recognize_invoices(invoice: bytes | IO[bytes], **kwargs: Any) -> LROPoller[List[RecognizedForm]]

Parametreler

invoice
bytes veya IO[bytes]
Gerekli

JPEG, PNG, PDF, TIFF veya BMP türü dosya akışı veya bayt.

locale
str

Faturanın yerel ayarı. Desteklenen yerel ayarlar şunlardır: en-US

include_field_elements
bool

Sayfa başına tüm satırların ve her form alanı için satırlar, sözcükler ve seçim işaretleri gibi alan öğelerinin dahil edilip edilmeyeceği.

pages
list[str]

Çok sayfalı belgeler için özel sayfa numaraları (PDF/TIFF). Sonuçta elde etmek istediğiniz sayfa numaralarını ve/veya sayfa aralıklarını girin. Bir sayfa aralığı için pages =["1-3", "5-6"] gibi bir kısa çizgi kullanın. Her sayfa numarasını veya aralığını virgülle ayırın.

content_type
str veya FormContentType

API'ye gönderilen gövdenin içerik türü. İçerik türü otomatik olarak algılanır, ancak bu anahtar sözcük bağımsız değişkeni geçirilerek geçersiz kılınabilir. Seçenekler için bkz FormContentType. .

continuation_token
str

Bir poller'ı kaydedilmiş durumdan yeniden başlatmak için bir devamlılık belirteci.

Döndürülenler

LROPoller örneği. Liste[RecognizedForm] döndürmek için poller nesnesinde result() öğesini çağırın.

Dönüş türü

Özel durumlar

Örnekler

Bir dosyadan faturaları tanıma.


   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

Belirli bir faturadaki alan metnini ve anlam değerlerini ayıklayın. Giriş belgesi, analiz edilecek faturanın konumu (URL) olmalıdır.

Fatura kartında bulunan alanlara buradan bakın: https://aka.ms/formrecognizer/invoicefields

Sürüm v2.1'de yeni: begin_recognize_invoices_from_url istemci yöntemi

begin_recognize_invoices_from_url(invoice_url: str, **kwargs: Any) -> LROPoller[List[RecognizedForm]]

Parametreler

invoice_url
str
Gerekli

Analiz etmek için faturanın URL'si. Giriş, desteklenen biçimlerden birinin geçerli, kodlanmış BIR URL'si olmalıdır: JPEG, PNG, PDF, TIFF veya BMP.

locale
str

Faturanın yerel ayarı. Desteklenen yerel ayarlar şunlardır: en-US

include_field_elements
bool

Sayfa başına tüm satırların ve her form alanı için satırlar, sözcükler ve seçim işaretleri gibi alan öğelerinin dahil edilip edilmeyeceği.

pages
list[str]

Çok sayfalı belgeler için özel sayfa numaraları (PDF/TIFF). Sonuçta elde etmek istediğiniz sayfa numaralarını ve/veya sayfa aralıklarını girin. Bir sayfa aralığı için pages =["1-3", "5-6"] gibi bir kısa çizgi kullanın. Her sayfa numarasını veya aralığını virgülle ayırın.

continuation_token
str

Bir poller'ı kaydedilmiş durumdan yeniden başlatmak için bir devamlılık belirteci.

Döndürülenler

LROPoller örneği. Liste[RecognizedForm] döndürmek için poller nesnesinde result() öğesini çağırın.

Dönüş türü

Özel durumlar

begin_recognize_receipts

Belirli bir satış alış irsaliyesinden alan metnini ve anlam değerlerini ayıklayın. Giriş belgesi desteklenen içerik türlerinden biri olmalıdır: 'application/pdf', 'image/jpeg', 'image/png', 'image/tiff' veya 'image/bmp'.

Makbuzda bulunan alanlara buradan bakın: https://aka.ms/formrecognizer/receiptfields

Sürüm v2.1'de yeni: Yerel ayar ve sayfalar anahtar sözcük bağımsız değişkenleri ve görüntü/bmp içeriği desteği

begin_recognize_receipts(receipt: bytes | IO[bytes], **kwargs: Any) -> LROPoller[List[RecognizedForm]]

Parametreler

receipt
bytes veya IO[bytes]
Gerekli

JPEG, PNG, PDF, TIFF veya BMP türü dosya akışı veya bayt.

include_field_elements
bool

Sayfa başına tüm satırların ve her form alanı için satırlar, sözcükler ve seçim işaretleri gibi alan öğelerinin dahil edilip edilmeyeceği.

content_type
str veya FormContentType

API'ye gönderilen gövdenin içerik türü. İçerik türü otomatik olarak algılanır, ancak bu anahtar sözcük bağımsız değişkeni geçirilerek geçersiz kılınabilir. Seçenekler için bkz FormContentType. .

continuation_token
str

Bir poller'ı kaydedilmiş durumdan yeniden başlatmak için bir devamlılık belirteci.

locale
str

Makbuzun yerel ayarı. Desteklenen yerel ayarlar şunlardır: en-US, en-AU, en-CA, en-GB ve en-IN.

pages
list[str]

Çok sayfalı belgeler için özel sayfa numaraları (PDF/TIFF). Sonuçta elde etmek istediğiniz sayfa numaralarını ve/veya sayfa aralıklarını girin. Bir sayfa aralığı için pages =["1-3", "5-6"] gibi bir kısa çizgi kullanın. Her sayfa numarasını veya aralığını virgülle ayırın.

Döndürülenler

LROPoller örneği. Liste[RecognizedForm] döndürmek için poller nesnesinde result() öğesini çağırın.

Dönüş türü

Özel durumlar

Örnekler

Satış makbuzu alanlarını tanıma.


   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

Belirli bir satış alış irsaliyesinden alan metnini ve anlam değerlerini ayıklayın. Giriş belgesi, analiz edilecek makbuzun konumu (URL) olmalıdır.

Makbuzda bulunan alanlara buradan bakın: https://aka.ms/formrecognizer/receiptfields

Sürüm v2.1'de yeni: Yerel ayar ve sayfalar anahtar sözcük bağımsız değişkenleri ve görüntü/bmp içeriği desteği

begin_recognize_receipts_from_url(receipt_url: str, **kwargs: Any) -> LROPoller[List[RecognizedForm]]

Parametreler

receipt_url
str
Gerekli

Analiz için alındı bilgisinin URL'si. Giriş, desteklenen biçimlerden birinin geçerli, kodlanmış BIR URL'si olmalıdır: JPEG, PNG, PDF, TIFF veya BMP.

include_field_elements
bool

Sayfa başına tüm satırların ve her form alanı için satırlar, sözcükler ve seçim işaretleri gibi alan öğelerinin dahil edilip edilmeyeceği.

continuation_token
str

Bir poller'ı kaydedilmiş durumdan yeniden başlatmak için bir devamlılık belirteci.

locale
str

Makbuzun yerel ayarı. Desteklenen yerel ayarlar şunlardır: en-US, en-AU, en-CA, en-GB ve en-IN.

pages
list[str]

Çok sayfalı belgeler için özel sayfa numaraları (PDF/TIFF). Sonuçta elde etmek istediğiniz sayfa numaralarını ve/veya sayfa aralıklarını girin. Bir sayfa aralığı için pages =["1-3", "5-6"] gibi bir kısa çizgi kullanın. Her sayfa numarasını veya aralığını virgülle ayırın.

Döndürülenler

LROPoller örneği. Liste[RecognizedForm] döndürmek için poller nesnesinde result() öğesini çağırın.

Dönüş türü

Özel durumlar

Örnekler

BIR URL'den satış makbuzu alanlarını tanıma.


   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

FormRecognizerClient Oturumu kapatın.

close() -> None

Özel durumlar

send_request

İstemcinin mevcut işlem hattını kullanarak bir ağ isteği çalıştırır.

İstek URL'si temel URL'ye göre olabilir. İstek için kullanılan hizmet API'sinin sürümü, aksi belirtilmedikçe istemcinin sürümüyle aynıdır. İstemcinin yapılandırılmış API sürümünü göreli URL'de geçersiz kılma, 2022-08-31 ve üzeri API sürümüne sahip istemcide desteklenir. herhangi bir API sürümüyle istemcide desteklenen mutlak URL'yi geçersiz kılma. Yanıt bir hataysa bu yöntem tetiklenmez; özel durum tetikleyemek için döndürülen yanıt nesnesinde raise_for_status() öğesini çağırın. Bu yöntemle özel istek gönderme hakkında daha fazla bilgi için bkz https://aka.ms/azsdk/dpcodegen/python/send_request. .

send_request(request: HttpRequest, *, stream: bool = False, **kwargs) -> HttpResponse

Parametreler

request
HttpRequest
Gerekli

Yapmak istediğiniz ağ isteği.

stream
bool

Yanıt yükünün akışla aktarılıp aktarılmayacağı. Varsayılan değer False'tur.

Döndürülenler

Ağ çağrınızın yanıtı. Yanıtınızda hata işleme yapmaz.

Dönüş türü

Özel durumlar