Como processar texto PDF com ChatGPT em .NET

Como processar texto PDF com ChatGPT em .NET

Este artigo mostra como integrar o ChatGPT com os fluxos de trabalho PDF em .NET usando o Aspose.PDF Plugin Chat GPT. Você aprenderá a extrair texto de PDFs, processá-lo através do ChatgPT, e escrever respostas a arquivos PDF novos ou existentes – ideal para resumo de documentos, auto-comentamento, ou enriquecimento de conteúdo conduzido pela IA.

Problemas do mundo real

Extrair insights significativos, resumos ou respostas de arquivos PDF manualmente é tempo-consumo. os desenvolvedores precisam de uma maneira simplificada de conectar conteúdo PDF com ChatGPT para processamento e feedback automatizados, economizar tempo e aumentar a produtividade.

Solução Overview

Aspose.PDF ChatGPT Plugin para .NET permite que você envia conteúdo PDF para Chat GPT, receba completões ou resumos, e salve respostas como novos PDFs – todos com código mínimo.

Pré-requisitos

  • Visual Studio 2019 ou posterior
  • .NET 6.0 ou posterior
  • Aspose.PDF para .NET instalado através de NuGet
  • OpenAI API chave para ChatGPT
PM> Install-Package Aspose.PDF

Implementação passo a passo

Passo 1: Instale e Configure Aspose.PDF

Adicione os espaços de nome necessários:

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

Passo 2: Prepare o texto ou arquivo PDF

Especifique o seu arquivo PDF de entrada e o resultado PDF desejado:

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

Passo 3: Configurar opções de pedido ChatGPT

Você pode extrair texto do PDF manualmente, ou deixar o plugin usar todo o arquivo PDF como entrada:

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

Você também pode adicionar mensagens de conversa personalizadas (roles de sistema / usuário):

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

Passo 4: Envie uma solicitação para ChatGPT e salve o resultado

Processar a solicitação sem sincronia, receber tanto o novo caminho de arquivo PDF e a resposta do 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);
}

Passo 5: Tratamento de Erros e Uso de Async

Sempre ligue as chamadas de sincronização e gerencie erros API/network:

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

Exemplo completo de implementação

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

Use Casos e Aplicações

PDF Sumarização e Comentários gerados por AI

Resumir automaticamente contratos, relatórios ou documentos de pesquisa usando ChatGPT e salvar respostas em PDFs.

Automação Q&A ou Insights Extracção

Envie promptes personalizados para ChatGPT para extrair respostas, tabelas ou dados-chave de arquivos PDF.

Enriquecimento de Documentos Batch

Integrar em fluxos de trabalho para processar muitos PDFs, gerando respostas baseadas em bate-papo ou anotações automáticas.

Desafios comuns e soluções

Desafios: Limitas de API ou Truncagem de Resposta

Solução: Ajuste MaxTokens e Query para resultados óptimos; dividir grandes PDFs em pedaços, se necessário.

Desafio: Gerenciamento de chaves de API segura

Solução: Armazenar as chaves API de forma segura (variáveis ambientais, vales) e evitar codificação em produção.

Considerações de desempenho

  • Batch PDF entradas e impulsos para minimizar chamadas API.
  • Use fluxos de trabalho async para manter sua aplicação responsiva.
  • Tune limites de token para gerenciar os custos da API.

Melhores Práticas

  • Verifique sempre a saída do PDF e as respostas do ChatGPT para precisão.
  • Personalize os impulsos e as funções de mensagem para resultados alvo.
  • Gerenciamento seguro de credenciais API.
  • Registar e lidar com erros graciosamente nas operações de async.

Os cenários avançados

  • Use múltiplos PDFs ou variações rápidas em um loop.
  • Combine mensagens de sistema/usuário para contextos complexos ou tarefas.
  • Leverage output PDF para processamento downstream ou fluxos de trabalho.

Conclusão

Aspose.PDF ChatGPT Plugin para .NET permite que os desenvolvedores automatizem a análise de documentos, a resumo e o processamento de PDF interativo usando o poder de chatgPT – diretamente dentro de suas aplicações .net. Streamline seus fluxos de trabalho de documento AI, de extração para enriquecimento, com apenas algumas linhas de código.

 Português