كيفية معالجة نص PDF باستخدام ChatGPT في .NET
يظهر هذا المقال كيفية دمج ChatGPT مع تدفقات عمل PDF في .NET باستخدام ملحق Aspose.PDF Chat GPT. سوف تتعلم استخراج النص من PDFs، وتجهيزها من خلال Chatroulette، وكتابة إجابات إلى ملفات PDF الجديدة أو القائمة – مثالية لتلخيص المستندات، والتعليق الذاتي، أو إثراء المحتوى القائم على الذكاء الاصطناعي.
مشكلة العالم الحقيقي
إن استخراج الملاحظات المهمة أو المجموعات أو الإجابات من ملفات PDF يدوياً يستغرق وقتاً طويلاً، ويحتاج المطورون إلى طريقة موثوقة لربط محتوى PDF بـ ChatGPT للحصول على معالجة تلقائية وإرجاع، وتوفير الوقت وتعزيز الإنتاجية.
نظرة عامة على الحل
Aspose.PDF ChatGPT Plugin for .NET يتيح لك إرسال محتوى PDF إلى Chatroulette ، وتلقي الإكمالات أو المجموعات ، وحفظ الإجابات مثل PDFs الجديدة - كلها مع الحد الأدنى من الرمز.
المتطلبات
- Visual Studio 2019 أو أحدث
- .NET 6.0 أو أحدث
- Aspose.PDF for .NET متوفر عبر NuGet
- مفتاح API OpenAI لـ ChatGPT
PM> Install-Package Aspose.PDF
تنفيذ خطوة بخطوة
الخطوة 1: تثبيت وتكوين Aspose.PDF
أضف المساحات المطلوبة:
using Aspose.Pdf.Plugins;
using System.IO;
using System.Threading.Tasks;
الخطوة 2: إعداد PDF النص أو الملف
تحديد ملف PDF الإدخال والخروج المطلوب:
string inputPdfPath = @"C:\Samples\source.pdf";
string outputPdfPath = @"C:\Samples\ChatGPT_output.pdf";
الخطوة 3: إعداد خيارات طلب ChatGPT
يمكنك استخراج النص من PDF يدويا، أو السماح للمكون الإضافي باستخدام ملف PDF بأكمله كإدخال:
using (var plugin = new PdfChatGpt())
{
var options = new PdfChatGptRequestOptions();
options.AddInput(new FileDataSource(inputPdfPath)); // Use full PDF text as message
options.AddOutput(new FileDataSource(outputPdfPath)); // Path for the output PDF
options.ApiKey = "Your-OpenAI-API-Key"; // REQUIRED: Your API key for ChatGPT
options.MaxTokens = 1000; // Limit response size
options.Query = "Summarize the contents of this document."; // Or ask any question about the PDF
يمكنك أيضًا إضافة رسائل محادثة مخصصة (دور النظام / المستخدم):
options.Messages.Add(new Message
{
Content = "You are a document assistant. Summarize the provided PDF text.",
Role = Role.System
});
options.Messages.Add(new Message
{
Content = "What are the main topics covered in this PDF?",
Role = Role.User
});
الخطوة 4: إرسال طلب إلى ChatGPT وحفظ النتيجة
معالجة الطلب بشكل غير متزامن، وتلقي كل من مسار ملف PDF الجديد والرد على ChatGPT:
// Process the request and await the result
var result = await plugin.ProcessAsync(options);
var fileResultPath = result.ResultCollection[0].Data; // Path to the output PDF
var chatCompletion = result.ResultCollection[1].Data as ChatCompletion; // ChatGPT API object
// Access the generated response text if needed:
var firstChoice = chatCompletion?.Choices?.FirstOrDefault();
var responseText = firstChoice?.Message?.Content;
Console.WriteLine($"PDF generated at: {fileResultPath}");
Console.WriteLine("ChatGPT response:");
Console.WriteLine(responseText);
}
الخطوة 5: التعامل مع الأخطاء واستخدام Async
احصل دائمًا على مكالمات async والتعامل مع أخطاء API / الشبكة:
try
{
// (Code above)
}
catch (Exception ex)
{
Console.WriteLine($"Error during ChatGPT PDF processing: {ex.Message}");
}
نموذج تنفيذ كامل
using Aspose.Pdf.Plugins;
using System;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
string inputPdfPath = @"C:\Samples\source.pdf";
string outputPdfPath = @"C:\Samples\ChatGPT_output.pdf";
using (var plugin = new PdfChatGpt())
{
var options = new PdfChatGptRequestOptions();
options.AddInput(new FileDataSource(inputPdfPath));
options.AddOutput(new FileDataSource(outputPdfPath));
options.ApiKey = "Your-OpenAI-API-Key";
options.MaxTokens = 1000;
options.Query = "Summarize the content of this PDF document.";
try
{
var result = await plugin.ProcessAsync(options);
var fileResultPath = result.ResultCollection[0].Data;
var chatCompletion = result.ResultCollection[1].Data as ChatCompletion;
var firstChoice = chatCompletion?.Choices?.FirstOrDefault();
var responseText = firstChoice?.Message?.Content;
Console.WriteLine($"PDF generated at: {fileResultPath}");
Console.WriteLine("ChatGPT response:");
Console.WriteLine(responseText);
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}
}
}
استخدام الحالات والتطبيقات
PDF Summarization و AI Generated التعليقات
تلقائيًا تلخيص العقود أو التقارير أو الوثائق البحثية باستخدام ChatGPT وتخزين الإجابات في ملفات PDF.
أوتوماتيك Q&A أو Insights استخراج
إرسال نصائح مخصصة إلى ChatGPT لاستخراج الإجابات أو اللوحات أو البيانات الرئيسية من ملفات PDF.
بتش وثيقة إثراء
يتم دمجها في تدفقات العمل لمعالجة العديد من ملفات PDF ، وتوليد إجابات على أساس الدردشة أو الإشارات الذاتية.
التحديات والحلول المشتركة
التحدي: حدود API أو تثبيت الاستجابة
الحل: تعديل MaxTokens
و Query
للحصول على نتائج مثالية؛ تقسيم ملفات PDF الكبيرة إلى قطع إذا لزم الأمر.
التحدي: Secure API Key Management
الحل: تخزين مفاتيح API بأمان (متغيرات البيئة، الرموز) وتجنب التشفير الصلب في الإنتاج.
اعتبارات الأداء
- يتم إدخال بطاقات PDF إلى الحد الأدنى من مكالمات API.
- استخدم تدفقات العمل async للحفاظ على استجابة تطبيقك.
- تحديد حدود الرموز لإدارة تكاليف API.
أفضل الممارسات
- تحقق دائمًا من إخراج PDF وأجوبة ChatGPT للحصول على دقة.
- تخصيص الدورات والرسائل للحصول على النتائج المستهدفة.
- إدارة مصداقية API بأمان.
- تسجيل وإدارة الأخطاء بحسن نية في عمليات async.
سيناريوهات متقدمة
- استخدم العديد من PDFs أو التغيرات السريعة في مجلد واحد.
- الجمع بين الرسائل النظامية / المستخدمة في السياق المعقد أو المهام.
- إرسال إخراج PDF للعمليات المنخفضة أو تدفقات العمل.
استنتاجات
Aspose.PDF ChatGPT Plugin for .NET يتيح للمطورين تلقائيًا تحليل المستندات ، وتلخيصها ، ومعالجة PDF التفاعلية باستخدام قوة Chatroulette - مباشرة داخل تطبيقات .net الخاصة بهم.