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._form_base_client.FormRecognizerClientBaseFormTrainingClient
Konstruktor
FormTrainingClient(endpoint: str, credential: AzureKeyCredential | TokenCredential, **kwargs: Any)
Parametry
- endpoint
- str
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 TokenCredential
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 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 import FormTrainingClient
from azure.identity 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 .
begin_copy_model(model_id: str, target: Dict[str, str | int], **kwargs: Any) -> LROPoller[CustomFormModelInfo]
Parametry
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 LROPoller. 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))
poller = 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 = 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
begin_create_composed_model(model_ids: List[str], **kwargs: Any) -> LROPoller[CustomFormModel]
Parametry
- 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 LROPoller. 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 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))
supplies_poller = form_training_client.begin_training(
po_supplies, use_training_labels=True, model_name="Purchase order - Office supplies"
)
equipment_poller = form_training_client.begin_training(
po_equipment, use_training_labels=True, model_name="Purchase order - Office Equipment"
)
furniture_poller = form_training_client.begin_training(
po_furniture, use_training_labels=True, model_name="Purchase order - Furniture"
)
cleaning_supplies_poller = form_training_client.begin_training(
po_cleaning_supplies, use_training_labels=True, model_name="Purchase order - Cleaning Supplies"
)
supplies_model = supplies_poller.result()
equipment_model = equipment_poller.result()
furniture_model = furniture_poller.result()
cleaning_supplies_model = 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 = form_training_client.begin_create_composed_model(
models_trained_with_labels, model_name="Office Supplies Composed Model"
)
model = 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
begin_training(training_files_url: str, use_training_labels: bool, **kwargs: Any) -> LROPoller[CustomFormModel]
Parametry
- training_files_url
- str
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
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 LROPoller. 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 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"]
form_training_client = FormTrainingClient(endpoint, AzureKeyCredential(key))
poller = form_training_client.begin_training(container_sas_url, use_training_labels=False)
model = 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
delete_model
Oznacz model do usunięcia. Artefakty modelu zostaną trwale usunięte w określonym przedziale czasu.
delete_model(model_id: str, **kwargs: Any) -> None
Parametry
Typ zwracany
Wyjątki
Przykłady
Usuwanie modelu niestandardowego.
form_training_client.delete_model(model_id=custom_model.model_id)
try:
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.
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.
form_training_client = FormTrainingClient(endpoint=endpoint, credential=AzureKeyCredential(key))
# First, we see how many custom models we have, and what our limit is
account_properties = 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.
get_copy_authorization(resource_id: str, resource_region: str, **kwargs: Any) -> Dict[str, str | int]
Parametry
- resource_id
- str
Identyfikator zasobu platformy Azure dla docelowego zasobu Form Recognizer, do którego zostanie skopiowany model.
- resource_region
- str
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))
target = 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.
get_custom_model(model_id: str, **kwargs: Any) -> CustomFormModel
Parametry
Zwraca
CustomFormModel
Typ zwracany
Wyjątki
Przykłady
Pobieranie modelu niestandardowego z identyfikatorem modelu.
custom_model = form_training_client.get_custom_model(model_id=model.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) -> ItemPaged[CustomFormModelInfo]
Zwraca
ItemPaged[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:")
for model_info in custom_models:
print(model_info.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.
send_request(request: HttpRequest, *, stream: bool = False, **kwargs) -> HttpResponse
Parametry
- stream
- bool
Określa, czy ładunek odpowiedzi będzie przesyłany strumieniowo. Wartość domyślna to False.
Zwraca
Odpowiedź połączenia sieciowego. Nie obsługuje błędów w odpowiedzi.
Typ zwracany
Wyjątki
Azure SDK for Python