DocumentAnalysisAsyncClient Classe
- java.
lang. Object - com.
azure. ai. formrecognizer. documentanalysis. DocumentAnalysisAsyncClient
- com.
public final class DocumentAnalysisAsyncClient
Essa classe fornece um cliente assíncrono para se conectar ao Reconhecimento de Formulários Serviço Cognitivo do Azure.
Esse cliente fornece métodos assíncronos para executar:
- Análise de Documento Personalizada: classificação, extração e análise de dados de formulários e documentos específicos para dados comerciais distintos e casos de uso. Use o modelo treinado personalizado passando sua modelId para o com.azure.ai.formrecognizer.documentanalysis.DocumentAnalysisAsyncClient#beginAnalyzeDocument(String, BinaryData) método .
- Análise Geral de Documentos: extraia texto, tabelas, estrutura e pares chave-valor. Use o modelo de documento geral fornecido pelo serviço Reconhecimento de Formulários passando modelId="rebuilt-document" para o com.azure.ai.formrecognizer.documentanalysis.DocumentAnalysisAsyncClient#beginAnalyzeDocument(String, BinaryData) método .
- Análise de Modelo Predefinida: analisar recibos, cartões de visita, faturas, IDs, W2 e outros documentos com supported prebuilt models. Use the prebuilt receipt model provided by passing modelId="prebuilt-receipt" into the com.azure.ai.formrecognizer.documentanalysis.DocumentAnalysisAsyncClient#beginAnalyzeDocument(String, BinaryData) method.
- Análise de Layout: extraia texto, marcas de seleção e estruturas de tabelas, juntamente com suas coordenadas de caixa delimitadora, de formulários e documentos. Use o modelo de análise de layout fornecido pelo serviço passando modelId="prebuilt-layout" para o com.azure.ai.formrecognizer.documentanalysis.DocumentAnalysisAsyncClient#beginAnalyzeDocument(String, BinaryData) método .
- 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.
Esse cliente também fornece métodos diferentes com base em entradas de uma URL e entradas de um fluxo.
Nota: Esse cliente só dá V2022_08_31 suporte a e mais recente. Para usar uma versão de serviço mais antiga, FormRecognizerClient e .formrecognizer.training.FormTrainingClient.
Os clientes de serviço são o ponto de interação para que os desenvolvedores usem o Azure Reconhecimento de Formulários. DocumentAnalysisClient é o cliente de serviço síncrono e DocumentAnalysisAsyncClient é 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 DocumentAnalysisAsyncClient com DefaultAzureCredential
O exemplo de código a seguir demonstra a criação de um DocumentAnalysisAsyncClient, usando o 'DefaultAzureCredentialBuilder' para configurá-lo.
DocumentAnalysisAsyncClient documentAnalysisAsyncClient = new DocumentAnalysisClientBuilder()
.endpoint("{endpoint}")
.credential(new DefaultAzureCredentialBuilder().build())
.buildAsyncClient();
Além disso, consulte o exemplo de código a ser usado AzureKeyCredential para a criação do cliente.
DocumentAnalysisAsyncClient documentAnalysisAsyncClient = new DocumentAnalysisClientBuilder()
.credential(new AzureKeyCredential("{key}"))
.endpoint("{endpoint}")
.buildAsyncClient();
Resumo do método
Modificador e tipo | Método e descrição |
---|---|
Poller |
beginAnalyzeDocument(String modelId, BinaryData document)
Analisa dados de documentos com OCR (reconhecimento óptico de caracteres) e valores semânticos de um determinado documento usando qualquer um dos modelos predefinidos ou um modelo de análise personalizado. |
Poller |
beginAnalyzeDocument(String modelId, BinaryData document, AnalyzeDocumentOptions analyzeDocumentOptions)
Analisa dados de documentos com OCR (reconhecimento óptico de caracteres) e valores semânticos de um determinado documento usando qualquer um dos modelos predefinidos ou um modelo de análise personalizado. |
Poller |
beginAnalyzeDocumentFromUrl(String modelId, String documentUrl)
Analisa dados de documentos com OCR (reconhecimento óptico de caracteres) e valores semânticos de um determinado documento usando qualquer um dos modelos predefinidos ou um modelo de análise personalizado. |
Poller |
beginAnalyzeDocumentFromUrl(String modelId, String documentUrl, AnalyzeDocumentOptions analyzeDocumentOptions)
Analisa dados de documentos com OCR (reconhecimento óptico de caracteres) e valores semânticos de um determinado documento usando qualquer um dos modelos predefinidos ou um modelo de análise personalizado. |
Poller |
beginClassifyDocument(String classifierId, BinaryData document)
Classifique um determinado documento usando um classificador de documento. |
Poller |
beginClassifyDocumentFromUrl(String classifierId, String documentUrl)
Classifique um determinado documento usando um classificador de documento. |
Métodos herdados de java.lang.Object
Detalhes do método
beginAnalyzeDocument
public PollerFlux
Analisa dados de documentos com OCR (reconhecimento óptico de caracteres) e valores semânticos de um determinado documento usando qualquer um dos modelos predefinidos ou um modelo de análise personalizado.
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.
Observe que o data
passado deve ser reproduzível se as novas tentativas estiverem habilitadas (o padrão). Em outras palavras, o Flux
deve produzir os mesmos dados sempre que for assinado.
Exemplo de código
Analisar um documento.
File document = new File("{local/file_path/fileName.jpg}");
String modelId = "{model_id}";
// Utility method to convert input stream to Binary Data
BinaryData buffer = BinaryData.fromStream(new ByteArrayInputStream(Files.readAllBytes(document.toPath())));
documentAnalysisAsyncClient.beginAnalyzeDocument(modelId, buffer)
// if polling operation completed, retrieve the final result.
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(analyzeResult ->
analyzeResult.getDocuments()
.forEach(analyzedDocument ->
analyzedDocument.getFields()
.forEach((key, documentField) -> {
System.out.printf("Field text: %s%n", key);
System.out.printf("Field value data content: %s%n", documentField.getContent());
System.out.printf("Confidence score: %.2f%n", documentField.getConfidence());
})));
Parameters:
Returns:
beginAnalyzeDocument
public PollerFlux
Analisa dados de documentos com OCR (reconhecimento óptico de caracteres) e valores semânticos de um determinado documento usando qualquer um dos modelos predefinidos ou um modelo de análise personalizado.
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.
Observe que o data
passado deve ser reproduzível se as novas tentativas estiverem habilitadas (o padrão). Em outras palavras, o Flux
deve produzir os mesmos dados sempre que for assinado.
Exemplo de código
Analise um documento com opções configuráveis. .
File document = new File("{local/file_path/fileName.jpg}");
String modelId = "{model_id}";
final AnalyzeDocumentOptions analyzeDocumentOptions =
new AnalyzeDocumentOptions().setPages(Arrays.asList("1", "3")).setDocumentAnalysisFeatures(
Collections.singletonList(
DocumentAnalysisFeature.FORMULAS));
// Utility method to convert input stream to Binary Data
BinaryData buffer = BinaryData.fromStream(new ByteArrayInputStream(Files.readAllBytes(document.toPath())));
documentAnalysisAsyncClient.beginAnalyzeDocument(modelId, buffer, analyzeDocumentOptions)
// if polling operation completed, retrieve the final result.
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(analyzeResult -> {
System.out.println(analyzeResult.getModelId());
analyzeResult.getDocuments()
.forEach(analyzedDocument ->
analyzedDocument.getFields()
.forEach((key, documentField) -> {
System.out.printf("Field text: %s%n", key);
System.out.printf("Field value data content: %s%n", documentField.getContent());
System.out.printf("Confidence score: %.2f%n", documentField.getConfidence());
}));
});
Parameters:
Returns:
beginAnalyzeDocumentFromUrl
public PollerFlux
Analisa dados de documentos com OCR (reconhecimento óptico de caracteres) e valores semânticos de um determinado documento usando qualquer um dos modelos predefinidos ou um modelo de análise personalizado.
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
Analise um documento usando a URL do documento.
String documentUrl = "{document_url}";
String modelId = "{model_id}";
documentAnalysisAsyncClient.beginAnalyzeDocumentFromUrl(modelId, documentUrl)
// if polling operation completed, retrieve the final result.
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(analyzeResult ->
analyzeResult.getDocuments()
.forEach(document ->
document.getFields()
.forEach((key, documentField) -> {
System.out.printf("Field text: %s%n", key);
System.out.printf("Field value data content: %s%n", documentField.getContent());
System.out.printf("Confidence score: %.2f%n", documentField.getConfidence());
})));
Parameters:
Returns:
beginAnalyzeDocumentFromUrl
public PollerFlux
Analisa dados de documentos com OCR (reconhecimento óptico de caracteres) e valores semânticos de um determinado documento usando qualquer um dos modelos predefinidos ou um modelo de análise personalizado.
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
Analise um documento usando a URL do documento com opções configuráveis.
String documentUrl = "{document_url}";
// analyze a receipt using prebuilt model
String modelId = "prebuilt-receipt";
documentAnalysisAsyncClient.beginAnalyzeDocumentFromUrl(modelId, documentUrl,
new AnalyzeDocumentOptions().setPages(Arrays.asList("1", "3")))
// if polling operation completed, retrieve the final result.
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(analyzeResult -> {
System.out.println(analyzeResult.getModelId());
analyzeResult.getDocuments()
.forEach(document ->
document.getFields()
.forEach((key, documentField) -> {
System.out.printf("Field text: %s%n", key);
System.out.printf("Field value data content: %s%n", documentField.getContent());
System.out.printf("Confidence score: %.2f%n", documentField.getConfidence());
}));
});
Parameters:
Returns:
beginClassifyDocument
public PollerFlux
Classifique um determinado documento usando um classificador de documento. Para obter mais informações sobre como criar um modelo de classificador personalizado, consulte
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.
Observe que o data
passado deve ser reproduzível se as novas tentativas estiverem habilitadas (o padrão). Em outras palavras, o Flux
deve produzir os mesmos dados sempre que for assinado.
Exemplo de código
Analise um documento com opções configuráveis.
File document = new File("{local/file_path/fileName.jpg}");
String classifierId = "{model_id}";
// Utility method to convert input stream to Binary Data
BinaryData buffer = BinaryData.fromStream(new ByteArrayInputStream(Files.readAllBytes(document.toPath())));
documentAnalysisAsyncClient.beginClassifyDocument(classifierId, buffer)
// if polling operation completed, retrieve the final result.
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(analyzeResult -> {
System.out.println(analyzeResult.getModelId());
analyzeResult.getDocuments()
.forEach(analyzedDocument -> System.out.printf("Doc Type: %s%n", analyzedDocument.getDocType()));
});
Parameters:
Returns:
beginClassifyDocumentFromUrl
public PollerFlux
Classifique um determinado documento usando um classificador de documento. Para obter mais informações sobre como criar um modelo de classificador personalizado, consulte
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
Analise um documento usando a URL do documento.
String documentUrl = "{document_url}";
String classifierId = "custom-trained-classifier-id";
documentAnalysisAsyncClient.beginClassifyDocumentFromUrl(classifierId, documentUrl)
// if polling operation completed, retrieve the final result.
.flatMap(AsyncPollResponse::getFinalResult)
.subscribe(analyzeResult -> {
System.out.println(analyzeResult.getModelId());
analyzeResult.getDocuments()
.forEach(analyzedDocument -> System.out.printf("Doc Type: %s%n", analyzedDocument.getDocType()));
});
Parameters:
Returns:
Aplica-se a
Azure SDK for Java