FormTrainingClient Clase
- java.
lang. Object - com.
azure. ai. formrecognizer. training. FormTrainingClient
- com.
public final class FormTrainingClient
Esta clase proporciona un cliente sincrónico para conectarse al Form Recognizer Azure Cognitive Service.
Este cliente proporciona métodos sincrónicos para:
- Entrenamiento de un modelo personalizado: entrene un modelo personalizado para analizar y extraer datos de formularios y documentos específicos de su empresa mediante el beginTraining(String trainingFilesUrl, boolean useTrainingLabels) método .
- Copiar modelo personalizado: copie un modelo de Form Recognizer personalizado en un recurso de Form Recognizer de destino mediante el beginCopyModel método .
- Enumeración de modelos personalizados: obtenga información sobre todos los modelos personalizados mediante los getCustomModel(String modelId) métodos y listCustomModels() , respectivamente.
- Sondeo y devoluciones de llamada: incluye mecanismos para sondear el servicio para comprobar el estado de una operación de análisis o registrar devoluciones de llamada para recibir notificaciones cuando se complete el análisis.
Nota: Este cliente solo admite V2_1 y reduce. Se recomienda usar una versión DocumentModelAdministrationAsyncClient de servicio más reciente y DocumentModelAdministrationClient.
Consulte la guía de migración para usar las versiones de API 2022-08-31 y versiones posteriores.
Los clientes de servicio son el punto de interacción para que los desarrolladores usen Azure Form Recognizer. FormTrainingClient es el cliente de servicio sincrónico y FormTrainingAsyncClient es el cliente de servicio asincrónico. Los ejemplos que se muestran en este documento usan un objeto de credencial denominado DefaultAzureCredential para la autenticación, que es adecuado para la mayoría de los escenarios, incluidos los entornos de desarrollo y producción locales. Además, se recomienda usar la identidad administrada para la autenticación en entornos de producción. Puede encontrar más información sobre las distintas formas de autenticación y sus tipos de credenciales correspondientes en la documentación de Identidad de Azure".
Ejemplo: Construcción de un FormTrainingClient con DefaultAzureCredential
En el ejemplo de código siguiente se muestra la creación de un FormTrainingClient, con "DefaultAzureCredentialBuilder" para configurarlo.
FormTrainingClient client = new FormTrainingClientBuilder()
.endpoint("{endpoint}")
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
Además, consulte el ejemplo de código siguiente para usarlo AzureKeyCredential para la creación de clientes.
FormTrainingClient formTrainingClient = new FormTrainingClientBuilder()
.credential(new AzureKeyCredential("{key}"))
.endpoint("{endpoint}")
.buildClient();
Resumen del método
Métodos heredados de java.lang.Object
Detalles del método
beginCopyModel
public SyncPoller
Copie un modelo personalizado almacenado en este recurso (el origen) en el recurso de destino especificado por el usuario Form Recognizer recurso.
Se debe llamar a con el recurso de Form Recognizer de origen (con el modelo que está pensado para copiarse). El parámetro de destino debe proporcionarse a partir de la salida del recurso de destino del getCopyAuthorization(String resourceId, String resourceRegion) método .
El servicio no admite la cancelación de la operación de larga duración y devuelve un mensaje de error que indica la ausencia de compatibilidad con la cancelación.
Código de ejemplo
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
Copie un modelo personalizado almacenado en este recurso (el origen) en el recurso de destino especificado por el usuario Form Recognizer recurso.
Se debe llamar a con el recurso de Form Recognizer de origen (con el modelo que está pensado para copiarse). El parámetro de destino debe proporcionarse a partir de la salida del recurso de destino del getCopyAuthorization(String resourceId, String resourceRegion) método .
El servicio no admite la cancelación de la operación de larga duración y devuelve un mensaje de error que indica la ausencia de compatibilidad con la cancelación.
Código de ejemplo
// 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
Cree un modelo compuesto a partir de la lista proporcionada de modelos existentes en la cuenta.
Esta operación produce un error si la lista consta de un identificador de modelo no válido o duplicado. Actualmente, esta operación solo se admite para modelos personalizados entrenados mediante etiquetas.
El servicio no admite la cancelación de la operación de larga duración y devuelve un mensaje de error que indica la ausencia de compatibilidad con la cancelación.
Código de ejemplo
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
Cree un modelo compuesto a partir de la lista proporcionada de modelos existentes en la cuenta.
Esta operación produce un error si la lista consta de un identificador de modelo no válido o duplicado. Actualmente, esta operación solo se admite para modelos personalizados entrenados mediante etiquetas.
El servicio no admite la cancelación de la operación de larga duración y devuelve un mensaje de error que indica la ausencia de compatibilidad con la cancelación.
Código de ejemplo
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
Crea y entrena un modelo personalizado.
Para entrenar a los modelos se usan documentos que son de los siguientes tipos de contenido: "application/pdf", "image/jpeg', "image/png", "image/tiff". Cualquier otro tipo de contenido se ignora.
El servicio no admite la cancelación de la operación de larga duración y devuelve un mensaje de error que indica la ausencia de compatibilidad con la cancelación.
Código de ejemplo
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
Crea y entrena un modelo personalizado. Para entrenar a los modelos se usan documentos que son de los siguientes tipos de contenido: "application/pdf", "image/jpeg', "image/png", "image/tiff". Cualquier otro tipo de contenido se ignora.
El servicio no admite la cancelación de la operación de larga duración y devuelve un mensaje de error que indica la ausencia de compatibilidad con la cancelación.
Código de ejemplo
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)
Elimina el modelo personalizado especificado.
Código de ejemplo
String modelId = "{model_id}";
formTrainingClient.deleteModel(modelId);
System.out.printf("Model Id: %s is deleted.%n", modelId);
Parameters:
deleteModelWithResponse
public Response
Elimina el modelo personalizado especificado.
Código de ejemplo
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()
Obtenga información de cuenta de la cuenta de form recognizer.
Código de ejemplo
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
Obtenga información de cuenta de la cuenta de form recognizer con una respuesta Http y un especificado Context.
Código de ejemplo
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)
Genere autorización para copiar un modelo personalizado en el recurso de Form Recognizer de destino.
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
Genere autorización para copiar un modelo personalizado en el recurso de Form Recognizer de destino. El recurso de destino debe llamar a esto (donde se copiará el modelo) y la salida se puede pasar como el parámetro de destino a 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)
Obtenga información detallada para un identificador de modelo personalizado especificado.
Código de ejemplo
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
Obtenga información detallada para un identificador de modelo personalizado especificado.
Código de ejemplo
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()
Crea un nuevo objeto FormRecognizerClient. El nuevo FormTrainingClient usa la misma canalización de directiva de solicitud que .FormTrainingClient
Returns:
listCustomModels
public PagedIterable
Enumere la información de cada modelo en la cuenta de form recognizer.
Código de ejemplo
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
Enumere la información de cada modelo en la cuenta de form recognizer con una respuesta Http y un especificado Context.
Código de ejemplo
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:
Se aplica a
Azure SDK for Java