Ir para o conteúdo do rodapé
USANDO O IRONPDF

Como usar o ChatGPT com o IronPDF para desenvolvedores C#

1.0 O que é o ChatGPT?

O ChatGPT é um chatbot de inteligência artificial (IA) criado pela OpenAI. O termo "ChatGPT" combina as palavras "Chat", que alude ao recurso de chatbot do sistema, e "GPT", que significa Generative Pre-trained Transformer e é um tipo de modelo de linguagem de grande escala (LLM). Os modelos GPT fundamentais da OpenAI, nomeadamente o GPT-3.5 e o GPT-4, servem de base para o ChatGPT, que foi refinado (um método de aprendizagem por transferência) para aplicações conversacionais utilizando uma combinação de técnicas de aprendizagem supervisionada e por reforço, que inclui aprendizagem automática, processamento de linguagem natural e inteligência artificial. O ChatGPT consegue entender e gerar textos semelhantes aos escritos por humanos.

Este artigo demonstrará como desenvolver um aplicativo MAUI que utiliza a API ChatGPT da OpenAI para receber mensagens, oferecer resultados com base nas consultas do usuário e, em seguida, exportar esses resultados como um arquivo PDF para uso posterior usando o IronPDF.

1.1 Configurar uma conta OpenAI

Para se cadastrar em uma conta OpenAI, faça o seguinte:

  • Visite o site oficial da OpenAI.
  • Na página inicial do site, localize e clique no botão Cadastrar-se. Isso o levará ao formulário de criação de conta.
  • Preencha os campos obrigatórios do formulário de inscrição.
  • Clique no link de verificação enviado para o seu endereço de e-mail cadastrado para confirmar o seu endereço de e-mail.
  • Se o seu cadastro for bem-sucedido, você poderá acessar sua conta OpenAI inserindo as informações de login fornecidas no momento do cadastro.

1.2 Obtendo uma chave de API da OpenAI

  • Para acessar a OpenAI, acesse o site e faça login com as informações da sua conta.

    Como usar o ChatGPT com o IronPDF para desenvolvedores C#, Figura 1: Acesse o site da OpenAI Acesse o site da OpenAI

  • Navegue até a área da API da plataforma OpenAI. Em seguida, acesse Configurações da conta > Exibir chave da API, onde você poderá encontrar essa informação.
  • Agora você pode criar uma nova chave de API secreta.

    Como usar o ChatGPT com o IronPDF para desenvolvedores C#, Figura 2: Criar chaves de API Criar chaves de API

2.0 Introdução ao aplicativo .NET MAUI

Para criar um aplicativo .NET MAUI escrito em C#, você precisa ter o Visual Studio 2022 e o .NET Framework 7 instalados. Em seguida, siga os próximos passos para criar e escrever um aplicativo .NET MAUI .

2.1 Abra o Visual Studio

Abra o Visual Studio, selecione "Criar um novo projeto" no menu e digite ".NET MAUI" no campo de pesquisa.

2.2 Escolha o aplicativo .NET MAUI

No Visual Studio, escolha o modelo de aplicativo .NET MAUI na lista de resultados da pesquisa. Após escolher o local, dê a ele um nome apropriado e selecione a localização do projeto. Clique em "Avançar" após a conclusão da configuração.

Como usar o ChatGPT com o IronPDF para desenvolvedores C#, Figura 3: Criar um novo aplicativo .NET MAUI no Visual Studio Crie um novo aplicativo .NET MAUI no Visual Studio.

2.3 Selecionar Framework

Escolha a estrutura necessária; No entanto, por exemplo, é aconselhável escolher a versão mais recente do .NET Framework. Após escolher a versão do framework, clique no botão Criar no Visual Studio.

Como usar o ChatGPT com o IronPDF para desenvolvedores C#, Figura 4: Configurar o novo projeto Configure o novo projeto

No Visual Studio 2022, será criado um novo projeto .NET MAUI . O .NET MAUI, por padrão, desenvolve um aplicativo de contador simples.

Como usar o ChatGPT com o IronPDF para desenvolvedores C#, Figura 5: Seleção do .NET Framework Seleção do .NET Framework

Ao modificar o aplicativo .NET MAUI , o ChatGPT OpenAI pode ser integrado e exportar o resultado para arquivos PDF usando a biblioteca IronPDF C# PDF nesta variante de plataformas.

2.4 Instale o pacote OpenAI

Insira o próximo comando no Console do Gerenciador de Pacotes NuGet .

Install-Package OpenAI

Este comando instalará o pacote OpenAI, que fornece acesso à API necessária para interagir com o ChatGPT usando C#.

2.5 Instalar o IronPDF

Digite o seguinte comando para instalar o pacote IronPDF :

Install-Package IronPdf

O comando acima instala o IronPDF no projeto MAUI. O IronPDF é usado para renderizar conteúdo HTML em arquivos PDF e é fundamental para exportar dados do aplicativo para um documento PDF.

3.0 O que é o IronPDF?

Graças ao IronPDF, uma base robusta de SDK para processamento de PDFs, os desenvolvedores podem criar, ler e editar documentos PDF rapidamente. O mecanismo do Chrome é usado pela biblioteca IronPDF para converter HTML em PDF. Entre os diversos componentes web suportados pela biblioteca estão MAUI, Xamarin, Blazor, Unity, aplicativos HoloLens, Windows Forms, HTML, ASPX, Razor HTML, .NET Core, ASP.NET e WPF. A programação em Microsoft .NET e .NET Core pode ser usada tanto em aplicativos tradicionais do Windows quanto em aplicativos web ASP.NET .

Utilizando HTML5, JavaScript, CSS e imagens, o IronPDF permite criar PDFs atraentes com título e rodapé. A biblioteca da API inclui um conversor robusto de HTML para PDF que pode lidar com PDFs, bem como uma ferramenta e um mecanismo de conversão de PDF independentes de quaisquer fontes externas.

Para saber mais sobre o IronPDF, consulte as páginas do tutorial de conversão de HTML para PDF .

4.0 Exportar resultado da API ChatGPT usando o IronPDF

Adicione o código abaixo no arquivo "MauiProgram.cs":

builder.Services.AddChatGpt(options =>
{
    options.UseOpenAI("API key here"); // Replace with your actual OpenAI API key
    options.DefaultModel = OpenAIChatGptModels.Gpt35Turbo; // Set the default model
    options.MessageLimit = 10; // Limit number of messages per session
    options.MessageExpiration = TimeSpan.FromMinutes(5); // Set message expiration time
});
builder.Services.AddChatGpt(options =>
{
    options.UseOpenAI("API key here"); // Replace with your actual OpenAI API key
    options.DefaultModel = OpenAIChatGptModels.Gpt35Turbo; // Set the default model
    options.MessageLimit = 10; // Limit number of messages per session
    options.MessageExpiration = TimeSpan.FromMinutes(5); // Set message expiration time
});
builder.Services.AddChatGpt(Sub(options)
	options.UseOpenAI("API key here") ' Replace with your actual OpenAI API key
	options.DefaultModel = OpenAIChatGptModels.Gpt35Turbo ' Set the default model
	options.MessageLimit = 10 ' Limit number of messages per session
	options.MessageExpiration = TimeSpan.FromMinutes(5) ' Set message expiration time
End Sub)
$vbLabelText   $csharpLabel

Este trecho de código registra um serviço para a API ChatGPT, que pode então ser usado por outras classes ou páginas em seu aplicativo.

Adicione o seguinte código na página principal do aplicativo, no método de carregamento da página. Isso ajuda a obter a instância do serviço ChatGPT e armazená-la em um objeto local.

_chatGptClient = Handler.MauiContext.Services.GetService<IChatGptClient>();
_chatGptClient = Handler.MauiContext.Services.GetService<IChatGptClient>();
_chatGptClient = Handler.MauiContext.Services.GetService(Of IChatGptClient)()
$vbLabelText   $csharpLabel

Este código recupera a instância do cliente ChatGPT do provedor de serviços, permitindo que a página principal interaja com a API do ChatGPT.

Em seguida, crie uma interface de usuário semelhante à representada no seguinte código XAML:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="ChatGPT_MauiApp.MainPage"
             BackgroundColor="black">
    <StackLayout>
        <StackLayout Orientation="Horizontal" Spacing="25" Padding="30,0">
            <ScrollView WidthRequest="700" HeightRequest="200" x:Name="scrollView">
                <TableView Intent="Data" WidthRequest="700" x:Name="Table_View" BackgroundColor="DarkSlateGrey">
                    <TableRoot>

                    </TableRoot>
                </TableView>
            </ScrollView>
        </StackLayout>
        <StackLayout Padding="30,0">
            <Editor
                x:Name="Userquest"
                Text=""
                HorizontalOptions="Start"
                FontSize="12"
                Placeholder=" Enter your Queries"
                HeightRequest="25" WidthRequest="700" />
        </StackLayout>
        <StackLayout Padding="30,10,10,0">
            <FlexLayout>
                <Button
                    x:Name="Sendquery"
                    Text="Send Query"
                    SemanticProperties.Hint="Click to send query to BOT"
                    Clicked="SendqueryClicked"
                    HorizontalOptions="Center" 
                    BackgroundColor="Green"
                    TextColor="WhiteSmoke" />
                <Button
                    x:Name="Export"
                    Text="Export"
                    SemanticProperties.Hint="Click to export data"
                    Clicked="OnExportClicked"
                    HorizontalOptions="Center" 
                    BackgroundColor="DodgerBlue"
                    TextColor="WhiteSmoke" />
            </FlexLayout>
        </StackLayout>
    </StackLayout>
</ContentPage>
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="ChatGPT_MauiApp.MainPage"
             BackgroundColor="black">
    <StackLayout>
        <StackLayout Orientation="Horizontal" Spacing="25" Padding="30,0">
            <ScrollView WidthRequest="700" HeightRequest="200" x:Name="scrollView">
                <TableView Intent="Data" WidthRequest="700" x:Name="Table_View" BackgroundColor="DarkSlateGrey">
                    <TableRoot>

                    </TableRoot>
                </TableView>
            </ScrollView>
        </StackLayout>
        <StackLayout Padding="30,0">
            <Editor
                x:Name="Userquest"
                Text=""
                HorizontalOptions="Start"
                FontSize="12"
                Placeholder=" Enter your Queries"
                HeightRequest="25" WidthRequest="700" />
        </StackLayout>
        <StackLayout Padding="30,10,10,0">
            <FlexLayout>
                <Button
                    x:Name="Sendquery"
                    Text="Send Query"
                    SemanticProperties.Hint="Click to send query to BOT"
                    Clicked="SendqueryClicked"
                    HorizontalOptions="Center" 
                    BackgroundColor="Green"
                    TextColor="WhiteSmoke" />
                <Button
                    x:Name="Export"
                    Text="Export"
                    SemanticProperties.Hint="Click to export data"
                    Clicked="OnExportClicked"
                    HorizontalOptions="Center" 
                    BackgroundColor="DodgerBlue"
                    TextColor="WhiteSmoke" />
            </FlexLayout>
        </StackLayout>
    </StackLayout>
</ContentPage>
XML

O código ContentPage acima define o layout da interface do usuário do aplicativo. Os usuários podem inserir consultas, interagir com a API do ChatGPT através do botão "Enviar consulta" e exportar os resultados como um PDF usando o botão "Exportar". Os resultados são exibidos em TableView.

A seguir, apresentamos a lógica do código subjacente para lidar com cliques de botões e exportar dados:

private void OnExportClicked(object sender, EventArgs e)
{
    StringBuilder db = new();

    foreach (var tableSection in Table_View.Root.ToList())
    {
        foreach (var cell in tableSection)
        {
            if (cell is TextCell textCell)
            {
                db.Append("<p style='color:red;text-align:left;'>" + textCell.Text + "</p>");
                db.Append("<p style='color:black;text-align:justify;'>" + textCell.Detail + "</p>");
            }
        }
    }

    // Create and save the PDF
    var renderer = new IronPdf.ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(db.ToString());
    pdf.SaveAs("F:\\Download\\Demo.pdf");
}

private async void SendqueryClicked(object sender, EventArgs e)
{
    if (!string.IsNullOrEmpty(Userquest.Text))
    {
        var query = Userquest.Text;
        Userquest.Text = "";
        var tableSection = AddQueryToTable(query);
        ChatGptResponse response = await _chatGptClient.AskAsync(_sessionGuid, query);
        var resp = response.GetMessage();
        AddResponseToTable(tableSection, resp);
    }
}

private TableSection AddQueryToTable(string query)
{
    var textCell = new TextCell
    {
        Text = query,
        TextColor = Colors.Red,
        DetailColor = Colors.WhiteSmoke,
        Detail = ""
    };

    var tableSection = new TableSection { textCell };
    Table_View.Root.Add(tableSection);
    return tableSection;
}

private void AddResponseToTable(TableSection section, string response)
{
    if (section.FirstOrDefault() is TextCell textCell)
    {
        textCell.Detail = response;
    }
}
private void OnExportClicked(object sender, EventArgs e)
{
    StringBuilder db = new();

    foreach (var tableSection in Table_View.Root.ToList())
    {
        foreach (var cell in tableSection)
        {
            if (cell is TextCell textCell)
            {
                db.Append("<p style='color:red;text-align:left;'>" + textCell.Text + "</p>");
                db.Append("<p style='color:black;text-align:justify;'>" + textCell.Detail + "</p>");
            }
        }
    }

    // Create and save the PDF
    var renderer = new IronPdf.ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(db.ToString());
    pdf.SaveAs("F:\\Download\\Demo.pdf");
}

private async void SendqueryClicked(object sender, EventArgs e)
{
    if (!string.IsNullOrEmpty(Userquest.Text))
    {
        var query = Userquest.Text;
        Userquest.Text = "";
        var tableSection = AddQueryToTable(query);
        ChatGptResponse response = await _chatGptClient.AskAsync(_sessionGuid, query);
        var resp = response.GetMessage();
        AddResponseToTable(tableSection, resp);
    }
}

private TableSection AddQueryToTable(string query)
{
    var textCell = new TextCell
    {
        Text = query,
        TextColor = Colors.Red,
        DetailColor = Colors.WhiteSmoke,
        Detail = ""
    };

    var tableSection = new TableSection { textCell };
    Table_View.Root.Add(tableSection);
    return tableSection;
}

private void AddResponseToTable(TableSection section, string response)
{
    if (section.FirstOrDefault() is TextCell textCell)
    {
        textCell.Detail = response;
    }
}
Private Sub OnExportClicked(ByVal sender As Object, ByVal e As EventArgs)
	Dim db As New StringBuilder()

	For Each tableSection In Table_View.Root.ToList()
		For Each cell In tableSection
			Dim tempVar As Boolean = TypeOf cell Is TextCell
			Dim textCell As TextCell = If(tempVar, CType(cell, TextCell), Nothing)
			If tempVar Then
				db.Append("<p style='color:red;text-align:left;'>" & textCell.Text & "</p>")
				db.Append("<p style='color:black;text-align:justify;'>" & textCell.Detail & "</p>")
			End If
		Next cell
	Next tableSection

	' Create and save the PDF
	Dim renderer = New IronPdf.ChromePdfRenderer()
	Dim pdf = renderer.RenderHtmlAsPdf(db.ToString())
	pdf.SaveAs("F:\Download\Demo.pdf")
End Sub

Private Async Sub SendqueryClicked(ByVal sender As Object, ByVal e As EventArgs)
	If Not String.IsNullOrEmpty(Userquest.Text) Then
		Dim query = Userquest.Text
		Userquest.Text = ""
		Dim tableSection = AddQueryToTable(query)
		Dim response As ChatGptResponse = Await _chatGptClient.AskAsync(_sessionGuid, query)
		Dim resp = response.GetMessage()
		AddResponseToTable(tableSection, resp)
	End If
End Sub

Private Function AddQueryToTable(ByVal query As String) As TableSection
	Dim textCell As New TextCell With {
		.Text = query,
		.TextColor = Colors.Red,
		.DetailColor = Colors.WhiteSmoke,
		.Detail = ""
	}

	Dim tableSection As New TableSection From {textCell}
	Table_View.Root.Add(tableSection)
	Return tableSection
End Function

Private Sub AddResponseToTable(ByVal section As TableSection, ByVal response As String)
	Dim tempVar As Boolean = TypeOf section.FirstOrDefault() Is TextCell
	Dim textCell As TextCell = If(tempVar, CType(section.FirstOrDefault(), TextCell), Nothing)
	If tempVar Then
		textCell.Detail = response
	End If
End Sub
$vbLabelText   $csharpLabel

Explicação:

  • O método OnExportClicked cria um PDF a partir do conteúdo HTML coletado da interface do usuário usando o IronPDF. O PDF gerado é salvo em um local especificado.

  • O método SendqueryClicked recebe a consulta do usuário, envia-a para a API OpenAI usando o _chatGptClient e exibe a resposta. Também adiciona a consulta e a resposta a TableView.

  • Os métodos auxiliares AddQueryToTable e AddResponseToTable ajudam a atualizar os componentes da interface do usuário com as consultas do usuário e as respostas do chatbot.

Após adicionar o código acima, tente executar sua solução. Insira uma consulta e recupere o resultado clicando no botão "Enviar consulta". O sistema enviará a consulta do usuário para a API do ChatGPT, recuperará o resultado e exibirá a mensagem na tela.

Como usar o ChatGPT com o IronPDF para desenvolvedores C#, Figura 7: Adicionar consulta de texto ao aplicativo Adicionar consulta de texto ao aplicativo

Clique no botão "Exportar" para exportar os resultados para um arquivo PDF.

Como usar o ChatGPT com o IronPDF para desenvolvedores C#, Figura 8: O arquivo PDF exportado O arquivo PDF exportado

Agora, conseguimos criar um chatbot usando o ChatGPT e exportar esse chat usando o IronPDF em um aplicativo MAUI. Usando o conceito acima, é possível incluir imagens, áudio e vídeo da API do ChatGPT para resultados mais precisos.

5.0 Conclusão

O objetivo deste artigo é desenvolver um aplicativo MAUI que utilize a API ChatGPT da OpenAI para receber mensagens, oferecer resultados com base nas consultas do usuário e exportar esses resultados como um arquivo PDF. Para melhorar a qualidade das sugestões, sinta-se à vontade para explorar e alterar as perguntas. Para verificar se vários modelos produzem melhores resultados, você também pode experimentar modificar o valor da enumeração ChatGptModels dentro do método AddChatGpt em "MauiProgram.cs".

A API ChatGPT é um poderoso programa de IA que nos permite fornecer resultados com base na consulta do usuário. O custo da API ChatGPT é calculado com base no número de solicitações enviadas. O IronPDF é usado para fazer solicitações à API e exportar o resultado para PDF para usos futuros, evitando a necessidade de consultar repetidamente a mesma API.

Com o IronPDF, podemos criar PDFs usando apenas algumas linhas de código. Este aplicativo é adequado para iniciantes e requer apenas conhecimentos básicos para ser utilizado. Nenhum outro pacote depende do IronPDF de qualquer forma. Por exemplo, trata-se de uma biblioteca que vem em um único pacote. Os desenvolvedores do IronPDF podem escolher entre uma variedade de licenças para atender às suas necessidades. Também está disponível um período de teste gratuito. Para obter informações completas sobre preços e licenciamento do IronPDF, consulte a página de licenciamento do IronPDF .

Perguntas frequentes

Como posso integrar o ChatGPT com um aplicativo .NET MAUI?

Para integrar o ChatGPT com um aplicativo .NET MAUI, primeiro crie uma conta OpenAI e obtenha uma chave de API. Em seguida, instale o pacote OpenAI em seu projeto via NuGet e configure a API em seu aplicativo para lidar com as consultas do usuário.

Como faço para converter resultados de API em PDF em um aplicativo MAUI?

Você pode converter resultados de API para PDF em um aplicativo MAUI usando o IronPDF. Após obter as respostas da API ChatGPT, utilize os métodos do IronPDF para renderizar o conteúdo HTML como um PDF.

Quais são os passos envolvidos na configuração de um aplicativo MAUI com tecnologia ChatGPT?

Para configurar um aplicativo MAUI com tecnologia ChatGPT, crie um novo projeto .NET MAUI no Visual Studio, instale os pacotes OpenAI e IronPDF, configure as definições da API no seu código e escreva a lógica para processar as consultas e gerar um PDF como saída.

O IronPDF consegue lidar com conteúdo HTML, JavaScript e CSS ao criar PDFs?

Sim, o IronPDF consegue lidar com conteúdo HTML, JavaScript e CSS ao criar PDFs. Ele usa o mecanismo de renderização do Chrome para converter o conteúdo HTML em um documento PDF.

É possível personalizar as configurações da API ChatGPT no meu aplicativo?

Sim, você pode personalizar as configurações da API ChatGPT em seu aplicativo ajustando parâmetros como tipos de modelo, limites de mensagens e tempos de expiração no arquivo MauiProgram.cs.

Quais são os benefícios de usar o IronPDF em um aplicativo MAUI?

O IronPDF fornece um SDK robusto para criar, ler e editar PDFs. Ele permite a conversão de conteúdo HTML para PDFs, suporta extração de texto e oferece diversas funcionalidades para aprimorar o manuseio de PDFs em um aplicativo MAUI.

Existe algum período de teste gratuito disponível para o IronPDF?

Sim, o IronPDF oferece um período de teste gratuito, permitindo que os desenvolvedores explorem seus recursos e funcionalidades antes de se comprometerem com um plano de licenciamento.

Como faço para instalar os pacotes necessários para um projeto PDF do ChatGPT no MAUI?

Utilize o Console do Gerenciador de Pacotes NuGet no Visual Studio para instalar os pacotes OpenAI e IronPDF. Execute os Install-Package OpenAI e Install-Package IronPDF para adicioná-los ao seu projeto.

Qual é o papel do IronPDF no processamento de documentos PDF?

O IronPDF é usado para criar, editar e converter documentos PDF. Ele permite que desenvolvedores convertam conteúdo da web em PDFs, realizem buscas de texto e extraiam imagens, tornando-o ideal para aplicações que exigem recursos de PDF.

O IronPDF é totalmente compatível com o .NET 10?

Sim, o IronPDF é totalmente compatível com o .NET 10. Ele suporta todas as principais versões do .NET — incluindo .NET 10, 9, 8, 7, 6, Core e .NET Framework — e foi projetado para funcionar imediatamente em projetos .NET 10 sem a necessidade de configurações especiais.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim