FormTrainingClient Classe
- java.
lang. Object - com.
azure. ai. formrecognizer. training. FormTrainingClient
- com.
public final class FormTrainingClient
Cette classe fournit un client synchrone pour se connecter au Form Recognizer Azure Cognitive Service.
Ce client fournit des méthodes synchrones pour :
- Entraîner un modèle personnalisé : entraînez un modèle personnalisé pour analyser et extraire des données à partir de formulaires et de documents spécifiques à votre entreprise à l’aide de la beginTraining(String trainingFilesUrl, boolean useTrainingLabels) méthode .
- Copier un modèle personnalisé : copiez un modèle Form Recognizer personnalisé vers une ressource Form Recognizer cible à l’aide de la beginCopyModel méthode .
- Répertorier les modèles personnalisés : obtenez des informations sur tous les modèles personnalisés à l’aide des getCustomModel(String modelId) méthodes et listCustomModels() respectivement.
- Interrogation et rappels : il comprend des mécanismes permettant d’interroger le service pour case activée la status d’une opération d’analyse ou d’inscrire des rappels pour recevoir des notifications une fois l’analyse terminée.
Note: Ce client prend uniquement en charge V2_1 et inférieur. Recommandé d’utiliser une version de service plus récente, DocumentModelAdministrationAsyncClient et DocumentModelAdministrationClient.
Reportez-vous au Guide de migration pour utiliser les versions d’API 2022-08-31 et ultérieures.
Les clients de service sont le point d’interaction permettant aux développeurs d’utiliser Azure Form Recognizer. FormTrainingClient est le client de service synchrone et FormTrainingAsyncClient est le client de service asynchrone. Les exemples présentés dans ce document utilisent un objet d’informations d’identification nommé DefaultAzureCredential pour l’authentification, ce qui est approprié pour la plupart des scénarios, y compris les environnements de développement et de production locaux. En outre, nous vous recommandons d’utiliser l’identité managée pour l’authentification dans les environnements de production. Vous trouverez plus d’informations sur les différentes méthodes d’authentification et leurs types d’informations d’identification correspondants dans la documentation Azure Identity .
Exemple : Construire un FormTrainingClient avec DefaultAzureCredential
L’exemple de code suivant illustre la création d’un FormTrainingClient, à l’aide de « DefaultAzureCredentialBuilder » pour le configurer.
FormTrainingClient client = new FormTrainingClientBuilder()
.endpoint("{endpoint}")
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
En outre, consultez l’exemple de code ci-dessous à utiliser pour la AzureKeyCredential création du client.
FormTrainingClient formTrainingClient = new FormTrainingClientBuilder()
.credential(new AzureKeyCredential("{key}"))
.endpoint("{endpoint}")
.buildClient();
Résumé de la méthode
Méthodes héritées de java.lang.Object
Détails de la méthode
beginCopyModel
public SyncPoller
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 la getCopyAuthorization(String resourceId, String resourceRegion) méthode .
Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.
Code sample
String resourceId = "target-resource-Id";
String resourceRegion = "target-resource-region";
String copyModelId = "copy-model-Id";
formTrainingAsyncClient.getCopyAuthorization(resourceId, resourceRegion)
.flatMapMany(copyAuthorization -> formTrainingAsyncClient.beginCopyModel(copyModelId, copyAuthorization))
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(customFormModelInfo ->
System.out.printf("Copied model has model Id: %s, model status: %s, training started on: %s,"
+ " training completed on: %s.%n",
customFormModelInfo.getModelId(),
customFormModelInfo.getStatus(),
customFormModelInfo.getTrainingStartedOn(),
customFormModelInfo.getTrainingCompletedOn()));
Parameters:
Returns:
beginCopyModel
public SyncPoller
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 la getCopyAuthorization(String resourceId, String resourceRegion) méthode .
Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.
Code sample
// The resource to copy model to
String resourceId = "target-resource-Id";
String resourceRegion = "target-resource-region";
// The Id of the model to be copied
String copyModelId = "copy-model-Id";
CopyAuthorization copyAuthorization = targetFormTrainingClient.getCopyAuthorization(resourceId,
resourceRegion);
formTrainingClient.beginCopyModel(copyModelId, copyAuthorization, Duration.ofSeconds(5), Context.NONE)
.waitForCompletion();
CustomFormModel modelCopy = targetFormTrainingClient.getCustomModel(copyAuthorization.getModelId());
System.out.printf("Copied model has model Id: %s, model status: %s, was requested on: %s,"
+ " transfer completed on: %s.%n",
modelCopy.getModelId(),
modelCopy.getModelStatus(),
modelCopy.getTrainingStartedOn(),
modelCopy.getTrainingCompletedOn());
Parameters:
Returns:
beginCreateComposedModel
public SyncPoller
Créez un modèle composé à partir de la liste fournie de modèles existants dans le compte.
Cette opération échoue si la liste se compose d’un ID de modèle non existant ou d’id dupliqués non valides. Cette opération est actuellement prise en charge uniquement pour les modèles personnalisés entraînés à l’aide d’étiquettes.
Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.
Code sample
String labeledModelId1 = "5f21ab8d-71a6-42d8-9856-ef5985c486a8";
String labeledModelId2 = "d7b0904c-841f-46f9-a9f4-3f2273eef7c9";
final CustomFormModel customFormModel
= formTrainingClient.beginCreateComposedModel(Arrays.asList(labeledModelId1, labeledModelId2))
.getFinalResult();
System.out.printf("Model Id: %s%n", customFormModel.getModelId());
System.out.printf("Model Status: %s%n", customFormModel.getModelStatus());
System.out.printf("Is this a composed model: %s%n",
customFormModel.getCustomModelProperties().isComposed());
customFormModel.getSubmodels()
.forEach(customFormSubmodel -> customFormSubmodel.getFields()
.forEach((key, customFormModelField) ->
System.out.printf("Form type: %s Field Text: %s Field Accuracy: %f%n",
key, customFormModelField.getName(), customFormModelField.getAccuracy())));
Parameters:
Returns:
beginCreateComposedModel
public SyncPoller
Créez un modèle composé à partir de la liste fournie de modèles existants dans le compte.
Cette opération échoue si la liste se compose d’un ID de modèle non existant ou d’id dupliqués non valides. Cette opération est actuellement prise en charge uniquement pour les modèles personnalisés entraînés à l’aide d’étiquettes.
Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.
Code sample
String labeledModelId1 = "5f21ab8d-71a6-42d8-9856-ef5985c486a8";
String labeledModelId2 = "d7b0904c-841f-46f9-a9f4-3f2273eef7c9";
final CustomFormModel customFormModel =
formTrainingClient.beginCreateComposedModel(Arrays.asList(labeledModelId1, labeledModelId2),
new CreateComposedModelOptions()
.setModelName("my composed model name"),
Context.NONE)
.setPollInterval(Duration.ofSeconds(5))
.getFinalResult();
System.out.printf("Model Id: %s%n", customFormModel.getModelId());
System.out.printf("Model Status: %s%n", customFormModel.getModelStatus());
System.out.printf("Model display name: %s%n", customFormModel.getModelName());
System.out.printf("Is this a composed model: %s%n",
customFormModel.getCustomModelProperties().isComposed());
customFormModel.getSubmodels()
.forEach(customFormSubmodel -> customFormSubmodel.getFields()
.forEach((key, customFormModelField) ->
System.out.printf("Form type: %s Field Text: %s Field Accuracy: %f%n",
key, customFormModelField.getName(), customFormModelField.getAccuracy())));
Parameters:
Returns:
beginTraining
public SyncPoller
Crée un modèle personnalisé et en effectue l’apprentissage.
Les modèles sont formés à l’aide de documents dont le type de contenu est le suivant : « application/pdf », « image/jpeg », « image/png », « image/tiff ». Tout autre type de contenu est ignoré.
Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.
Code sample
String trainingFilesUrl = "{SAS-URL-of-your-container-in-blob-storage}";
boolean useTrainingLabels = true;
CustomFormModel customFormModel =
formTrainingClient.beginTraining(trainingFilesUrl, useTrainingLabels).getFinalResult();
System.out.printf("Model Id: %s%n", customFormModel.getModelId());
System.out.printf("Model Status: %s%n", customFormModel.getModelStatus());
customFormModel.getSubmodels()
.forEach(customFormSubmodel -> customFormSubmodel.getFields()
.forEach((key, customFormModelField) ->
System.out.printf("Form Type: %s Field Text: %s Field Accuracy: %f%n",
key, customFormModelField.getName(), customFormModelField.getAccuracy())));
Parameters:
Returns:
beginTraining
public SyncPoller
Crée un modèle personnalisé et en effectue l’apprentissage. Les modèles sont formés à l’aide de documents dont le type de contenu est le suivant : « application/pdf », « image/jpeg », « image/png », « image/tiff ». Tout autre type de contenu est ignoré.
Le service ne prend pas en charge l’annulation de l’opération de longue durée et retourne un message d’erreur indiquant l’absence de prise en charge de l’annulation.
Code sample
String trainingFilesUrl = "{SAS-URL-of-your-container-in-blob-storage}";
TrainingFileFilter trainingFileFilter = new TrainingFileFilter().setSubfoldersIncluded(false).setPrefix("Invoice");
boolean useTrainingLabels = true;
CustomFormModel customFormModel = formTrainingClient.beginTraining(trainingFilesUrl, useTrainingLabels,
new TrainingOptions()
.setTrainingFileFilter(trainingFileFilter)
.setPollInterval(Duration.ofSeconds(5)), Context.NONE)
.getFinalResult();
System.out.printf("Model Id: %s%n", customFormModel.getModelId());
System.out.printf("Model Status: %s%n", customFormModel.getModelStatus());
customFormModel.getSubmodels()
.forEach(customFormSubmodel -> customFormSubmodel.getFields()
.forEach((key, customFormModelField) ->
System.out.printf("Form Type: %s Field Text: %s Field Accuracy: %f%n",
key, customFormModelField.getName(), customFormModelField.getAccuracy())));
Parameters:
Returns:
deleteModel
public void deleteModel(String modelId)
Supprime le modèle personnalisé spécifié.
Code sample
String modelId = "{model_id}";
formTrainingClient.deleteModel(modelId);
System.out.printf("Model Id: %s is deleted.%n", modelId);
Parameters:
deleteModelWithResponse
public Response
Supprime le modèle personnalisé spécifié.
Code sample
String modelId = "{model_id}";
Response<Void> response = formTrainingClient.deleteModelWithResponse(modelId, Context.NONE);
System.out.printf("Response Status Code: %d.", response.getStatusCode());
System.out.printf("Model Id: %s is deleted.%n", modelId);
Parameters:
Returns:
getAccountProperties
public AccountProperties getAccountProperties()
Obtenez les informations de compte du compte de formulaire de reconnaissance.
Code sample
AccountProperties accountProperties = formTrainingClient.getAccountProperties();
System.out.printf("Max number of models that can be trained for this account: %d%n",
accountProperties.getCustomModelLimit());
System.out.printf("Current count of trained custom models: %d%n", accountProperties.getCustomModelCount());
Returns:
getAccountPropertiesWithResponse
public Response
Obtenez les informations de compte du compte de reconnaissance de formulaire avec une réponse Http et un spécifié Context.
Code sample
Response<AccountProperties> response = formTrainingClient.getAccountPropertiesWithResponse(Context.NONE);
System.out.printf("Response Status Code: %d.", response.getStatusCode());
AccountProperties accountProperties = response.getValue();
System.out.printf("Max number of models that can be trained for this account: %s%n",
accountProperties.getCustomModelLimit());
System.out.printf("Current count of trained custom models: %d%n", accountProperties.getCustomModelCount());
Parameters:
Returns:
getCopyAuthorization
public CopyAuthorization getCopyAuthorization(String resourceId, String resourceRegion)
Générez l’autorisation de copier un modèle personnalisé dans la ressource Form Recognizer cible.
Parameters:
String resourceId = "target-resource-Id"; String resourceRegion = "target-resource-region"; CopyAuthorization copyAuthorization = formTrainingClient.getCopyAuthorization(resourceId, resourceRegion); System.out.printf("Copy Authorization for model id: %s, access token: %s, expiration time: %s, " + "target resource Id; %s, target resource region: %s%n", copyAuthorization.getModelId(), copyAuthorization.getAccessToken(), copyAuthorization.getExpiresOn(), copyAuthorization.getResourceId(), copyAuthorization.getResourceRegion() );
Returns:
getCopyAuthorizationWithResponse
public Response
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 beginCopyModel(String modelId, CopyAuthorization target).
Parameters:
String resourceId = "target-resource-Id"; String resourceRegion = "target-resource-region"; Response<CopyAuthorization> copyAuthorizationResponse = formTrainingClient.getCopyAuthorizationWithResponse(resourceId, resourceRegion, Context.NONE); System.out.printf("Copy Authorization operation returned with status: %s", copyAuthorizationResponse.getStatusCode()); CopyAuthorization copyAuthorization = copyAuthorizationResponse.getValue(); System.out.printf("Copy model id: %s, access token: %s, expiration time: %s, " + "target resource Id; %s, target resource region: %s%n", copyAuthorization.getModelId(), copyAuthorization.getAccessToken(), copyAuthorization.getExpiresOn(), copyAuthorization.getResourceId(), copyAuthorization.getResourceRegion() );
Returns:
getCustomModel
public CustomFormModel getCustomModel(String modelId)
Obtenez des informations détaillées sur un ID de modèle personnalisé spécifié.
Code sample
String modelId = "{model_id}";
CustomFormModel customFormModel = formTrainingClient.getCustomModel(modelId);
System.out.printf("Model Id: %s%n", customFormModel.getModelId());
System.out.printf("Model Status: %s%n", customFormModel.getModelStatus());
customFormModel.getSubmodels()
.forEach(customFormSubmodel -> customFormSubmodel.getFields()
.forEach((key, customFormModelField) ->
System.out.printf("Form Type: %s Field Text: %s Field Accuracy: %f%n",
key, customFormModelField.getName(), customFormModelField.getAccuracy())));
Parameters:
Returns:
getCustomModelWithResponse
public Response
Obtenez des informations détaillées sur un ID de modèle personnalisé spécifié.
Code sample
String modelId = "{model_id}";
Response<CustomFormModel> response = formTrainingClient.getCustomModelWithResponse(modelId, Context.NONE);
System.out.printf("Response Status Code: %d.", response.getStatusCode());
CustomFormModel customFormModel = response.getValue();
System.out.printf("Model Id: %s%n", customFormModel.getModelId());
System.out.printf("Model Status: %s%n", customFormModel.getModelStatus());
customFormModel.getSubmodels()
.forEach(customFormSubmodel -> customFormSubmodel.getFields()
.forEach((key, customFormModelField) ->
System.out.printf("Field: %s Field Text: %s Field Accuracy: %f%n",
key, customFormModelField.getName(), customFormModelField.getAccuracy())));
Parameters:
Returns:
getFormRecognizerClient
public FormRecognizerClient getFormRecognizerClient()
Crée un objet FormRecognizerClient. Le nouveau FormTrainingClient utilise le même pipeline de stratégie de requête que le FormTrainingClient.
Returns:
listCustomModels
public PagedIterable
Répertoriez les informations pour chaque modèle sur le compte form recognizer.
Code sample
formTrainingClient.listCustomModels()
.forEach(customModel ->
System.out.printf("Model Id: %s, Model status: %s, Training started on: %s, Training completed on: %s.%n",
customModel.getModelId(),
customModel.getStatus(),
customModel.getTrainingStartedOn(),
customModel.getTrainingCompletedOn())
);
Returns:
listCustomModels
public PagedIterable
Répertoriez les informations pour chaque modèle sur le compte form recognizer avec une réponse Http et un spécifié Context.
Code sample
formTrainingClient.listCustomModels(Context.NONE)
.forEach(customModel ->
System.out.printf("Model Id: %s, Model status: %s, Training started on: %s, Training completed on: %s.%n",
customModel.getModelId(),
customModel.getStatus(),
customModel.getTrainingStartedOn(),
customModel.getTrainingCompletedOn())
);
Parameters:
Returns:
S’applique à
Azure SDK for Java