Comment traiter le texte PDF avec ChatGPT dans .NET

Comment traiter le texte PDF avec ChatGPT dans .NET

Cet article démontre comment intégrer ChatGPT avec les flux de travail PDF dans .NET en utilisant le plug-in Aspose.PDF Chat GPT. Vous apprendrez à extraire du texte des PDF, à le traiter par le biais de ChatgPT, et à écrire des réponses aux fichiers PDF nouveaux ou existants – idéal pour la résumation de documents, l’auto-commentation ou le renforcement du contenu AI.

Problème du monde réel

L’extraction d’informations significatives, de résumés ou de réponses à partir de fichiers PDF manuellement prend du temps. Les développeurs ont besoin d’une manière simplifiée de connecter le contenu PDF avec ChatGPT pour un traitement et des commentaires automatisés, en économisant de temps et en augmentant la productivité.

Vue de la solution

Aspose.PDF ChatGPT Plugin pour .NET vous permet d’envoyer du contenu PDF à Chat GPT, de recevoir des compléments ou des résumés, et de sauvegarder les réponses comme de nouveaux PDF - tous avec un code minimum.

Principaux

  • Visual Studio 2019 ou ultérieur
  • .NET 6.0 ou ultérieur
  • Aspose.PDF pour .NET installé via NuGet
  • OpenAI API clé pour ChatGPT
PM> Install-Package Aspose.PDF

La mise en œuvre étape par étape

Étape 1 : Installer et configurer Aspose.PDF

Ajoutez les espaces de nom requis :

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

Étape 2 : Préparer le texte PDF ou le fichier

Spécifiez votre fichier PDF d’entrée et la sortie souhaitée :

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

Étape 3 : Configurez les options de requête ChatGPT

Vous pouvez extraire le texte de PDF manuellement, ou laissez le plugin utiliser l’ensemble du fichier PDF comme entrée:

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

Vous pouvez également ajouter des messages de conversation personnalisés (rôles système/utilisateur):

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

Étape 4: Envoyer une demande à ChatGPT et sauvegarder le résultat

Traiter la demande sans synchronisation, recevoir la nouvelle voie de fichier PDF et la réponse de 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);
}

Étape 5 : Traitement des erreurs et utilisation d’Async

Gardez toujours des appels async et gérer les erreurs API/network :

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

Exemple de mise en œuvre complète

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

Utiliser les cas et les applications

PDF Summarisation et commentaires générés par l’IA

Résumez automatiquement les contrats, les rapports ou les documents de recherche en utilisant ChatGPT et enregistrez les réponses dans les PDF.

Automatisé Q&A ou Insights Extraction

Envoyez des promptes personnalisées à ChatGPT pour extraire les réponses, les tables ou les données clés des fichiers PDF.

Batch Document enrichissement

Intégrer dans les flux de travail pour traiter de nombreux PDF, générer des réponses basées sur le chat ou des annotations automatiques.

Défis communs et solutions

Défi : API Limits ou Truncation de réponse

Résolution : Adaptation MaxTokens et Query pour des résultats optimaux ; répartissez les grands PDF en morceaux si nécessaire.

Défi : Sécurité API Key Management

Solution: Entrez les clés API en toute sécurité (variables environnementaux, vaultes) et évitez le codage dur dans la production.

Considérations de performance

  • Batch PDF envoie et encourage à minimiser les appels API.
  • Utilisez les flux de travail async pour garder votre application réactive.
  • Tune les limites de token pour gérer les coûts API.

Migliori pratiche

  • Vérifiez toujours la sortie PDF et les réponses ChatGPT pour l’exactitude.
  • Customiser les promptes et les rôles de messagerie pour les résultats ciblés.
  • Gérer de manière sécurisée les identifiants API.
  • Enregistrer et gérer les erreurs grâce aux opérations async.

Scénarios avancés

  • Utilisez des PDF multiples ou des variations promptes dans un loop.
  • Combiner les messages système/utilisateur pour un contexte complexe ou des tâches.
  • Livraison de la sortie PDF pour le traitement en dessous ou les flux de travail.

Conclusion

Aspose.PDF ChatGPT Plugin pour .NET permet aux développeurs d’automatiser l’analyse de documents, la résumation et le traitement interactif de PDF en utilisant la puissance de Chat GPT – directement dans leurs applications .Net.

 Français