Может ли GoogleCloudVision API для PDF OCR выводить на PubSub? - PullRequest
0 голосов
/ 14 февраля 2020

Я использую следующий код для запроса операции OCR в API облачного видения Google:

    from google.cloud import vision
    from google.cloud import storage
    from google.protobuf import json_format
    # Supported mime_types are: 'application/pdf' and 'image/tiff'
    mime_type = 'application/pdf'

    # How many pages should be grouped into each json output file.
    batch_size = 2

    client = vision.ImageAnnotatorClient()

    feature = vision.types.Feature(
        type=vision.enums.Feature.Type.DOCUMENT_TEXT_DETECTION)

    gcs_source = vision.types.GcsSource(uri=gcs_source_uri)
    input_config = vision.types.InputConfig(
        gcs_source=gcs_source, mime_type=mime_type)

    gcs_destination = vision.types.GcsDestination(uri=gcs_destination_uri)
    output_config = vision.types.OutputConfig(
        gcs_destination=gcs_destination, batch_size=batch_size)

    async_request = vision.types.AsyncAnnotateFileRequest(
        features=[feature], input_config=input_config,
        output_config=output_config)

    operation = client.async_batch_annotate_files(
        requests=[async_request])

Когда я вызываю операцию AsyncAnnotateFileRequest, я передаю объект GcsDestination OutputConfig. С этим объектом я говорю API записать результат в корзину GoogleCloudStorage. Интересно, можно ли вместо этого написать в PubSub? Я осмотрел документацию, но похоже, что это невозможно, так как в крайнем случае подумал спросить здесь. Может быть, я что-то упустил?

РЕДАКТИРОВАТЬ: Я изучаю синхронные запросы, где я могу запросить OCR, получить текст в качестве ответа, а затем написать в PubSub. Вот так:

request = vision.types.AnnotateFileReques(features=[feature], input_config=input_config)

response = vision_client.batch_annotate_files(requests=[request])

но я получаю AttributeError: module 'google.cloud.vision_v1.types' has no attribute 'AnnotateFileReques' но от do c оно должно быть там. Предложения

Ответы [ 2 ]

0 голосов
/ 15 февраля 2020

Метод asyn c annotate записывает окончательные результаты в GCS. Вы можете настроить триггер GCS для обработки результатов при записи в ваше ведро GCS.

См. Триггеры хранения: https://cloud.google.com/functions/docs/calling/storage

0 голосов
/ 14 февраля 2020

Я шучу, нет подробного руководства о том, как это сделать с Python. https://cloud.google.com/functions/docs/tutorials/ocr enter image description here

...