Încerc să creez PoC pentru Google Cloud DocumentAI V1 folosind asta
Folosesc DocAI pentru a converti fișiere .pdf în text folosind DocAI BatchProcessing. Am creat o aplicație de consolă cu codul de mai jos, care funcționează bine cu un singur document. Dar când încerc să procesez mai multe documente pdf, face o excepție,
Grpc.Core.RpcException: „Status(StatusCode="DeadlineExceeded",
Detail="Termen limită depășit",
DebugException="Grpc.Core.Internal.CoreErrorDetailException:
{"created":"@1650465671.748000000","description":"Termen limită
Depășit","fișier":"......\src\core\ext\filters\deadline\deadline_filter.cc","file_line":81,"grpc_status":4}")'
clasă publică statică DocAIBatchProcess
{
const string projectId = "PROJECTID";
const string procesorId = "PROCESSID";
const string location = "noi";
const string gcsInputBucketName = "BUCKETNAME";
const șir gcsOutputBucketName = "gs://BUCKETNAME/OUTPUTFOLDER/";
const string gcsOutputUriPrefix = "PREFIX";
const string prefix = "INPUTFOLDER/";
const string delimiter = "/";
public static bool BatchProcessDocument (acest IEnumerable<GCPStorage.Object> storageObjects)
{
Console.WriteLine("\n");
Console.WriteLine("Procesarea documentelor a început...");
Console.WriteLine("-------------------------------");
DocumentProcessorServiceClient documentProcessorServiceClient = DocumentProcessorServiceClient.Create();
nume șir = $"projects/{projectId}/locations/{location}/processors/{processorId}";
GcsDocument gcsDocument = null;
GcsDocuments gcsDocuments = new GcsDocuments();
var stocare = StorageClient.Create();
foreach (var storageObject în storageObjects)
{
if (storageObject.Name != prefix)
{
gcsDocument = nou GcsDocument()
{
GcsUri = $"gs://gcsInputBucketName/{storageObject.Name}",
MimeType = „aplicație/pdf”
};
gcsDocuments.Documents.Add(gcsDocument);
}
}
//Intrare Configurare
BatchDocumentsInputConfig inputConfig = nou BatchDocumentsInputConfig();
inputConfig.GcsDocuments = gcsDocuments;
//Config ieșire
var fullGcsPath = $"gs://{gcsOutputBucketName}/{gcsOutputUriPrefix}/";
GcsOutputConfig gcsOutputConfig = nou GcsOutputConfig();
gcsOutputConfig.GcsUri = gcsOutputBucketName;
DocumentOutputConfig documentOutputConfig = nou DocumentOutputConfig();
documentOutputConfig.GcsOutputConfig = gcsOutputConfig;
// Configurați cererea procesului lot.
BatchProcessRequest batchProcessRequest = new BatchProcessRequest();
batchProcessRequest.Name = nume;
batchProcessRequest.InputDocuments = inputConfig;
batchProcessRequest.DocumentOutputConfig = documentOutputConfig;
// Faceți cererea
Operation<BatchProcessResponse, BatchProcessMetadata> răspuns = documentProcessorServiceClient.BatchProcessDocuments(batchProcessRequest);
// Interogați până când operațiunea de lungă durată returnată este finalizată
Operațiunea<BatchProcessResponse, BatchProcessMetadata> completedResponse = response.PollUntilCompleted();
// Preluați rezultatul operației
Rezultat BatchProcessResponse = completedResponse.Result;
}
}
DeadlineExceeded : „Termenul limită a expirat înainte ca operațiunea să se poată finaliza.”
Am încercat să caut documentație, dar nu am găsit nimic concret. Dacă cineva știe de ce se întâmplă asta? Orice ajutor ar fi foarte apreciat.