DocumentAnalysisAsyncClient Clase
- java.
lang. Object - com.
azure. ai. formrecognizer. documentanalysis. DocumentAnalysisAsyncClient
- com.
public final class DocumentAnalysisAsyncClient
Esta clase proporciona un cliente asincrónico para conectarse al Form Recognizer Azure Cognitive Service.
Este cliente proporciona métodos asincrónicos para realizar:
- Análisis de documentos personalizados: clasificación, extracción y análisis de datos de formularios y documentos específicos de distintos datos empresariales y casos de uso. Use el modelo entrenado personalizado pasando su modelId al com.azure.ai.formrecognizer.documentanalysis.DocumentAnalysisAsyncClient#beginAnalyzeDocument(String, BinaryData) método .
- Análisis general de documentos: extraiga pares de texto, tablas, estructura y clave-valor. Use el modelo de documento general proporcionado por el servicio Form Recognizer pasando modelId="rebuilt-document" al com.azure.ai.formrecognizer.documentanalysis.DocumentAnalysisAsyncClient#beginAnalyzeDocument(String, BinaryData) método .
- Análisis de modelos precompilado: analizar recibos, tarjetas de presentación, facturas, identificadores, W2 y otros documentos con 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álisis de diseño: extraiga texto, marcas de selección y estructuras de tablas, junto con sus coordenadas de rectángulo delimitador, de formularios y documentos. Use el modelo de análisis de diseño proporcionado por el servicio pasando modelId="prebuilt-layout" al com.azure.ai.formrecognizer.documentanalysis.DocumentAnalysisAsyncClient#beginAnalyzeDocument(String, BinaryData) método .
- 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 completa el análisis.
Este cliente también proporciona distintos métodos basados en entradas de una dirección URL y entradas de una secuencia.
Nota: Este cliente solo admite V2022_08_31 y versiones más recientes. Para usar una versión de servicio anterior, FormRecognizerClient y .formrecognizer.training.FormTrainingClient.
Los clientes de servicio son el punto de interacción para que los desarrolladores usen Azure Form Recognizer. DocumentAnalysisClient es el cliente de servicio sincrónico y DocumentAnalysisAsyncClient 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 Azure Identity.
Ejemplo: Construcción de un documentAnalysisAsyncClient con DefaultAzureCredential
En el ejemplo de código siguiente se muestra la creación de un DocumentAnalysisAsyncClient, mediante "DefaultAzureCredentialBuilder" para configurarlo.
DocumentAnalysisAsyncClient documentAnalysisAsyncClient = new DocumentAnalysisClientBuilder()
.endpoint("{endpoint}")
.credential(new DefaultAzureCredentialBuilder().build())
.buildAsyncClient();
Además, consulte el ejemplo de código siguiente para usarlo AzureKeyCredential para la creación de clientes.
DocumentAnalysisAsyncClient documentAnalysisAsyncClient = new DocumentAnalysisClientBuilder()
.credential(new AzureKeyCredential("{key}"))
.endpoint("{endpoint}")
.buildAsyncClient();
Resumen del método
Modificador y tipo | Método y descripción |
---|---|
Poller |
beginAnalyzeDocument(String modelId, BinaryData document)
Analiza datos de documentos con reconocimiento óptico de caracteres (OCR) y valores semánticos de un documento determinado mediante cualquiera de los modelos precompilados o un modelo de análisis personalizado. |
Poller |
beginAnalyzeDocument(String modelId, BinaryData document, AnalyzeDocumentOptions analyzeDocumentOptions)
Analiza datos de documentos con reconocimiento óptico de caracteres (OCR) y valores semánticos de un documento determinado mediante cualquiera de los modelos precompilados o un modelo de análisis personalizado. |
Poller |
beginAnalyzeDocumentFromUrl(String modelId, String documentUrl)
Analiza datos de documentos con reconocimiento óptico de caracteres (OCR) y valores semánticos de un documento determinado mediante cualquiera de los modelos precompilados o un modelo de análisis personalizado. |
Poller |
beginAnalyzeDocumentFromUrl(String modelId, String documentUrl, AnalyzeDocumentOptions analyzeDocumentOptions)
Analiza datos de documentos con reconocimiento óptico de caracteres (OCR) y valores semánticos de un documento determinado mediante cualquiera de los modelos precompilados o un modelo de análisis personalizado. |
Poller |
beginClassifyDocument(String classifierId, BinaryData document)
Clasifique un documento determinado mediante un clasificador de documentos. |
Poller |
beginClassifyDocumentFromUrl(String classifierId, String documentUrl)
Clasifique un documento determinado mediante un clasificador de documentos. |
Métodos heredados de java.lang.Object
Detalles del método
beginAnalyzeDocument
public PollerFlux
Analiza datos de documentos con reconocimiento óptico de caracteres (OCR) y valores semánticos de un documento determinado mediante cualquiera de los modelos precompilados o un modelo de análisis personalizado.
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.
Tenga en cuenta que el data
pasado debe reproducirse si los reintentos están habilitados (el valor predeterminado). En otras palabras, Flux
debe generar los mismos datos cada vez que se suscriba.
Código de ejemplo
Analice un 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
Analiza datos de documentos con reconocimiento óptico de caracteres (OCR) y valores semánticos de un documento determinado mediante cualquiera de los modelos precompilados o un modelo de análisis personalizado.
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.
Tenga en cuenta que el data
pasado debe reproducirse si los reintentos están habilitados (el valor predeterminado). En otras palabras, Flux
debe generar los mismos datos cada vez que se suscriba.
Código de ejemplo
Analice un documento con opciones configurables. .
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
Analiza datos de documentos con reconocimiento óptico de caracteres (OCR) y valores semánticos de un documento determinado mediante cualquiera de los modelos precompilados o un modelo de análisis personalizado.
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
Analice un documento mediante la dirección URL del 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
Analiza datos de documentos con reconocimiento óptico de caracteres (OCR) y valores semánticos de un documento determinado mediante cualquiera de los modelos precompilados o un modelo de análisis personalizado.
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
Analice un documento mediante la dirección URL del documento con opciones configurables.
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
Clasifique un documento determinado mediante un clasificador de documentos. Para obtener más información sobre cómo crear un modelo de clasificador personalizado, consulte
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.
Tenga en cuenta que el data
pasado debe reproducirse si los reintentos están habilitados (el valor predeterminado). En otras palabras, Flux
debe generar los mismos datos cada vez que se suscriba.
Código de ejemplo
Analice un documento con opciones configurables.
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
Clasifique un documento determinado mediante un clasificador de documentos. Para obtener más información sobre cómo crear un modelo de clasificador personalizado, consulte
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
Analice un documento mediante la dirección URL del 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:
Se aplica a
Azure SDK for Java