Jak wydobyć strukturowane dane z PDF za pomocą ChatGPT i .NET

Jak wydobyć strukturowane dane z PDF za pomocą ChatGPT i .NET

Wyłączenie zaawansowanej automatyzacji i przepływów roboczych opartych na AI w aplikacjach .NET poprzez ekstrakcję strukturowanych danych (takich jak tabele, formularze lub podmioty) z plików PDF i konwertowanie ich do formatów do czytania przez maszynę.

Wprowadzenie

Struktywna ekstrakcja danych z dokumentów PDF jest krytycznym wymogiem dla biznesowej inteligencji, sprawozdawczości i automatyzacji scenariuszy. podczas gdy Aspose.PDF.Plugin umożliwia wytrzymałą ekstrakt tekstowy w .NET, łączenie go z ChatGPT pozwala rozdzielić, kategoryzować i formatować informacje jako JSON, CSV lub obiekty domeny.

Często używane przypadki:

  • Wyciąganie danych faktury do automatyzacji rachunkowości
  • Przegląd tabeli z dokumentów badawczych
  • Przekształcenie skanowanych formularzy w strukturowane rekordy

Krok 1: Wyciągnij treść tekstu lub tabeli z pliku PDF

Zacznij od korzystania z TextExtractor lub, dla danych tabularnych, opcje specjalistyczne w Aspose.PDF.Plugin.

using Aspose.Pdf.Plugins;

var inputPath = @"C:\Docs\invoice.pdf";
var extractor = new TextExtractor();
var options = new TextExtractorOptions();
options.AddInput(new FileDataSource(inputPath));
var resultContainer = extractor.Process(options);
string rawText = resultContainer.ResultCollection[0].ToString();

Krok 2: Przygotuj i wysyłaj Prompts do ChatGPT

Możesz polecić ChatGPT do parsowania i zwrotu danych w zorganizowanym formacie, takim jak JSON lub CSV.

string apiKey = "YOUR_OPENAI_API_KEY";
string prompt = $"Extract the following invoice data as JSON: {rawText}";
// Use HttpClient as in previous examples
  • Porady na lepsze wyniki:

  • Użyj jasnych, wyraźnych wskazówek: „Wyciągnij tabelę opisów elementów, cen i sum jako JSON”.

  • W przypadku dużych plików PDF, wyciąć i wysłać tekst w segmentach logicznych (np. jeden tabelę na raz).

Krok 3: Parse i Validate AI Output

Po otrzymaniu odpowiedzi ChatGPT, pars strukturowane dane za pomocą parseru JSON (lub CSV):

// Assume jsonData is a JSON string received from ChatGPT
var structuredData = JsonConvert.DeserializeObject<List<InvoiceItem>>(jsonData);

public class InvoiceItem
{
    public string Description { get; set; }
    public decimal Price { get; set; }
    public int Quantity { get; set; }
    public decimal Total { get; set; }
}

Krok w walidacji:

  • Sprawdź ważne typy danych (numery, daty itp.)
  • Log lub flaga niekompletnych / niejasnych danych do przeglądu

Krok 4: Zapisz lub użyj wyciągniętych danych

  • Przechowywanie strukturowanych wyników w bazie danych, pliku programu Excel lub systemie przetwarzania w dół.
  • Opcjonalnie, użyj Aspose.PDF.Plugin’s TableGenerator, aby wstrzyknąć strukturowane dane z powrotem do podsumowania PDF lub sprawozdania.

Zaawansowane scenariusze i rozwiązywanie problemów

  • Ekstrakcja Batch:

  • Przejdź przez wiele plików PDF i gromadź strukturowane dane ze wszystkich dokumentów.

  • Połączenie OCR:

  • W przypadku skanowanych plików PDF użyj wtyczek OCR najpierw przed ekstrakcją tekstu.

  • Błąd w obsłudze:

  • Odnalezienie i rejestrowanie błędów API, nieprawidłowych odpowiedzi JSON oraz niestrukturalnych fragmentów.

Najlepsze praktyki dla precyzji i zgodności

  • Wstępnie wyczyścić tekst PDF przed wysłaniem do ChatGPT, aby usunąć nagłówki / stopy.
  • Unikaj wysyłania wrażliwych dokumentów, chyba że używasz bezpiecznych/autoryzowanych punktów końcowych AI.
  • W przypadku krytycznej ekstrakcji danych użyj kroku weryfikacji po przetwarzaniu.

FAQ: Struktywna ekstrakcja danych za pomocą ChatGPT

**Q: Jakie rodzaje strukturowanych danych mogę wyciągnąć z plików PDF?**A: Tabele, listy, nazwane pola i regularne wzorce (takie jak datę, kwoty, identyfikatory).

**Q: Czy ta metoda może przetwarzać kilka plików PDF naraz?**Odpowiedź: Tak. Ekstrakcja batch jest obsługiwana – przejdź przez zestaw PDF i gromadź wyniki.

**Q: Czy ChatGPT jest zawsze dokładny z tabelami i liczbami?**Odpowiedź: Aby uzyskać najlepsze wyniki, użyj precyzyjnych prędkości i weryfikuj wszystkie wyjścia w kodzie.

 Polski