Udostępnij za pośrednictwem


FormTrainingClient Klasa

FormTrainingClient to interfejs Form Recognizer używany do tworzenia modeli niestandardowych i zarządzania nimi. Udostępnia metody trenowania modeli w formularzach, które udostępniasz, a także metody wyświetlania i usuwania modeli, uzyskiwania dostępu do właściwości konta, kopiowania modeli do innego zasobu Form Recognizer i tworzenia modeli z kolekcji istniejących modeli wyszkolonych za pomocą etykiet.

Uwaga

Obiekt FormTrainingClient powinien być używany z wersjami interfejsu <API =v2.1.

Aby użyć interfejsu API w wersji 2022-08-31 i nowszej, utwórz wystąpienie elementu DocumentModelAdministrationClient.

Dziedziczenie
azure.ai.formrecognizer.aio._form_base_client_async.FormRecognizerClientBaseAsync
FormTrainingClient

Konstruktor

FormTrainingClient(endpoint: str, credential: AzureKeyCredential | AsyncTokenCredential, **kwargs: Any)

Parametry

endpoint
str
Wymagane

Obsługiwane punkty końcowe usług Cognitive Services (protokół i nazwa hosta, na przykład: https://westus2.api.cognitive.microsoft.com).

credential
AzureKeyCredential lub AsyncTokenCredential
Wymagane

Poświadczenia wymagane do nawiązania połączenia z platformą Azure przez klienta. Jest to wystąpienie obiektu AzureKeyCredential, jeśli używasz klucza interfejsu API lub poświadczeń tokenu z usługi identity.

api_version
str lub FormRecognizerApiVersion

Wersja interfejsu API usługi do użycia dla żądań. Domyślnie jest to interfejs API w wersji 2.1. Ustawienie starszej wersji może spowodować zmniejszenie zgodności funkcji. Aby użyć najnowszej obsługiwanej wersji interfejsu API i funkcji, zamiast tego utwórz wystąpienie klasy DocumentModelAdministrationClient.

Przykłady

Tworzenie elementu FormTrainingClient przy użyciu punktu końcowego i klucza interfejsu API.


   from azure.core.credentials import AzureKeyCredential
   from azure.ai.formrecognizer.aio import FormTrainingClient
   endpoint = os.environ["AZURE_FORM_RECOGNIZER_ENDPOINT"]
   key = os.environ["AZURE_FORM_RECOGNIZER_KEY"]

   form_training_client = FormTrainingClient(endpoint, AzureKeyCredential(key))

Tworzenie elementu FormTrainingClient przy użyciu poświadczeń tokenu.


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

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

   form_training_client = FormTrainingClient(endpoint, credential)

Metody

begin_copy_model

Skopiuj model niestandardowy przechowywany w tym zasobie (źródle) do określonego przez użytkownika docelowego zasobu Form Recognizer. Należy to wywołać za pomocą zasobu Form Recognizer źródłowego (z modelem, który ma zostać skopiowany). Parametr docelowy powinien zostać dostarczony z danych wyjściowych zasobu docelowego z wywołania get_copy_authorization metody .

begin_create_composed_model

Tworzy utworzony model na podstawie kolekcji istniejących modeli, które zostały wytrenowane za pomocą etykiet.

Skomponowany model umożliwia wywoływanie wielu modeli przy użyciu jednego identyfikatora modelu. Po przesłaniu dokumentu do analizy za pomocą złożonego identyfikatora modelu najpierw jest wykonywany krok klasyfikacji w celu kierowania go do prawidłowego modelu niestandardowego.

Nowość w wersji 2.1: metoda klienta begin_create_composed_model

begin_training

Tworzenie i trenowanie modelu niestandardowego. Żądanie musi zawierać parametr training_files_url , który jest identyfikatorem URI kontenera obiektów blob usługi Azure Storage dostępnym zewnętrznie (najlepiej identyfikatorem URI sygnatury dostępu współdzielonego). Pamiętaj, że identyfikator URI kontenera (bez sygnatury dostępu współdzielonego) jest akceptowany tylko wtedy, gdy kontener jest publiczny lub ma skonfigurowaną tożsamość zarządzaną, zobacz więcej o konfigurowaniu tożsamości zarządzanych do pracy z Form Recognizer tutaj: https://docs.microsoft.com/azure/applied-ai-services/form-recognizer/managed-identities. Modele są trenowane przy użyciu dokumentów o następującym typie zawartości: "application/pdf", "image/jpeg", "image/png", "image/tiff" lub "image/bmp". Inne typy zawartości w kontenerze są ignorowane.

Nowość w wersji 2.1: argument słowa kluczowego model_name

close

Zamknij sesję FormTrainingClient .

delete_model

Oznacz model do usunięcia. Artefakty modelu zostaną trwale usunięte w określonym przedziale czasu.

get_account_properties

Uzyskaj informacje o modelach na koncie rozpoznawania formularzy.

get_copy_authorization

Generuj autoryzację do kopiowania modelu niestandardowego do zasobu Form Recognizer docelowego. Powinno to być wywoływane przez zasób docelowy (gdzie model zostanie skopiowany do), a dane wyjściowe mogą być przekazywane jako parametr docelowy do begin_copy_model.

get_custom_model

Uzyskaj opis modelu niestandardowego, w tym typy formularzy, które może rozpoznać, oraz pola wyodrębnione dla każdego typu formularza.

get_form_recognizer_client

Pobierz wystąpienie klasy FormRecognizerClient z klasy FormTrainingClient.

list_custom_models

Lista informacji dla każdego modelu, w tym identyfikator modelu, stan modelu oraz czas jego utworzenia i ostatniej modyfikacji.

send_request

Uruchamia żądanie sieciowe przy użyciu istniejącego potoku klienta.

Adres URL żądania może być względny względem podstawowego adresu URL. Wersja interfejsu API usługi używana dla żądania jest taka sama jak wersja klienta, chyba że określono inaczej. Zastępowanie skonfigurowanej wersji interfejsu API klienta w względnym adresie URL jest obsługiwane na kliencie z interfejsem API w wersji 2022-08-31 i nowszych. Zastępowanie bezwzględnego adresu URL obsługiwanego na kliencie z dowolną wersją interfejsu API. Ta metoda nie zgłasza się, jeśli odpowiedź jest błędem; aby zgłosić wyjątek, wywołaj metodę raise_for_status() dla zwróconego obiektu odpowiedzi. Aby uzyskać więcej informacji na temat wysyłania żądań niestandardowych za pomocą tej metody, zobacz https://aka.ms/azsdk/dpcodegen/python/send_request.

begin_copy_model

Skopiuj model niestandardowy przechowywany w tym zasobie (źródle) do określonego przez użytkownika docelowego zasobu Form Recognizer. Należy to wywołać za pomocą zasobu Form Recognizer źródłowego (z modelem, który ma zostać skopiowany). Parametr docelowy powinien zostać dostarczony z danych wyjściowych zasobu docelowego z wywołania get_copy_authorization metody .

async begin_copy_model(model_id: str, target: Dict[str, str | int], **kwargs: Any) -> AsyncLROPoller[CustomFormModelInfo]

Parametry

model_id
str
Wymagane

Identyfikator modelu do skopiowania do zasobu docelowego.

target
Dict[str, Union[str, int]]
Wymagane

Autoryzacja kopiowania wygenerowana na podstawie wywołania zasobu docelowego na .get_copy_authorization

continuation_token
str

Token kontynuacji w celu ponownego uruchomienia bazy danych poller ze stanu zapisanego.

Zwraca

Wystąpienie AsyncLROPoller. Wywołaj metodę result() obiektu poller, aby zwrócić element CustomFormModelInfo.

Typ zwracany

Wyjątki

Przykłady

Kopiowanie modelu z zasobu źródłowego do zasobu docelowego


   source_client = FormTrainingClient(endpoint=source_endpoint, credential=AzureKeyCredential(source_key))

   async with source_client:
       poller = await source_client.begin_copy_model(
           model_id=source_model_id,
           target=target  # output from target client's call to get_copy_authorization()
       )
       copied_over_model = await poller.result()

       print("Model ID: {}".format(copied_over_model.model_id))
       print("Status: {}".format(copied_over_model.status))

begin_create_composed_model

Tworzy utworzony model na podstawie kolekcji istniejących modeli, które zostały wytrenowane za pomocą etykiet.

Skomponowany model umożliwia wywoływanie wielu modeli przy użyciu jednego identyfikatora modelu. Po przesłaniu dokumentu do analizy za pomocą złożonego identyfikatora modelu najpierw jest wykonywany krok klasyfikacji w celu kierowania go do prawidłowego modelu niestandardowego.

Nowość w wersji 2.1: metoda klienta begin_create_composed_model

async begin_create_composed_model(model_ids: List[str], **kwargs: Any) -> AsyncLROPoller[CustomFormModel]

Parametry

model_ids
list[str]
Wymagane

Lista identyfikatorów modeli do użycia w skomponowanym modelu.

model_name
str

Opcjonalna, zdefiniowana przez użytkownika nazwa do skojarzenia z modelem.

continuation_token
str

Token kontynuacji w celu ponownego uruchomienia bazy danych poller ze stanu zapisanego.

Zwraca

Wystąpienie AsyncLROPoller. Wywołaj metodę result() obiektu poller, aby zwrócić element CustomFormModel.

Typ zwracany

Wyjątki

Przykłady

Tworzenie skomponowanego modelu


   from azure.core.credentials import AzureKeyCredential
   from azure.ai.formrecognizer.aio import FormTrainingClient

   endpoint = os.environ["AZURE_FORM_RECOGNIZER_ENDPOINT"]
   key = os.environ["AZURE_FORM_RECOGNIZER_KEY"]
   po_supplies = os.environ['PURCHASE_ORDER_OFFICE_SUPPLIES_SAS_URL_V2']
   po_equipment = os.environ['PURCHASE_ORDER_OFFICE_EQUIPMENT_SAS_URL_V2']
   po_furniture = os.environ['PURCHASE_ORDER_OFFICE_FURNITURE_SAS_URL_V2']
   po_cleaning_supplies = os.environ['PURCHASE_ORDER_OFFICE_CLEANING_SUPPLIES_SAS_URL_V2']

   form_training_client = FormTrainingClient(endpoint=endpoint, credential=AzureKeyCredential(key))
   async with form_training_client:
       supplies_poller = await form_training_client.begin_training(
           po_supplies, use_training_labels=True, model_name="Purchase order - Office supplies"
       )
       equipment_poller = await form_training_client.begin_training(
           po_equipment, use_training_labels=True, model_name="Purchase order - Office Equipment"
       )
       furniture_poller = await form_training_client.begin_training(
           po_furniture, use_training_labels=True, model_name="Purchase order - Furniture"
       )
       cleaning_supplies_poller = await form_training_client.begin_training(
           po_cleaning_supplies, use_training_labels=True, model_name="Purchase order - Cleaning Supplies"
       )
       supplies_model = await supplies_poller.result()
       equipment_model = await equipment_poller.result()
       furniture_model = await furniture_poller.result()
       cleaning_supplies_model = await cleaning_supplies_poller.result()

       models_trained_with_labels = [
           supplies_model.model_id,
           equipment_model.model_id,
           furniture_model.model_id,
           cleaning_supplies_model.model_id
       ]

       poller = await form_training_client.begin_create_composed_model(
           models_trained_with_labels, model_name="Office Supplies Composed Model"
       )
       model = await poller.result()

   print("Office Supplies Composed Model Info:")
   print("Model ID: {}".format(model.model_id))
   print("Model name: {}".format(model.model_name))
   print("Is this a composed model?: {}".format(model.properties.is_composed_model))
   print("Status: {}".format(model.status))
   print("Composed model creation started on: {}".format(model.training_started_on))
   print("Creation completed on: {}".format(model.training_completed_on))


begin_training

Tworzenie i trenowanie modelu niestandardowego. Żądanie musi zawierać parametr training_files_url , który jest identyfikatorem URI kontenera obiektów blob usługi Azure Storage dostępnym zewnętrznie (najlepiej identyfikatorem URI sygnatury dostępu współdzielonego). Pamiętaj, że identyfikator URI kontenera (bez sygnatury dostępu współdzielonego) jest akceptowany tylko wtedy, gdy kontener jest publiczny lub ma skonfigurowaną tożsamość zarządzaną, zobacz więcej o konfigurowaniu tożsamości zarządzanych do pracy z Form Recognizer tutaj: https://docs.microsoft.com/azure/applied-ai-services/form-recognizer/managed-identities. Modele są trenowane przy użyciu dokumentów o następującym typie zawartości: "application/pdf", "image/jpeg", "image/png", "image/tiff" lub "image/bmp". Inne typy zawartości w kontenerze są ignorowane.

Nowość w wersji 2.1: argument słowa kluczowego model_name

async begin_training(training_files_url: str, use_training_labels: bool, **kwargs: Any) -> AsyncLROPoller[CustomFormModel]

Parametry

training_files_url
str
Wymagane

Identyfikator URI sygnatury dostępu współdzielonego kontenera usługi Azure Storage. Identyfikator URI kontenera (bez sygnatury dostępu współdzielonego) może być używany, jeśli kontener jest publiczny lub ma skonfigurowaną tożsamość zarządzaną. Aby uzyskać więcej informacji na temat konfigurowania zestawu danych treningowych, zobacz: https://aka.ms/azsdk/formrecognizer/buildtrainingset.

use_training_labels
bool
Wymagane

Czy trenować z etykietami, czy nie. Odpowiednie pliki z etykietami muszą istnieć w kontenerze obiektów blob, jeśli jest ustawiona wartość True.

prefix
str

Ciąg prefiksu uwzględniający wielkość liter do filtrowania dokumentów w ścieżce źródłowej na potrzeby trenowania. Na przykład w przypadku korzystania z identyfikatora URI obiektu blob usługi Azure Storage użyj prefiksu, aby ograniczyć podfoldery do trenowania.

include_subfolders
bool

Flaga wskazująca, czy podfoldery w zestawie folderów prefiksu również należy uwzględnić podczas wyszukiwania zawartości do wstępnego przetwarzania. Nieobsługiwane w przypadku trenowania z etykietami.

model_name
str

Opcjonalna, zdefiniowana przez użytkownika nazwa do skojarzenia z modelem.

continuation_token
str

Token kontynuacji w celu ponownego uruchomienia bazy danych poller ze stanu zapisanego.

Zwraca

Wystąpienie AsyncLROPoller. Wywołaj metodę result() obiektu poller, aby zwrócić element CustomFormModel.

Typ zwracany

Wyjątki

Należy pamiętać, że jeśli trenowanie zakończy się niepowodzeniem, zostanie zgłoszony wyjątek, ale model o stanie "nieprawidłowy" jest nadal tworzony. Ten model można usunąć, wywołując wywołanie

Przykłady

Trenowanie modelu (bez etykiet) przy użyciu formularzy niestandardowych.


   from azure.ai.formrecognizer.aio import FormTrainingClient
   from azure.core.credentials import AzureKeyCredential

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

   async with FormTrainingClient(
       endpoint, AzureKeyCredential(key)
   ) as form_training_client:

       poller = await form_training_client.begin_training(container_sas_url, use_training_labels=False)
       model = await poller.result()

       # Custom model information
       print("Model ID: {}".format(model.model_id))
       print("Status: {}".format(model.status))
       print("Model name: {}".format(model.model_name))
       print("Training started on: {}".format(model.training_started_on))
       print("Training completed on: {}".format(model.training_completed_on))

       print("Recognized fields:")
       # Looping through the submodels, which contains the fields they were trained on
       for submodel in model.submodels:
           print("...The submodel has form type '{}'".format(submodel.form_type))
           for name, field in submodel.fields.items():
               print("...The model found field '{}' to have label '{}'".format(
                   name, field.label
               ))

close

Zamknij sesję FormTrainingClient .

async close() -> None

Wyjątki

delete_model

Oznacz model do usunięcia. Artefakty modelu zostaną trwale usunięte w określonym przedziale czasu.

async delete_model(model_id: str, **kwargs: Any) -> None

Parametry

model_id
str
Wymagane

Identyfikator modelu.

Zwraca

Brak

Typ zwracany

Wyjątki

Przykłady

Usuwanie modelu niestandardowego.


   await form_training_client.delete_model(model_id=custom_model.model_id)

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

get_account_properties

Uzyskaj informacje o modelach na koncie rozpoznawania formularzy.

async get_account_properties(**kwargs: Any) -> AccountProperties

Zwraca

Podsumowanie modeli na koncie — liczba modeli niestandardowych, limit modelu niestandardowego.

Typ zwracany

Wyjątki

Przykłady

Pobierz właściwości dla konta rozpoznawania formularzy.


   async with FormTrainingClient(
       endpoint=endpoint, credential=AzureKeyCredential(key)
   ) as form_training_client:
       # First, we see how many custom models we have, and what our limit is
       account_properties = await form_training_client.get_account_properties()
       print("Our account has {} custom models, and we can have at most {} custom models\n".format(
           account_properties.custom_model_count, account_properties.custom_model_limit
       ))

get_copy_authorization

Generuj autoryzację do kopiowania modelu niestandardowego do zasobu Form Recognizer docelowego. Powinno to być wywoływane przez zasób docelowy (gdzie model zostanie skopiowany do), a dane wyjściowe mogą być przekazywane jako parametr docelowy do begin_copy_model.

async get_copy_authorization(resource_id: str, resource_region: str, **kwargs: Any) -> Dict[str, str | int]

Parametry

resource_id
str
Wymagane

Identyfikator zasobu platformy Azure dla docelowego zasobu Form Recognizer, do którego zostanie skopiowany model.

resource_region
str
Wymagane

Lokalizacja docelowego zasobu Form Recognizer. Prawidłowa nazwa regionu świadczenia usługi Azure obsługiwana przez usługi Cognitive Services. Na przykład "westus", "eastus" itp. Zobacz https://azure.microsoft.com/global-infrastructure/services/?products=cognitive-services , aby uzyskać regionalną dostępność usług Cognitive Services.

Zwraca

Słownik z wartościami autoryzacji kopiowania — "modelId", "accessToken", "resourceId", "resourceRegion" i "expirationDateTimeTicks".

Typ zwracany

Wyjątki

Przykłady

Autoryzowanie zasobu docelowego do odbierania skopiowanego modelu


   target_client = FormTrainingClient(endpoint=target_endpoint, credential=AzureKeyCredential(target_key))

   async with target_client:
       target = await target_client.get_copy_authorization(
           resource_region=target_region,
           resource_id=target_resource_id
       )
   # model ID that target client will use to access the model once copy is complete
   print("Model ID: {}".format(target["modelId"]))

get_custom_model

Uzyskaj opis modelu niestandardowego, w tym typy formularzy, które może rozpoznać, oraz pola wyodrębnione dla każdego typu formularza.

async get_custom_model(model_id: str, **kwargs: Any) -> CustomFormModel

Parametry

model_id
str
Wymagane

Identyfikator modelu.

Zwraca

CustomFormModel

Typ zwracany

Wyjątki

Przykłady

Pobieranie modelu niestandardowego z identyfikatorem modelu.


   custom_model = await form_training_client.get_custom_model(model_id=model_info.model_id)
   print("\nModel ID: {}".format(custom_model.model_id))
   print("Status: {}".format(custom_model.status))
   print("Model name: {}".format(custom_model.model_name))
   print("Is this a composed model?: {}".format(custom_model.properties.is_composed_model))
   print("Training started on: {}".format(custom_model.training_started_on))
   print("Training completed on: {}".format(custom_model.training_completed_on))

get_form_recognizer_client

Pobierz wystąpienie klasy FormRecognizerClient z klasy FormTrainingClient.

get_form_recognizer_client(**kwargs: Any) -> FormRecognizerClient

Zwraca

Obiekt FormRecognizerClient

Typ zwracany

Wyjątki

list_custom_models

Lista informacji dla każdego modelu, w tym identyfikator modelu, stan modelu oraz czas jego utworzenia i ostatniej modyfikacji.

list_custom_models(**kwargs: Any) -> AsyncItemPaged[CustomFormModelInfo]

Zwraca

AsyncItemPaged[CustomFormModelInfo]

Typ zwracany

Wyjątki

Przykłady

Wyświetlanie listy informacji o modelu dla każdego modelu na koncie.


   custom_models = form_training_client.list_custom_models()

   print("We have models with the following IDs:")
   async for model in custom_models:
       print(model.model_id)

send_request

Uruchamia żądanie sieciowe przy użyciu istniejącego potoku klienta.

Adres URL żądania może być względny względem podstawowego adresu URL. Wersja interfejsu API usługi używana dla żądania jest taka sama jak wersja klienta, chyba że określono inaczej. Zastępowanie skonfigurowanej wersji interfejsu API klienta w względnym adresie URL jest obsługiwane na kliencie z interfejsem API w wersji 2022-08-31 i nowszych. Zastępowanie bezwzględnego adresu URL obsługiwanego na kliencie z dowolną wersją interfejsu API. Ta metoda nie zgłasza się, jeśli odpowiedź jest błędem; aby zgłosić wyjątek, wywołaj metodę raise_for_status() dla zwróconego obiektu odpowiedzi. Aby uzyskać więcej informacji na temat wysyłania żądań niestandardowych za pomocą tej metody, zobacz https://aka.ms/azsdk/dpcodegen/python/send_request.

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

Parametry

request
HttpRequest
Wymagane

Żądanie sieciowe, które chcesz utworzyć.

Zwraca

Odpowiedź połączenia sieciowego. Nie obsługuje błędów w odpowiedzi.

Typ zwracany

Wyjątki