Hvordan behandle PDF-tekst med ChatGPT i .NET

Hvordan behandle PDF-tekst med ChatGPT i .NET

Denne artikkelen viser hvordan du integrerer ChatGPT med PDF-arbeidsflyter i .NET ved hjelp av Aspose.PDF Chat GPT Plugin. Du vil lære å ekstraktere tekst fra PDFs, behandle det gjennom Chatroulette og skrive svar på nye eller eksisterende PDF filer – ideelt for dokumentsammering, automatisk kommentering, eller AI-drivet innhold berikelse.

Real-verdens problem

Utviklere trenger en raskere måte å koble PDF-innhold til ChatGPT for automatisert behandling og tilbakemelding, sparer tid og øker produktiviteten.

Oversikt over løsning

Aspose.PDF ChatGPT Plugin for .NET lar deg sende PDF-innhold til Chat GPT, motta kompletteringer eller sammendrag, og lagre svar som nye PDFs – alt med minimal kode.

Prerequisites

  • Visual Studio 2019 eller senere
  • .NET 6.0 eller senere
  • Aspose.PDF for .NET installert via NuGet
  • OpenAI API-nøkkel for ChatGPT
PM> Install-Package Aspose.PDF

Step-by-step implementering

Steg 1: Installere og konfigurere Aspose.PDF

Legg til de nødvendige navnene:

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

Steg 2: Forbered PDF-tekst eller fil

Angi innføring PDF og ønsket utgang PDF-fil:

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

Trinn 3: Konfigurere ChatGPT forespørsler alternativer

Du kan ekstraherte tekst fra PDF manuelt, eller la plugin bruke hele PDF-filen som inngang:

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

Du kan også legge til tilpassede samtale meldinger (system/bruker roller):

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

Steg 4: Send forespørsel til ChatGPT og lagre resultat

Behandle forespørselen asynchronous, mottar både den nye PDF-filveien og ChatGPT-responsen:

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

Steg 5: Feil håndtering og async bruk

Alltid henge async-samtaler og håndtere API/nettverksfeil:

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

Komplett eksempler på implementering

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

Bruker tilfeller og applikasjoner

PDF Summarization og AI-genererte kommentarer

Automatisk sammensette kontrakter, rapporter eller forskningsdokumenter ved hjelp av ChatGPT og lagre svar i PDF-er.

Automatisk Q&A eller Insights ekstraksjon

Send tilpassede tilbakemeldinger til ChatGPT for å trekke svar, tabeller eller nøkkeldata fra PDF-filer.

Batch dokumentrikking

Integrere i arbeidsflyter for å behandle mange PDF-er, generere chat-baserte svar eller auto-annotasjoner.

Vanlige utfordringer og løsninger

Utfordring: API-grenser eller respons truncation

*Løsning: * Tilpasning MaxTokens og Query for optimale resultater; splittet store PDF-er i stykker hvis det er nødvendig.

Utfordring: Secure API Key Management

Løsning: Lagre API-nøkler trygt (miljøvariabler, vult) og unngå hardkoding i produksjon.

Performance vurderinger

  • Batch PDF-innføringer og prompt for å minimere API-samtaler.
  • Bruk async arbeidsflyter for å holde appen responsiv.
  • Tune token grenser for å administrere API-kostnader.

Beste praksis

  • Alltid sjekke utgangen av PDF og ChatGPT svar for nøyaktighet.
  • Tilpasse prompts og meldingsroller for målrettet resultat.
  • Sikker forvaltning av API-krediteringer.
  • Log og håndtere feil gyldig i async-operasjoner.

Avanserte scenarier

  • Bruk flere PDF-er eller prompt variasjoner i en loop.
  • Kombiner system/brukermeldinger for komplekse sammenhenger eller oppgaver.
  • Levering av utgang PDF for nedströmsbehandling eller arbeidsflyter.

Conclusion

Aspose.PDF ChatGPT Plugin for .NET gjør det mulig for utviklere å automatisere dokumentanalyse, summarisering og interaktiv PDF-prosessering ved hjelp av kraften i Chat GPT – direkte innenfor deres .Net-applikasjoner.

 Norsk