Рейтинг:0

Исключение при пакетной обработке документа с помощью Google Cloud DocumentAI V1 — StatusCode="DeadlineExceeded"

флаг in

Я пытаюсь создать PoC для Google Cloud DocumentAI V1, используя этот

Я использую DocAI для преобразования файлов .pdf в текст с помощью DocAI BatchProcessing. Я создал консольное приложение с приведенным ниже кодом, которое отлично работает с одним документом. Но когда я пытаюсь обработать несколько pdf-документов, возникает исключение,

Grpc.Core.RpcException: 'Статус (StatusCode = "DeadlineExceeded", Detail="Срок исчерпан", DebugException="Grpc.Core.Internal.CoreErrorDetailException: {"created":"@1650465671.748000000","description":"Крайний срок Превышено","файл":"......\src\core\ext\filters\deadline\deadline_filter.cc","file_line":81,"grpc_status":4}")'

    общедоступный статический класс DocAIBatchProcess
    {
    const string projectId = "ID ПРОЕКТА"; 
    const string processingId = "ИД ПРОЦЕССА";
    const string location = "нас";
    const string gcsInputBucketName = "BUCKETNAME";
    const string gcsOutputBucketName = "gs://BUCKETNAME/OUTPUTFOLDER/";
    константная строка gcsOutputUriPrefix = "ПРЕФИКС";
    префикс постоянной строки = "INPUTFOLDER/";
    константный разделитель строк = "/";

public static bool BatchProcessDocument (это IEnumerable<GCPStorage.Object> storageObjects)
{
        Console.WriteLine("\n");
        Console.WriteLine("Начата обработка документов...");
        Console.WriteLine("---------------------------------------------");

        DocumentProcessorServiceClient documentProcessorServiceClient = DocumentProcessorServiceClient.Create();
        string name = $"projects/{projectId}/locations/{location}/processors/{processorId}";

        GcsDocument gcsDocument = null;
        GcsDocuments gcsDocuments = new GcsDocuments();
        var storage = StorageClient.Create();
        foreach (var storageObject в storageObjects)
        {
            если (storageObject.Name != префикс)
            {
                gcsDocument = новый GcsDocument()
                {
                    GcsUri = $"gs://gcsInputBucketName/{storageObject.Name}",
                    MimeType = "приложение/pdf"
                };
                gcsDocuments.Documents.Add(gcsDocument);
            }
        }

        // Входная конфигурация
        BatchDocumentsInputConfig inputConfig = new BatchDocumentsInputConfig();
        inputConfig.GcsDocuments = gcsDocuments;

        //Выходная конфигурация
        var fullGcsPath = $"gs://{gcsOutputBucketName}/{gcsOutputUriPrefix}/";
        GcsOutputConfig gcsOutputConfig = новый GcsOutputConfig();
        gcsOutputConfig.GcsUri = gcsOutputBucketName;

        DocumentOutputConfig documentOutputConfig = new DocumentOutputConfig();
        documentOutputConfig.GcsOutputConfig = gcsOutputConfig;

        // Настройте запрос пакетной обработки.
        BatchProcessRequest batchProcessRequest = new BatchProcessRequest();
        batchProcessRequest.Name = имя;
        batchProcessRequest.InputDocuments = inputConfig;
        batchProcessRequest.DocumentOutputConfig = documentOutputConfig;

        // Делаем запрос
        Operation<BatchProcessResponse, BatchProcessMetadata> response = documentProcessorServiceClient.BatchProcessDocuments(batchProcessRequest);                
        // Опрашиваем, пока возвращаемая длительная операция не будет завершена
        Operation<BatchProcessResponse, BatchProcessMetadata> completeResponse = response.PollUntilCompleted();
        
        // Получаем результат операции
        Результат BatchProcessResponse = завершенныйОтвет.Результат;
}
}

DeadlineExceeded : «Крайний срок истек до завершения операции».

Я попытался изучить документацию, но не смог найти ничего конкретного. Если кто-то знает о том, почему это происходит? Будем очень благодарны любой помощи.

Kabilan Mohanraj avatar
флаг th
Привет. Этот вопрос кажется [не по теме] (https://serverfault.com/help/on-topic) для сбоя сервера. Переполнение стека было бы правильным форумом, так как это вопрос программирования. Мне удалось найти вопрос, который вы создали в Stack Overflow -> https://stackoverflow.com/questions/71941998

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.