Jak przetwarzać tekst PDF z ChatGPT w .NET

Jak przetwarzać tekst PDF z ChatGPT w .NET

Ten artykuł pokazuje, jak zintegrować ChatGPT z przepływami roboczymi PDF w .NET za pomocą programu Aspose.PDF Plugin. Nauczysz się wyciągać tekst z plików PDF, przetwarzać go za pośrednictwem Chatroulette i pisać odpowiedzi na nowe lub istniejące pliki PDF – idealne do podsumowania dokumentów, automatycznego komentowania lub wzbogacania treści prowadzonych przez AI.

Problem świata rzeczywistego

Wyciąganie znaczących informacji, podsumowania lub odpowiedzi z plików PDF ręcznie jest czasochłonne. deweloperzy potrzebują upraszczonego sposobu łączenia treści PDF z ChatGPT do automatycznego przetwarzania i zwrotów, oszczędzania czasu i zwiększenia produktywności.

Przegląd rozwiązania

Aspose.PDF ChatGPT Plugin dla .NET umożliwia wysyłanie treści PDF do ChathgPT, otrzymanie uzupełnienia lub podsumowania oraz przechowywanie odpowiedzi jako nowych plików PDF – wszystko z minimalnym kodem.

Warunki

  • Visual Studio 2019 lub później
  • .NET 6.0 lub nowszy
  • Aspose.PDF dla .NET zainstalowany za pośrednictwem NuGet
  • OpenAI API Key dla ChatGPT
PM> Install-Package Aspose.PDF

Wdrażanie krok po kroku

Krok 1: Instaluj i skonfiguruj Aspose.PDF

Dodaj wymagane przestrzenie:

using Aspose.Pdf.Plugins;
using System.IO;
using System.Threading.Tasks;

Krok 2: Przygotuj tekst lub plik PDF

Wyznacz swój wkład PDF i pożądany plik wyjścia PDF:

string inputPdfPath = @"C:\Samples\source.pdf";
string outputPdfPath = @"C:\Samples\ChatGPT_output.pdf";

Krok 3: Konfiguracja opcji żądania ChatGPT

Możesz ręcznie wyciągać tekst z PDF lub pozwól, aby wtyczka używała całego pliku PDF jako wejścia:

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

Możesz również dodać dostosowane wiadomości rozmowy (role systemu/użytkownika):

    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
    });

Krok 4: Wyślij prośbę do ChatGPT i zaoszczędź wynik

Przetwarzanie wniosku bezsynchronnie, otrzymując zarówno nową ścieżkę pliku PDF, jak i odpowiedź 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);
}

Krok 5: Rozwiązywanie błędów i używanie async

Zawsze włączyć połączenia asyncowe i radzić sobie z błędami API / sieci:

try
{
    // (Code above)
}
catch (Exception ex)
{
    Console.WriteLine($"Error during ChatGPT PDF processing: {ex.Message}");
}

Pełny przykład wdrażania

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}");
            }
        }
    }
}

Korzystanie z przypadków i aplikacji

PDF Summarization i komentarze generowane przez AI

Automatycznie podsumowanie umów, raportów lub dokumentów badawczych za pomocą ChatGPT i zapisywanie odpowiedzi w plikach PDF.

Automatyczne Q&A lub Insights ekstrakcja

Wyślij przyzwoite sugestie do ChatGPT, aby wyciągać odpowiedzi, tabele lub kluczowe dane z plików PDF.

Wzbogacanie dokumentów Batch

Integruj się w przepływy robocze, aby przetwarzać wiele plików PDF, generując odpowiedzi oparte na czacie lub automatyczne notatki.

Wspólne wyzwania i rozwiązania

Wyzwanie: API Limits or Response Truncation

Rozwiązanie: Dostosowanie MaxTokens i Query dla optymalnych wyników; podziel duże pliki PDF na fragmenty, jeśli to konieczne.

Wyzwanie: Secure API Key Management

Rozwiązanie: Zapisz klucze API bezpiecznie (warianty środowiska, waluty) i unikać kodowania w produkcji.

uwzględnienie wydajności

  • Zestaw PDF wprowadza i promptuje, aby zminimalizować połączenia API.
  • Użyj przepływów pracy async, aby Twoja aplikacja była odpowiednia.
  • Tune token limity do zarządzania kosztami API.

Najlepsze praktyki

  • Zawsze sprawdź wyjście PDF i odpowiedzi ChatGPT dla dokładności.
  • Dostosuj promocje i role wiadomości do celowych wyników.
  • Bezpiecznie zarządzać identyfikacjami API.
  • Zarejestruj i radź sobie z błędami w operacjach async.

Zaawansowane scenariusze

  • Użyj wielu plików PDF lub szybkich odmian w jednym kręgu.
  • Połączenie wiadomości systemowych/użytkowników dla złożonego kontekstu lub zadań.
  • Wydajność PDF do przetwarzania downstream lub przepływów roboczych.

konkluzja

Aspose.PDF ChatGPT Plugin dla .NET umożliwia deweloperom automatyczne analizy dokumentów, podsumowanie i interaktywne przetwarzanie plików PDF przy użyciu zasilania chatgPT – bezpośrednio w ich aplikacjach .net.

 Polski