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.