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.FormRecognizerClientBaseFormTrainingClient
Constructeur
FormTrainingClient(endpoint: str, credential: AzureKeyCredential | TokenCredential, **kwargs: Any)
Paramètres
- endpoint
- str
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
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
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_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
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
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
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
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
ID de ressource Azure de la ressource Form Recognizer cible vers laquelle le modèle sera copié.
- resource_region
- str
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
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
- 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
Azure SDK for Python