FormTrainingClient Classe
FormTrainingClient é a interface Reconhecedor de Formulários a utilizar para criar e gerir modelos personalizados. Fornece métodos para modelos de preparação nos formulários fornecidos, bem como métodos para visualizar e eliminar modelos, aceder às propriedades da conta, copiar modelos para outro recurso Reconhecedor de Formulários e compor modelos de uma coleção de modelos existentes preparados com etiquetas.
Nota
FormTrainingClient deve ser utilizado com as versões <da API =v2.1.
Para utilizar as versões de API 2022-08-31 e mais, instanciar um DocumentModelAdministrationClient.
- Herança
-
azure.ai.formrecognizer._form_base_client.FormRecognizerClientBaseFormTrainingClient
Construtor
FormTrainingClient(endpoint: str, credential: AzureKeyCredential | TokenCredential, **kwargs: Any)
Parâmetros
- endpoint
- str
Pontos finais dos Serviços Cognitivos suportados (protocolo e nome do anfitrião, por exemplo: https://westus2.api.cognitive.microsoft.com).
- credential
- AzureKeyCredential ou TokenCredential
Credenciais necessárias para que o cliente se ligue ao Azure. Esta é uma instância do AzureKeyCredential se utilizar uma chave de API ou uma credencial de token de identity.
- api_version
- str ou FormRecognizerApiVersion
A versão da API do serviço a utilizar para pedidos. A predefinição é a versão da API v2.1. Definir para uma versão mais antiga pode resultar numa compatibilidade de funcionalidades reduzida. Para utilizar a versão e as funcionalidades da API suportadas mais recentes, instancia um DocumentModelAdministrationClient.
Exemplos
Criar o FormTrainingClient com um ponto final e uma chave de 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))
Criar o FormTrainingClient com uma credencial de token.
"""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étodos
begin_copy_model |
Copie um modelo personalizado armazenado neste recurso (a origem) para o utilizador especificado Reconhecedor de Formulários recurso. Isto deve ser chamado com o recurso de Reconhecedor de Formulários de origem (com o modelo que se destina a ser copiado). O parâmetro de destino deve ser fornecido a partir da saída do recurso de destino ao chamar o get_copy_authorization método. |
begin_create_composed_model |
Cria um modelo composto a partir de uma coleção de modelos existentes que foram preparados com etiquetas. Um modelo composto permite que vários modelos sejam chamados com um único ID de modelo. Quando um documento é submetido para ser analisado com um ID de modelo composto, é executado um passo de classificação pela primeira vez para encaminhá-lo para o modelo personalizado correto. Novo na versão v2.1: O método de cliente begin_create_composed_model |
begin_training |
Criar e preparar um modelo personalizado. O pedido tem de incluir um parâmetro de training_files_url que seja um URI de contentor de blobs de armazenamento do Azure acessível externamente (preferencialmente um URI de Assinatura de Acesso Partilhado). Tenha em atenção que um URI de contentor (sem SAS) só é aceite quando o contentor é público ou tem uma identidade gerida configurada, veja mais sobre como configurar identidades geridas para trabalhar com Reconhecedor de Formulários aqui: https://docs.microsoft.com/azure/applied-ai-services/form-recognizer/managed-identities. Os modelos são preparados com documentos do seguinte tipo de conteúdo – "application/pdf", "image/jpeg", "image/png", "image/tiff" ou "image/bmp". Outros tipos de conteúdo no contentor são ignorados. Novo na versão v2.1: O argumento model_name palavra-chave |
close |
Feche a FormTrainingClient sessão. |
delete_model |
Marcar modelo para eliminação. Os artefactos de modelo serão removidos permanentemente num período pré-determinado. |
get_account_properties |
Obtenha informações sobre os modelos na conta do reconhecedor de formulários. |
get_copy_authorization |
Gerar autorização para copiar um modelo personalizado para o recurso de destino Reconhecedor de Formulários. Isto deve ser chamado pelo recurso de destino (para o qual o modelo será copiado) e a saída pode ser transmitida como o parâmetro de destino para begin_copy_model. |
get_custom_model |
Obtenha uma descrição de um modelo personalizado, incluindo os tipos de formulários que pode reconhecer e os campos que irá extrair para cada tipo de formulário. |
get_form_recognizer_client |
Obtenha uma instância de um FormRecognizerClient a partir de FormTrainingClient. |
list_custom_models |
Liste informações para cada modelo, incluindo o ID do modelo, o estado do modelo e quando foi criado e modificado pela última vez. |
send_request |
Executa um pedido de rede com o pipeline existente do cliente. O URL do pedido pode ser relativo ao URL base. A versão da API de serviço utilizada para o pedido é igual à do cliente, salvo especificação em contrário. Substituir a versão da API configurada do cliente no URL relativo é suportada no cliente com a versão da API 2022-08-31 e posterior. Substituir o URL absoluto suportado no cliente com qualquer versão da API. Este método não aumenta se a resposta for um erro; para gerar uma exceção, chame raise_for_status() no objeto de resposta devolvido. Para obter mais informações sobre como enviar pedidos personalizados com este método, consulte https://aka.ms/azsdk/dpcodegen/python/send_request. |
begin_copy_model
Copie um modelo personalizado armazenado neste recurso (a origem) para o utilizador especificado Reconhecedor de Formulários recurso. Isto deve ser chamado com o recurso de Reconhecedor de Formulários de origem (com o modelo que se destina a ser copiado). O parâmetro de destino deve ser fornecido a partir da saída do recurso de destino ao chamar o get_copy_authorization método.
begin_copy_model(model_id: str, target: Dict[str, str | int], **kwargs: Any) -> LROPoller[CustomFormModelInfo]
Parâmetros
A autorização de cópia gerada a partir da chamada do recurso de destino para get_copy_authorization.
- continuation_token
- str
Um token de continuação para reiniciar um poller a partir de um estado guardado.
Devoluções
Uma instância de um LROPoller. Chame o resultado() no objeto do poller para devolver um CustomFormModelInfo.
Tipo de retorno
Exceções
Exemplos
Copiar um modelo do recurso de origem para o recurso de destino
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
Cria um modelo composto a partir de uma coleção de modelos existentes que foram preparados com etiquetas.
Um modelo composto permite que vários modelos sejam chamados com um único ID de modelo. Quando um documento é submetido para ser analisado com um ID de modelo composto, é executado um passo de classificação pela primeira vez para encaminhá-lo para o modelo personalizado correto.
Novo na versão v2.1: O método de cliente begin_create_composed_model
begin_create_composed_model(model_ids: List[str], **kwargs: Any) -> LROPoller[CustomFormModel]
Parâmetros
- model_name
- str
Um nome opcional definido pelo utilizador para associar ao modelo.
- continuation_token
- str
Um token de continuação para reiniciar um poller a partir de um estado guardado.
Devoluções
Uma instância de um LROPoller. Chame o resultado() no objeto do poller para devolver um CustomFormModel.
Tipo de retorno
Exceções
Exemplos
Criar um modelo composto
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
Criar e preparar um modelo personalizado. O pedido tem de incluir um parâmetro de training_files_url que seja um URI de contentor de blobs de armazenamento do Azure acessível externamente (preferencialmente um URI de Assinatura de Acesso Partilhado). Tenha em atenção que um URI de contentor (sem SAS) só é aceite quando o contentor é público ou tem uma identidade gerida configurada, veja mais sobre como configurar identidades geridas para trabalhar com Reconhecedor de Formulários aqui: https://docs.microsoft.com/azure/applied-ai-services/form-recognizer/managed-identities. Os modelos são preparados com documentos do seguinte tipo de conteúdo – "application/pdf", "image/jpeg", "image/png", "image/tiff" ou "image/bmp". Outros tipos de conteúdo no contentor são ignorados.
Novo na versão v2.1: O argumento model_name palavra-chave
begin_training(training_files_url: str, use_training_labels: bool, **kwargs: Any) -> LROPoller[CustomFormModel]
Parâmetros
- training_files_url
- str
URI de SAS de um contentor de blobs do Armazenamento do Azure. Um URI de contentor (sem SAS) pode ser utilizado se o contentor for público ou tiver uma identidade gerida configurada. Para obter mais informações sobre como configurar um conjunto de dados de preparação, consulte: https://aka.ms/azsdk/formrecognizer/buildtrainingset.
- use_training_labels
- bool
Quer se prepare com etiquetas ou não. Os ficheiros etiquetados correspondentes têm de existir no contentor de blobs, se definidos como Verdadeiro.
- prefix
- str
Uma cadeia de prefixo sensível a maiúsculas e minúsculas para filtrar documentos no caminho de origem para preparação. Por exemplo, ao utilizar um URI de blobs de armazenamento do Azure, utilize o prefixo para restringir subpastas para preparação.
- include_subfolders
- bool
Um sinalizador para indicar se as subpastas dentro do conjunto de pastas de prefixo também terão de ser incluídas quando procurar conteúdo a ser pré-processado. Não suportado se a preparação com etiquetas não for suportada.
- model_name
- str
Um nome opcional definido pelo utilizador para associar ao modelo.
- continuation_token
- str
Um token de continuação para reiniciar um poller a partir de um estado guardado.
Devoluções
Uma instância de um LROPoller. Chame o resultado() no objeto do poller para devolver um CustomFormModel.
Tipo de retorno
Exceções
Tenha em atenção que, se a preparação falhar, a exceção é gerada, mas ainda é criado um modelo com um estado "inválido". Pode eliminar este modelo ao chamar
Exemplos
Preparar um modelo (sem etiquetas) com os seus formulários personalizados.
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
Marcar modelo para eliminação. Os artefactos de modelo serão removidos permanentemente num período pré-determinado.
delete_model(model_id: str, **kwargs: Any) -> None
Parâmetros
Tipo de retorno
Exceções
Exemplos
Eliminar um modelo personalizado.
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
Obtenha informações sobre os modelos na conta do reconhecedor de formulários.
get_account_properties(**kwargs: Any) -> AccountProperties
Devoluções
Resumo dos modelos na conta – contagem de modelos personalizados, limite de modelos personalizados.
Tipo de retorno
Exceções
Exemplos
Obtenha propriedades para a conta do reconhecedor de formulários.
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
Gerar autorização para copiar um modelo personalizado para o recurso de destino Reconhecedor de Formulários. Isto deve ser chamado pelo recurso de destino (para o qual o modelo será copiado) e a saída pode ser transmitida como o parâmetro de destino para begin_copy_model.
get_copy_authorization(resource_id: str, resource_region: str, **kwargs: Any) -> Dict[str, str | int]
Parâmetros
- resource_id
- str
ID de Recurso do Azure do recurso de destino Reconhecedor de Formulários para o qual o modelo será copiado.
- resource_region
- str
Localização do recurso Reconhecedor de Formulários de destino. Um nome de região do Azure válido suportado pelos Serviços Cognitivos. Por exemplo, "westus", "eastus", etc. Veja https://azure.microsoft.com/global-infrastructure/services/?products=cognitive-services a disponibilidade regional dos Serviços Cognitivos.
Devoluções
Um dicionário com valores para a autorização de cópia – "modelId", "accessToken", "resourceId", "resourceRegion" e "expirationDateTimeTicks".
Tipo de retorno
Exceções
Exemplos
Autorizar o recurso de destino a receber o modelo copiado
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
Obtenha uma descrição de um modelo personalizado, incluindo os tipos de formulários que pode reconhecer e os campos que irá extrair para cada tipo de formulário.
get_custom_model(model_id: str, **kwargs: Any) -> CustomFormModel
Parâmetros
Devoluções
CustomFormModel
Tipo de retorno
Exceções
Exemplos
Obter um modelo personalizado com um ID de modelo.
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
Obtenha uma instância de um FormRecognizerClient a partir de FormTrainingClient.
get_form_recognizer_client(**kwargs: Any) -> FormRecognizerClient
Devoluções
Um FormulárioRecognizerClient
Tipo de retorno
Exceções
list_custom_models
Liste informações para cada modelo, incluindo o ID do modelo, o estado do modelo e quando foi criado e modificado pela última vez.
list_custom_models(**kwargs: Any) -> ItemPaged[CustomFormModelInfo]
Devoluções
ItemPaged[CustomFormModelInfo]
Tipo de retorno
Exceções
Exemplos
Liste as informações do modelo para cada modelo na conta.
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
Executa um pedido de rede com o pipeline existente do cliente.
O URL do pedido pode ser relativo ao URL base. A versão da API de serviço utilizada para o pedido é igual à do cliente, salvo especificação em contrário. Substituir a versão da API configurada do cliente no URL relativo é suportada no cliente com a versão da API 2022-08-31 e posterior. Substituir o URL absoluto suportado no cliente com qualquer versão da API. Este método não aumenta se a resposta for um erro; para gerar uma exceção, chame raise_for_status() no objeto de resposta devolvido. Para obter mais informações sobre como enviar pedidos personalizados com este método, consulte https://aka.ms/azsdk/dpcodegen/python/send_request.
send_request(request: HttpRequest, *, stream: bool = False, **kwargs) -> HttpResponse
Parâmetros
- stream
- bool
Se o payload de resposta será transmitido em fluxo. Predefinições para Falso.
Devoluções
A resposta da chamada de rede. Não efetua o processamento de erros na resposta.
Tipo de retorno
Exceções
Azure SDK for Python