Kako obrađivati PDF tekst s ChatGPT u .NET-u
Ovaj članak pokazuje kako integrirati ChatGPT s radnim tokovima PDF-a u .NET-u pomoću Aspose.PDF Chat GPT Plugin. naučit ćete kako izvući tekst iz pdf-ova, obrađivati ga kroz ChatgPT i pisati odgovore na nove ili postojeće PDF datoteke – idealno za sažetak dokumenata, auto-komentarizaciju ili obogaćivanje sadržaja koji se bavi AI-om.
Real-svjetski problem
Korištenje značajnih informacija, sažetaka ili odgovora iz PDF datoteka ručno potrošava vrijeme. razvijatelji trebaju ukusan način povezivanja sadržaja PDF-a s ChatGPT-om za automatiziranu obradu i povratne informacije, štednju vremena i povećanje produktivnosti.
Pregled rješenja
Aspose.PDF ChatGPT Plugin za .NET omogućuje vam da pošaljete sadržaj PDF-a na Chat GPT, dobijate komplementacije ili sažetke i sačuvate odgovore kao novi PDF - sve s minimalnim kodom.
Preduzeća
- Visual Studio 2019 ili kasnije
- .NET 6.0 ili noviji
- Aspose.PDF za .NET instaliran preko NuGeta
- OpenAI API ključ za ChatGPT
PM> Install-Package Aspose.PDF
Korak po korak provedba
Korak 1: Instaliranje i konfiguracija Aspose.PDF
Dodajte potrebne nazivne prostore:
using Aspose.Pdf.Plugins;
using System.IO;
using System.Threading.Tasks;
Korak 2: Pripremite PDF tekst ili datoteku
Upišite PDF ulaz i željeni izlaz PDF datoteke:
string inputPdfPath = @"C:\Samples\source.pdf";
string outputPdfPath = @"C:\Samples\ChatGPT_output.pdf";
Korak 3: Konfigurirajte ChatGPT Opcije za zahtjev
Možete izvaditi tekst iz PDF-a ručno, ili dopustiti da plugin koristi cijeli PDF datoteku kao ulaz:
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
Također možete dodati prilagođene poruke za razgovor (system/user uloge):
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
});
Korak 4: Pošaljite zahtjev ChatGPT i sačuvajte rezultate
Procesiranje zahtjeva asinkronno, dobivajući i novu put PDF datoteke i odgovor 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);
}
Korak 5: Rješavanje pogrešaka i korištenje Async
Uvijek uključite sinhronizacijske pozive i rješavajte API/network pogreške:
try
{
// (Code above)
}
catch (Exception ex)
{
Console.WriteLine($"Error during ChatGPT PDF processing: {ex.Message}");
}
Potpuni primjer provedbe
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}");
}
}
}
}
Korištenje slučajeva i aplikacija
PDF sažetak i AI generirani komentari
Automatski sažeti ugovore, izvješća ili istraživačke dokumente pomoću ChatGPT i sačuvati odgovore u PDF-ovima.
Automatizirani Q&A ili Insights ekstrakcija
Pošaljite prilagođene prijedloge ChatGPT-u za uklanjanje odgovora, tablica ili ključnih podataka iz PDF datoteka.
Batch dokument obogaćivanje
Integrirajte se u tokove rada kako biste obrađivali mnoge PDF-ove, generirajući odgovore na temelju razgovora ili automatske prijave.
Zajednički izazovi i rješenja
Izazov: API ograničenja ili Truncation odgovora
**Rješenje: ** Prilagoditi MaxTokens
i Query
za optimalne rezultate; razdvajanje velikih PDF-a u komadiće ako je potrebno.
Izazov: sigurna API ključ upravljanja
Rješenje: Sačuvajte API ključeve sigurno (povijesne varijante, valovi) i izbjegavajte tvrdo kodiranje u proizvodnji.
Razmatranje učinkovitosti
- Batch PDF ulazi i potiče kako bi se smanjili API pozivi.
- Koristite async radne tokove kako bi vaša aplikacija bila odgovorna.
- Tune token ograničenja za upravljanje API troškovima.
Najbolje prakse
- Uvijek provjerite PDF izlazak i ChatGPT odgovore za točnost.
- Prilagodite prompte i uloge poruke za ciljane rezultate.
- Sigurno upravljanje API autentifikacijama.
- Prijavite se i rješavajte pogreške milosrdno u operacijama async.
Napredni scenariji
- Koristite više PDF-a ili promptne varijante u jednom krugu.
- Kombinirajte poruke sustava/korisnika za složen kontekst ili zadatke.
- Preuzmite izlazak PDF-a za procesiranje ili radne tokove.
zaključak
Aspose.PDF ChatGPT Plugin za .NET omogućuje razvijalcima da automatiziraju analizu dokumenata, sažetku i interaktivnu obradu PDF-a koristeći moć Chattgpta – izravno u njihovim aplikacijama.