public async Task TrainModelWithForms() { string endpoint = TestEnvironment.Endpoint; string apiKey = TestEnvironment.ApiKey; string trainingFileUrl = TestEnvironment.BlobContainerSasUrl; #region Snippet:FormRecognizerSample4TrainModelWithForms // For this sample, you can use the training forms found in the `trainingFiles` folder. // Upload the forms to your storage container and then generate a container SAS URL. // For instructions on setting up forms for training in an Azure Storage Blob Container, see // https://docs.microsoft.com/azure/cognitive-services/form-recognizer/build-training-data-set#upload-your-training-data FormTrainingClient client = new FormTrainingClient(new Uri(endpoint), new AzureKeyCredential(apiKey)); CustomFormModel model = await client.StartTrainingAsync(new Uri(trainingFileUrl), useTrainingLabels : false).WaitForCompletionAsync(); Console.WriteLine($"Custom Model Info:"); Console.WriteLine($" Model Id: {model.ModelId}"); Console.WriteLine($" Model Status: {model.Status}"); Console.WriteLine($" Training model started on: {model.TrainingStartedOn}"); Console.WriteLine($" Training model completed on: {model.TrainingCompletedOn}"); foreach (CustomFormSubmodel submodel in model.Submodels) { Console.WriteLine($"Submodel Form Type: {submodel.FormType}"); foreach (CustomFormModelField field in submodel.Fields.Values) { Console.Write($" FieldName: {field.Name}"); if (field.Label != null) { Console.Write($", FieldLabel: {field.Label}"); } Console.WriteLine(""); } } #endregion // Delete the model on completion to clean environment. client.DeleteModel(model.ModelId); }
public async Task TrainModelWithForms() { string endpoint = TestEnvironment.Endpoint; string apiKey = TestEnvironment.ApiKey; string trainingFileUrl = TestEnvironment.BlobContainerSasUrl; #region Snippet:FormRecognizerSample4TrainModelWithForms // For instructions on setting up forms for training in an Azure Storage Blob Container, see // https://docs.microsoft.com/azure/cognitive-services/form-recognizer/quickstarts/curl-train-extract#train-a-form-recognizer-model FormTrainingClient client = new FormTrainingClient(new Uri(endpoint), new AzureKeyCredential(apiKey)); CustomFormModel model = await client.StartTrainingAsync(new Uri(trainingFileUrl)).WaitForCompletionAsync(); Console.WriteLine($"Custom Model Info:"); Console.WriteLine($" Model Id: {model.ModelId}"); Console.WriteLine($" Model Status: {model.Status}"); Console.WriteLine($" Requested on: {model.RequestedOn}"); Console.WriteLine($" Completed on: {model.CompletedOn}"); foreach (CustomFormSubModel subModel in model.Models) { Console.WriteLine($"SubModel Form Type: {subModel.FormType}"); foreach (CustomFormModelField field in subModel.Fields.Values) { Console.Write($" FieldName: {field.Name}"); if (field.Label != null) { Console.Write($", FieldLabel: {field.Label}"); } Console.WriteLine(""); } } #endregion // Delete the model on completion to clean environment. client.DeleteModel(model.ModelId); }
public async Task ManageCustomModels() { string endpoint = TestEnvironment.Endpoint; string apiKey = TestEnvironment.ApiKey; Uri trainingFileUri = new Uri(TestEnvironment.BlobContainerSasUrl); #region Snippet:FormRecognizerSampleManageCustomModels FormTrainingClient client = new FormTrainingClient(new Uri(endpoint), new AzureKeyCredential(apiKey)); // Check number of models in the FormRecognizer account, and the maximum number of models that can be stored. AccountProperties accountProperties = client.GetAccountProperties(); Console.WriteLine($"Account has {accountProperties.CustomModelCount} models."); Console.WriteLine($"It can have at most {accountProperties.CustomModelLimit} models."); // List the first ten or fewer models currently stored in the account. Pageable <CustomFormModelInfo> models = client.GetCustomModels(); foreach (CustomFormModelInfo modelInfo in models.Take(10)) { Console.WriteLine($"Custom Model Info:"); Console.WriteLine($" Model Id: {modelInfo.ModelId}"); Console.WriteLine($" Model name: {modelInfo.ModelName}"); Console.WriteLine($" Is composed model: {modelInfo.Properties.IsComposedModel}"); Console.WriteLine($" Model Status: {modelInfo.Status}"); Console.WriteLine($" Training model started on: {modelInfo.TrainingStartedOn}"); Console.WriteLine($" Training model completed on: {modelInfo.TrainingCompletedOn}"); } // Create a new model to store in the account //@@ Uri trainingFileUri = <trainingFileUri>; TrainingOperation operation = client.StartTraining(trainingFileUri, useTrainingLabels: false, "My new model"); Response <CustomFormModel> operationResponse = await operation.WaitForCompletionAsync(); CustomFormModel model = operationResponse.Value; // Get the model that was just created CustomFormModel modelCopy = client.GetCustomModel(model.ModelId); Console.WriteLine($"Custom Model with Id {modelCopy.ModelId} and name {modelCopy.ModelName} recognizes the following form types:"); foreach (CustomFormSubmodel submodel in modelCopy.Submodels) { Console.WriteLine($"Submodel Form Type: {submodel.FormType}"); foreach (CustomFormModelField field in submodel.Fields.Values) { Console.Write($" FieldName: {field.Name}"); if (field.Label != null) { Console.Write($", FieldLabel: {field.Label}"); } Console.WriteLine(""); } } // Delete the model from the account. client.DeleteModel(model.ModelId); #endregion }