FormTrainingClient Classe
- java.
lang. Object - com.
azure. ai. formrecognizer. training. FormTrainingClient
- com.
public final class FormTrainingClient
Essa classe fornece um cliente síncrono para se conectar ao Reconhecimento de Formulários Serviço Cognitivo do Azure.
Esse cliente fornece métodos síncronos para:
- Treinar um modelo personalizado: treine um modelo personalizado para analisar e extrair dados de formulários e documentos específicos para sua empresa usando o beginTraining(String trainingFilesUrl, boolean useTrainingLabels) método .
- Copiar modelo personalizado: copie um modelo de Reconhecimento de Formulários personalizado para um recurso de Reconhecimento de Formulários de destino usando o beginCopyModel método .
- Listar modelos personalizados: obtenha informações sobre todos os modelos personalizados usando os getCustomModel(String modelId) métodos e listCustomModels() , respectivamente.
- Sondagem e retornos de chamada: inclui mecanismos para sondar o serviço para marcar o status de uma operação de análise ou registrar retornos de chamada para receber notificações quando a análise for concluída.
Nota: Esse cliente só dá V2_1 suporte a e inferior. É recomendável usar uma versão DocumentModelAdministrationAsyncClient de serviço mais recente e DocumentModelAdministrationClient.
Consulte o Guia de migração para usar as versões de API 2022-08-31 e posteriores.
Os clientes de serviço são o ponto de interação para que os desenvolvedores usem o Azure Reconhecimento de Formulários. FormTrainingClient é o cliente de serviço síncrono e FormTrainingAsyncClient é o cliente de serviço assíncrono. Os exemplos mostrados neste documento usam um objeto de credencial chamado DefaultAzureCredential para autenticação, que é apropriado para a maioria dos cenários, incluindo ambientes locais de desenvolvimento e produção. Além disso, é recomendável usar a identidade gerenciada para autenticação em ambientes de produção. Você pode encontrar mais informações sobre diferentes maneiras de autenticação e seus tipos de credenciais correspondentes na documentação da Identidade do Azure".
Exemplo: Construir um FormTrainingClient com DefaultAzureCredential
O exemplo de código a seguir demonstra a criação de um FormTrainingClient, usando o 'DefaultAzureCredentialBuilder' para configurá-lo.
FormTrainingClient client = new FormTrainingClientBuilder()
.endpoint("{endpoint}")
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
Além disso, consulte o exemplo de código a ser usado AzureKeyCredential para a criação do cliente.
FormTrainingClient formTrainingClient = new FormTrainingClientBuilder()
.credential(new AzureKeyCredential("{key}"))
.endpoint("{endpoint}")
.buildClient();
Resumo do método
Métodos herdados de java.lang.Object
Detalhes do método
beginCopyModel
public SyncPoller
Copie um modelo personalizado armazenado nesse recurso (a origem) para o destino especificado pelo usuário Reconhecimento de Formulários recurso.
Isso deve ser chamado com o recurso de Reconhecimento de Formulários de origem (com o modelo que se destina a ser copiado). O parâmetro de destino deve ser fornecido da saída do recurso de destino do getCopyAuthorization(String resourceId, String resourceRegion) método .
O serviço não dá suporte ao cancelamento da operação de execução prolongada e retorna com uma mensagem de erro indicando ausência de suporte de cancelamento.
Exemplo de código
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 um modelo personalizado armazenado nesse recurso (a origem) para o destino especificado pelo usuário Reconhecimento de Formulários recurso.
Isso deve ser chamado com o recurso de Reconhecimento de Formulários de origem (com o modelo que se destina a ser copiado). O parâmetro de destino deve ser fornecido da saída do recurso de destino do getCopyAuthorization(String resourceId, String resourceRegion) método .
O serviço não dá suporte ao cancelamento da operação de execução prolongada e retorna com uma mensagem de erro indicando ausência de suporte de cancelamento.
Exemplo de código
// 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
Crie um modelo composto da lista fornecida de modelos existentes na conta.
Essas operações falharão se a lista consistir em uma ID de modelo inválida, não existente ou IDs duplicadas. Atualmente, essa operação só tem suporte para modelos personalizados treinados usando rótulos.
O serviço não dá suporte ao cancelamento da operação de execução prolongada e retorna com uma mensagem de erro indicando ausência de suporte de cancelamento.
Exemplo de código
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
Crie um modelo composto da lista fornecida de modelos existentes na conta.
Essas operações falharão se a lista consistir em uma ID de modelo inválida, não existente ou IDs duplicadas. Atualmente, essa operação só tem suporte para modelos personalizados treinados usando rótulos.
O serviço não dá suporte ao cancelamento da operação de execução prolongada e retorna com uma mensagem de erro indicando ausência de suporte de cancelamento.
Exemplo de código
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
Criar e treinar um modelo personalizado.
Os modelos são treinados usando documentos que são do tipo de conteúdo a seguir – 'application/pdf', 'image/jpeg', 'image/png', 'image/tiff'. Outro tipo de conteúdo é ignorado.
O serviço não dá suporte ao cancelamento da operação de execução prolongada e retorna com uma mensagem de erro indicando ausência de suporte de cancelamento.
Exemplo de código
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
Criar e treinar um modelo personalizado. Os modelos são treinados usando documentos que são do tipo de conteúdo a seguir – 'application/pdf', 'image/jpeg', 'image/png', 'image/tiff'. Outro tipo de conteúdo é ignorado.
O serviço não dá suporte ao cancelamento da operação de execução prolongada e retorna com uma mensagem de erro indicando ausência de suporte de cancelamento.
Exemplo de código
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)
Exclui o modelo personalizado especificado.
Exemplo de código
String modelId = "{model_id}";
formTrainingClient.deleteModel(modelId);
System.out.printf("Model Id: %s is deleted.%n", modelId);
Parameters:
deleteModelWithResponse
public Response
Exclui o modelo personalizado especificado.
Exemplo de código
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()
Obtenha informações de conta da conta do reconhecimento de formulários.
Exemplo de código
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
Obtenha informações de conta da conta do reconhecimento de formulários com uma resposta Http e um especificado Context.
Exemplo de código
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)
Gere autorização para copiar um modelo personalizado para o recurso de Reconhecimento de Formulários 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
Gere autorização para copiar um modelo personalizado para o recurso de Reconhecimento de Formulários de destino. Isso deve ser chamado pelo recurso de destino (para o qual o modelo será copiado) e a saída pode ser passada como o parâmetro de destino para 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)
Obtenha informações detalhadas para uma ID de modelo personalizada especificada.
Exemplo de código
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
Obtenha informações detalhadas para uma ID de modelo personalizada especificada.
Exemplo de código
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()
Cria um novo objeto FormRecognizerClient. O novo FormTrainingClient usa o mesmo pipeline de política de solicitação que o FormTrainingClient.
Returns:
listCustomModels
public PagedIterable
Listar informações para cada modelo na conta do reconhecedor de formulários.
Exemplo de código
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
Listar informações para cada modelo na conta do reconhecimento de formulários com uma resposta Http e um especificado Context.
Exemplo de código
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:
Aplica-se a
Azure SDK for Java