Partager via


FormTrainingClient Classe

FormTrainingClient est l’interface Form Recognizer à utiliser pour créer et gérer des modèles personnalisés. Il fournit des méthodes d’apprentissage des modèles sur les formulaires que vous fournissez, ainsi que des méthodes pour afficher et supprimer des modèles, accéder aux propriétés de compte, copier des modèles vers une autre ressource Form Recognizer et composer des modèles à partir d’une collection de modèles existants entraînés avec des étiquettes.

Notes

FormTrainingClient doit être utilisé avec les versions <d’API =v2.1.

Pour utiliser les versions d’API 2022-08-31 et ultérieures, instanciez un DocumentModelAdministrationClient.

Héritage
azure.ai.formrecognizer._form_base_client.FormRecognizerClientBase
FormTrainingClient

Constructeur

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

Paramètres

endpoint
str
Obligatoire

Points de terminaison Cognitive Services pris en charge (protocole et nom d’hôte, par exemple : https://westus2.api.cognitive.microsoft.com).

credential
AzureKeyCredential ou TokenCredential
Obligatoire

Informations d’identification nécessaires pour que le client se connecte à Azure. Il s’agit d’une instance d’AzureKeyCredential si vous utilisez une clé API ou des informations d’identification de jeton à partir de identity.

api_version
str ou FormRecognizerApiVersion

Version d’API du service à utiliser pour les requêtes. Il utilise par défaut la version d’API v2.1. La définition d’une version antérieure peut entraîner une compatibilité des fonctionnalités réduite. Pour utiliser la dernière version et les fonctionnalités d’API prises en charge, instanciez plutôt un DocumentModelAdministrationClient.

Exemples

Création de FormTrainingClient avec un point de terminaison et une clé 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))

Création du FormTrainingClient avec des informations d’identification de jeton.


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

Méthodes

begin_copy_model

Copiez un modèle personnalisé stocké dans cette ressource (la source) vers la ressource cible Form Recognizer spécifiée par l’utilisateur. Cela doit être appelé avec la ressource source Form Recognizer (avec le modèle destiné à être copié). Le paramètre cible doit être fourni à partir de la sortie de la ressource cible à partir de l’appel de la get_copy_authorization méthode.

begin_create_composed_model

Crée un modèle composé à partir d’une collection de modèles existants qui ont été entraînés avec des étiquettes.

Un modèle composé permet d’appeler plusieurs modèles avec un SEUL ID de modèle. Lors de la soumission d’un document pour analyse avec un ID de modèle composé, une étape de classification a d’abord lieu pour l’acheminer vers le modèle personnalisé approprié.

Nouveauté de la version v2.1 : méthode cliente begin_create_composed_model

begin_training

Crée un modèle personnalisé et en effectue l’apprentissage. La demande doit inclure un paramètre training_files_url qui est un URI de conteneur d’objets blob de stockage Azure accessible en externe (de préférence un URI de signature d’accès partagé). Notez qu’un URI de conteneur (sans SAP) n’est accepté que lorsque le conteneur est public ou a une identité managée configurée. Pour plus d’informations sur la configuration des identités managées pour qu’elles fonctionnent avec Form Recognizer, cliquez ici : https://docs.microsoft.com/azure/applied-ai-services/form-recognizer/managed-identities. Les modèles sont entraînés à l’aide de documents du type de contenu suivant : « application/pdf », « image/jpeg », « image/png », « image/tiff » ou « image/bmp ». Les autres types de contenu dans le conteneur sont ignorés.

Nouveauté de la version v2.1 : argument model_name mot clé

close

Fermez la FormTrainingClient session.

delete_model

Marquer un modèle pour suppression. Les artefacts de modèle seront supprimés définitivement dans une période prédéterminée.

get_account_properties

Obtenez des informations sur les modèles sur le compte form recognizer.

get_copy_authorization

Générez l’autorisation de copier un modèle personnalisé dans la ressource Form Recognizer cible. Cela doit être appelé par la ressource cible (où le modèle sera copié) et la sortie peut être passée en tant que paramètre cible dans begin_copy_model.

get_custom_model

Obtenez une description d’un modèle personnalisé, y compris les types de formulaires qu’il peut reconnaître et les champs qu’il extrait pour chaque type de formulaire.

get_form_recognizer_client

Obtenez une instance d’un FormRecognizerClient à partir de FormTrainingClient.

list_custom_models

Répertoriez les informations pour chaque modèle, y compris l’ID de modèle, les status de modèle et la date de sa création et de sa dernière modification.

send_request

Exécute une requête réseau à l’aide du pipeline existant du client.

L’URL de requête peut être relative à l’URL de base. La version de l’API de service utilisée pour la requête est identique à celle du client, sauf indication contraire. La substitution de la version de l’API configurée du client dans l’URL relative est prise en charge sur le client avec la version d’API 2022-08-31 et ultérieure. Substitution dans l’URL absolue prise en charge sur le client avec n’importe quelle version d’API. Cette méthode ne déclenche pas si la réponse est une erreur ; pour déclencher une exception, appelez raise_for_status() sur l’objet de réponse retourné. Pour plus d’informations sur l’envoi de requêtes personnalisées avec cette méthode, consultez https://aka.ms/azsdk/dpcodegen/python/send_request.

begin_copy_model

Copiez un modèle personnalisé stocké dans cette ressource (la source) vers la ressource cible Form Recognizer spécifiée par l’utilisateur. Cela doit être appelé avec la ressource source Form Recognizer (avec le modèle destiné à être copié). Le paramètre cible doit être fourni à partir de la sortie de la ressource cible à partir de l’appel de la get_copy_authorization méthode.

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

Paramètres

model_id
str
Obligatoire

Identificateur de modèle du modèle à copier dans la ressource cible.

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

Autorisation de copie générée à partir de l’appel de la ressource cible à get_copy_authorization.

continuation_token
str

Jeton de continuation pour redémarrer un polleur à partir d’un état enregistré.

Retours

Instance d’un LROPoller. Appelez result() sur l’objet poller pour renvoyer un CustomFormModelInfo.

Type de retour

Exceptions

Exemples

Copier un modèle de la ressource source vers la ressource cible


   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

Crée un modèle composé à partir d’une collection de modèles existants qui ont été entraînés avec des étiquettes.

Un modèle composé permet d’appeler plusieurs modèles avec un SEUL ID de modèle. Lors de la soumission d’un document pour analyse avec un ID de modèle composé, une étape de classification a d’abord lieu pour l’acheminer vers le modèle personnalisé approprié.

Nouveauté de la version v2.1 : méthode cliente begin_create_composed_model

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

Paramètres

model_ids
list[str]
Obligatoire

Liste des ID de modèle à utiliser dans le modèle composé.

model_name
str

Nom facultatif défini par l’utilisateur à associer à votre modèle.

continuation_token
str

Jeton de continuation pour redémarrer un polleur à partir d’un état enregistré.

Retours

Instance d’un LROPoller. Appelez result() sur l’objet poller pour renvoyer un CustomFormModel.

Type de retour

Exceptions

Exemples

Créer un modèle composé


   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

Crée un modèle personnalisé et en effectue l’apprentissage. La demande doit inclure un paramètre training_files_url qui est un URI de conteneur d’objets blob de stockage Azure accessible en externe (de préférence un URI de signature d’accès partagé). Notez qu’un URI de conteneur (sans SAP) n’est accepté que lorsque le conteneur est public ou a une identité managée configurée. Pour plus d’informations sur la configuration des identités managées pour qu’elles fonctionnent avec Form Recognizer, cliquez ici : https://docs.microsoft.com/azure/applied-ai-services/form-recognizer/managed-identities. Les modèles sont entraînés à l’aide de documents du type de contenu suivant : « application/pdf », « image/jpeg », « image/png », « image/tiff » ou « image/bmp ». Les autres types de contenu dans le conteneur sont ignorés.

Nouveauté de la version v2.1 : argument model_name mot clé

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

Paramètres

training_files_url
str
Obligatoire

URI SAP d’un conteneur d’objets blob Azure. Un URI de conteneur (sans SAP) peut être utilisé si le conteneur est public ou si une identité managée est configurée. Pour plus d’informations sur la configuration d’un jeu de données d’entraînement, consultez : https://aka.ms/azsdk/formrecognizer/buildtrainingset.

use_training_labels
bool
Obligatoire

S’il faut s’entraîner avec des étiquettes ou non. Les fichiers étiquetés correspondants doivent exister dans le conteneur d’objets blob s’ils sont définis sur True.

prefix
str

Chaîne de préfixe respectant la casse pour filtrer les documents dans le chemin d’accès source pour l’entraînement. Par exemple, lorsque vous utilisez un URI d’objet blob de stockage Azure, utilisez le préfixe pour restreindre les sous-dossiers pour l’entraînement.

include_subfolders
bool

Indicateur indiquant si les sous-dossiers dans l’ensemble de dossiers de préfixe doivent également être inclus lors de la recherche de contenu à prétraiter. Non pris en charge si l’entraînement avec des étiquettes.

model_name
str

Nom facultatif défini par l’utilisateur à associer à votre modèle.

continuation_token
str

Jeton de continuation pour redémarrer un polleur à partir d’un état enregistré.

Retours

Instance d’un LROPoller. Appelez result() sur l’objet poller pour renvoyer un CustomFormModel.

Type de retour

Exceptions

Notez que si l’entraînement échoue, l’exception est levée, mais qu’un modèle avec une status « non valide » est toujours créé. Vous pouvez supprimer ce modèle en appelant

Exemples

Formation d’un modèle (sans étiquettes) avec vos formulaires personnalisés.


   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

Fermez la FormTrainingClient session.

close() -> None

Exceptions

delete_model

Marquer un modèle pour suppression. Les artefacts de modèle seront supprimés définitivement dans une période prédéterminée.

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

Paramètres

model_id
str
Obligatoire

Identificateur de modèle.

Type de retour

Exceptions

Exemples

Supprime un modèle personnalisé.


   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

Obtenez des informations sur les modèles sur le compte form recognizer.

get_account_properties(**kwargs: Any) -> AccountProperties

Retours

Résumé des modèles sur le compte : nombre de modèles personnalisés, limite de modèle personnalisé.

Type de retour

Exceptions

Exemples

Obtenez les propriétés du compte form recognizer.


   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

Générez l’autorisation de copier un modèle personnalisé dans la ressource Form Recognizer cible. Cela doit être appelé par la ressource cible (où le modèle sera copié) et la sortie peut être passée en tant que paramètre cible dans begin_copy_model.

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

Paramètres

resource_id
str
Obligatoire

ID de ressource Azure de la ressource Form Recognizer cible vers laquelle le modèle sera copié.

resource_region
str
Obligatoire

Emplacement de la ressource Form Recognizer cible. Nom de région Azure valide pris en charge par Cognitive Services. Par exemple, 'westus', 'eastus', etc. Consultez https://azure.microsoft.com/global-infrastructure/services/?products=cognitive-services pour connaître la disponibilité régionale de Cognitive Services.

Retours

Dictionnaire avec des valeurs pour l’autorisation de copie : « modelId », « accessToken », « resourceId », « resourceRegion » et « expirationDateTimeTicks ».

Type de retour

Exceptions

Exemples

Autoriser la ressource cible à recevoir le modèle copié


   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

Obtenez une description d’un modèle personnalisé, y compris les types de formulaires qu’il peut reconnaître et les champs qu’il extrait pour chaque type de formulaire.

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

Paramètres

model_id
str
Obligatoire

Identificateur de modèle.

Retours

CustomFormModel

Type de retour

Exceptions

Exemples

Obtenez un modèle personnalisé avec un ID de modèle.


   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

Obtenez une instance d’un FormRecognizerClient à partir de FormTrainingClient.

get_form_recognizer_client(**kwargs: Any) -> FormRecognizerClient

Retours

A FormRecognizerClient

Type de retour

Exceptions

list_custom_models

Répertoriez les informations pour chaque modèle, y compris l’ID de modèle, les status de modèle et la date de sa création et de sa dernière modification.

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

Retours

ItemPaged[CustomFormModelInfo]

Type de retour

Exceptions

Exemples

Répertoriez les informations de modèle pour chaque modèle sur le compte.


   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

Exécute une requête réseau à l’aide du pipeline existant du client.

L’URL de requête peut être relative à l’URL de base. La version de l’API de service utilisée pour la requête est identique à celle du client, sauf indication contraire. La substitution de la version de l’API configurée du client dans l’URL relative est prise en charge sur le client avec la version d’API 2022-08-31 et ultérieure. Substitution dans l’URL absolue prise en charge sur le client avec n’importe quelle version d’API. Cette méthode ne déclenche pas si la réponse est une erreur ; pour déclencher une exception, appelez raise_for_status() sur l’objet de réponse retourné. Pour plus d’informations sur l’envoi de requêtes personnalisées avec cette méthode, consultez https://aka.ms/azsdk/dpcodegen/python/send_request.

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

Paramètres

request
HttpRequest
Obligatoire

Demande réseau que vous souhaitez effectuer.

stream
bool

Indique si la charge utile de réponse sera diffusée en continu. Valeur par défaut False.

Retours

Réponse de votre appel réseau. Ne gère pas les erreurs sur votre réponse.

Type de retour

Exceptions