ฉันกำลังพยายามสร้าง PoC สำหรับ Google Cloud DocumentAI V1 โดยใช้สิ่งนี้
ฉันใช้ DocAI เพื่อแปลงไฟล์ .pdf เป็นข้อความโดยใช้ DocAI BatchProcessing ฉันได้สร้างแอปพลิเคชันคอนโซลด้วยรหัสด้านล่าง ซึ่งทำงานได้ดีกับเอกสารเดียว แต่เมื่อฉันพยายามประมวลผลเอกสาร pdf หลายฉบับ มันกลับมีข้อยกเว้น
Grpc.Core.RpcException: 'สถานะ(StatusCode="DeadlineExceeded",
รายละเอียด = "เกินกำหนดเวลา",
DebugException = "Grpc.Core.Internal.CoreErrorDetailException:
{"created":"@1650465671.748000000","description":"กำหนดเวลา
เกิน","file":"......\src\core\ext\filters\deadline\deadline_filter.cc","file_line":81,"grpc_status":4}")'
DocAIBatchProcess คลาสสแตติกสาธารณะ
{
const สตริง projectId = "PROJECTID";
ตัวประมวลผลสตริง const = "PROCESSID";
ตำแหน่งสตริง const = "เรา";
สตริง const gcsInputBucketName = "BUCKETNAME";
สตริง const gcsOutputBucketName = "gs://BUCKETNAME/OUTPUTFOLDER/";
สตริง const gcsOutputUriPrefix = "คำนำหน้า";
คำนำหน้าสตริง const = "INPUTFOLDER/";
ตัวคั่นสตริง const = "/";
บูลคงสาธารณะ BatchProcessDocument (นี้ IEnumerable<GCPStorage.Object> storageObjects)
{
Console.WriteLine("\n");
Console.WriteLine("กำลังดำเนินการเอกสารเริ่มต้น...");
Console.WriteLine("-----------------------------");
DocumentProcessorServiceClient documentProcessorServiceClient = DocumentProcessorServiceClient.Create();
ชื่อสตริง = $"projects/{projectId}/locations/{location}/processors/{processorId}";
GcsDocument gcsDocument = null;
GcsDocuments gcsDocuments = ใหม่ GcsDocuments();
ที่เก็บข้อมูล var = StorageClient.Create ();
foreach (var storageObject ใน storageObjects)
{
ถ้า (storageObject.Name != คำนำหน้า)
{
gcsDocument = ใหม่ GcsDocument()
{
GcsUri = $"gs://gcsInputBucketName/{storageObject.Name}",
MimeType = "ใบสมัคร/pdf"
};
gcsDocuments.Documents.Add(gcsDocument);
}
}
//กำหนดค่าอินพุต
BatchDocumentsInputConfig inputConfig = ใหม่ BatchDocumentsInputConfig();
inputConfig.GcsDocuments = gcsDocuments;
//การกำหนดค่าเอาต์พุต
var fullGcsPath = $"gs://{gcsOutputBucketName}/{gcsOutputUriPrefix}/";
GcsOutputConfig gcsOutputConfig = ใหม่ GcsOutputConfig();
gcsOutputConfig.GcsUri = gcsOutputBucketName;
DocumentOutputConfig documentOutputConfig = DocumentOutputConfig ใหม่ ();
documentOutputConfig.GcsOutputConfig = gcsOutputConfig;
// กำหนดค่าคำขอกระบวนการแบทช์
BatchProcessRequest batchProcessRequest = ใหม่ BatchProcessRequest ();
batchProcessRequest.Name = ชื่อ;
batchProcessRequest.InputDocuments = inputConfig;
batchProcessRequest.DocumentOutputConfig = documentOutputConfig;
//ทำตามคำขอ
การดำเนินการ <BatchProcessResponse, BatchProcessMetadata> การตอบสนอง = documentProcessorServiceClient.BatchProcessDocuments (batchProcessRequest);
// สำรวจจนกว่าการดำเนินการที่ใช้เวลานานที่ส่งคืนจะเสร็จสมบูรณ์
การดำเนินการ <BatchProcessResponse, BatchProcessMetadata> เสร็จสิ้นการตอบสนอง = การตอบสนอง PollUntilCompleted ();
// รับผลการดำเนินการ
ผลลัพธ์ BatchProcessResponse = CompleteResponse.Result;
}
}
DeadlineExceeded : "กำหนดเวลาหมดอายุก่อนที่การดำเนินการจะเสร็จสมบูรณ์"
ฉันพยายามค้นหาเอกสาร แต่ไม่พบสิ่งใดที่เป็นรูปธรรม ถ้ามีคนรู้ว่าทำไมสิ่งนี้จึงเกิดขึ้น ? ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก