USO DE IRONPDF

Cómo utilizar ChatGPT con IronPDF para desarrolladores C#

Actualizado 17 de marzo, 2024
Compartir:

1.0 ¿Qué es ChatGPT?

ChatGPT es una inteligencia artificial(AI) chatbot creado por OpenAI. El término "ChatGPT" combina las palabras "Chat", que alude a la función de chatbot del sistema, y "GPT", que significa Generative Pre-trained Transformer y es una especie de gran modelo lingüístico.(LLM). Los modelos GPT fundamentales de OpenAI, a saber, GPT-3.5 y GPT-4, sirven de base para ChatGPT, que se ha perfeccionado(un método de aprendizaje por transferencia) para aplicaciones conversacionales utilizando una combinación de técnicas de aprendizaje supervisado y de refuerzo, que incluye el aprendizaje automático, el procesamiento del lenguaje natural y la inteligencia artificial. ChatGPT puede entender y generar texto similar al humano.

Este artículo demostrará cómo desarrollar una aplicación MAUI que hace uso de la API OpenAI ChatGPT para tomar mensajes, ofrecer resultados basados en las consultas de los usuarios, y luego exportar los resultados como un archivo PDF para su uso posterior utilizando IronPDF.

1.1 Crear una cuenta OpenAI

Para registrarte en OpenAI, haz lo siguiente:

  • Visite el sitio web oficial de OpenAI.
  • En la página de inicio del sitio web, localice y haga clic en el botón Inscribirse. Esto le llevará al formulario de creación de cuenta.
  • Rellene los campos obligatorios del formulario de inscripción.
  • Haga clic en el enlace de verificación enviado a su cuenta de correo electrónico registrada para confirmar su dirección de correo electrónico.
  • Si su registro se ha realizado correctamente, debería poder acceder a su cuenta de OpenAI introduciendo los datos de acceso que proporcionó al registrarse.

1.2 Obtener una clave API de OpenAI

  • Para acceder a OpenAI, vaya al sitio web e inicie sesión con los datos de su cuenta.

    Cómo utilizar ChatGPT con IronPDF para desarrolladores C#, Figura 1: Acceso al sitio web de OpenAI

    Acceder al sitio web de OpenAI

  • Navegue hasta el área API de la plataforma OpenAI. A continuación, Configuración de la cuenta > Ver clave API, donde puede encontrar esto.
  • Ahora puede crear una Nueva clave API secreta.

    Cómo utilizar ChatGPT con IronPDF para desarrolladores C#, Figura 2: Crear claves API

    Crear claves API

2.0 Primeros pasos con la aplicación .NET MAUI

Necesitas Visual Studio 2022 y .NET 7 Framework instalado para crear la aplicación .NET MAUI escribiendo en C#. A continuación, sigue los siguientes pasos para crear y escribir una aplicación .NET MAUI.

2.1 Abrir Visual Studio

Abre Visual Studio, selecciona "Crear un nuevo proyecto" en el menú e introduce ".NET MAUI" en el campo de búsqueda.

2.2 Elegir la aplicación .NET MAUI

En Visual Studio, elige la plantilla de aplicación .NET MAUI de la lista de resultados de búsqueda. Después de elegirlo, ponle un nombre decente y elige la ubicación del proyecto. Haga clic en "Siguiente" una vez completada la configuración.

Cómo utilizar ChatGPT con IronPDF Para desarrolladores C#, Figura 3: Crear una nueva aplicación .NET MAUI en Visual Studio

Crear una nueva aplicación .NET MAUI en Visual Studio

2.3 Seleccionar marco

Elija el marco necesario; sin embargo, por ejemplo, se aconseja elegir el .NET Framework más reciente. Pulse el botón Crear en Visual Studio después de elegir la versión del framework.

Cómo utilizar ChatGPT con IronPDF para desarrolladores C#, Figura 4: Configurar el nuevo proyecto

Configurar el nuevo proyecto

En Visual Studio 2022, se creará un nuevo proyecto .NET MAUI. .NET MAUI, por defecto, desarrolla una aplicación de contador directa.

Cómo utilizar ChatGPT con IronPDF para desarrolladores C#, Figura 5: Selección de .NET Framework

Selección del .NET Framework

Modificando la aplicación .NET MAUI, se puede integrar la OpenAI ChatGPT y exportar el resultado en archivos PDF utilizando la librería IronPDF C# PDF en esta variante de plataformas.

2.4 Instalar el paquete OpenAI

Introduzca el siguiente comando en la consola de NuGet Package Manager.

Install-Package OpenAI

Introduzca la línea de código anterior en la consola del gestor de paquetes, que le ayudará a instalar el paquete OpenAI.

Install-Package IronPdf

El código anterior ayuda a instalar IronPDF en el código MAUI.

3.0 ¿Qué es IronPDF?

Los desarrolladores pueden crear, leer y editar rápidamente documentos PDF gracias a IronPDF, una sólida base de SDK de PDF para el procesamiento de PDF. El motor Chrome es utilizado por la biblioteca IronPDF para convertir HTML a PDF. Entre los diversos componentes web compatibles con la biblioteca se encuentran MAUI, Xamarin, Blazor, Unity, aplicaciones HoloLens, Windows Forms, HTML, ASPX, Razor HTML, .NET Core, ASP.NET y WPF. La programación Microsoft.NET y .NET Core puede utilizarse tanto en aplicaciones Windows tradicionales como en aplicaciones web ASP.NET.

Mediante HTML5, JavaScript, CSS e imágenes, IronPDF permite crear atractivos PDF con título y pie de página. La biblioteca API incluye un sólido conversor de HTML a PDF que puede trabajar con archivos PDF, así como una herramienta y un motor de conversión de PDF independientes de cualquier fuente externa.

4.0 Exportar el resultado de la API ChatGPT utilizando IronPDF

Añade el siguiente código en el archivo "MauiProgram.cs":

builder.Services.AddChatGpt(options =>
    {
        options.UseOpenAI("API key here");
        options.DefaultModel = OpenAIChatGptModels.Gpt35Turbo; 
        options.MessageLimit = 10;
        options.MessageExpiration = TimeSpan.FromMinutes(5); 
    }
);
builder.Services.AddChatGpt(options =>
    {
        options.UseOpenAI("API key here");
        options.DefaultModel = OpenAIChatGptModels.Gpt35Turbo; 
        options.MessageLimit = 10;
        options.MessageExpiration = TimeSpan.FromMinutes(5); 
    }
);
builder.Services.AddChatGpt(Sub(options)
		options.UseOpenAI("API key here")
		options.DefaultModel = OpenAIChatGptModels.Gpt35Turbo
		options.MessageLimit = 10
		options.MessageExpiration = TimeSpan.FromMinutes(5)
End Sub)
VB   C#

Esto ayuda a crear un servicio para la API ChatGPT Entonces puede ser recuperado y utilizado por las otras clases/páginas.

Añade lo siguiente en la página principal de la aplicación en el método de carga de página. Esto ayuda a obtener el instante del servicio ChatGPT y almacenarlo en un objeto local.

_chatGptClient = Handler.MauiContext.Services.GetService<IChatGptClient>();
_chatGptClient = Handler.MauiContext.Services.GetService<IChatGptClient>();
_chatGptClient = Handler.MauiContext.Services.GetService(Of IChatGptClient)()
VB   C#

A continuación, crear UI para la interfaz de usuario como la imagen de abajo.

Cómo utilizar ChatGPT con IronPDF para desarrolladores C#, Figura 6: UI de la aplicación MAUI

UI de la aplicación MAUI

<?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>
                        <!--<TableSection >
                            --><!--<TextCell Text="test" Detail="test">
                            </TextCell>--><!--
                        </TableSection>-->
                    </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="Sent 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

El código anterior ayuda a diseñar e implementar la página de interfaz de usuario. En la página de diseño, el cuadro de texto permite al usuario introducir la consulta. Una vez que introduzcan el texto que necesiten, cuando hagan clic en el botón, se enviará una consulta que interactuará con la API de ChatGPT y producirá el resultado. El resultado se mostrará en Tableview.

Como la versión demo ChatGPT, el servicio no impide más de 3 solicitudes por minuto. La interfaz de usuario también tiene un botón llamado "exportar" que permitirá exportar la consulta del usuario y la respuesta de la API ChatGPT a un documento PDF que podrá utilizarse en el futuro como referencia.

Los ejemplos de código siguientes se utilizan para exportar a Excel.

private void OnExportClicked(object sender, EventArgs e)
{
    celldata = null;
    db = new StringBuilder();
    foreach (var table_section in Table_View.Root.ToList().Select(s => new TableSection { s }).ToList())
    {
        if (table_section.Count > 0)
        {
            celldata = null;
            celldata = table_section.Select(s => (Microsoft.Maui.Controls.TextCell)s).FirstOrDefault();
            db.Append("<p style='color:red;text-align:left;'>" + celldata.Text + "</p>");
            db.Append("<p style='color:black;text-align:justify;'>" + celldata.Detail + "</p>");
        }
        var renderer = new 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.ToString()))
    {
        var query = Userquest.Text;
        Userquest.Text = "";
        var tablesec = SetGetTextCell(query);
        ChatGptResponse response = await _chatGptClient.AskAsync(_sessionGuid, query);
        var resp = response.GetMessage();
        tablesec.Detail = resp.ToString();
    }
}

private Microsoft.Maui.Controls.TextCell SetGetTextCell(string Setvalue)
{
    celldata = null;
    if (!string.IsNullOrEmpty(Setvalue))
    {
        celldata = new TextCell
        {
            Text = Setvalue,
            TextColor = Colors.Red,
            DetailColor = Colors.WhiteSmoke,
            Detail = ""
        };
        Table_View.Root.Add(new TableSection()
            {
                celldata
            });
    }
    return celldata;
}
private void OnExportClicked(object sender, EventArgs e)
{
    celldata = null;
    db = new StringBuilder();
    foreach (var table_section in Table_View.Root.ToList().Select(s => new TableSection { s }).ToList())
    {
        if (table_section.Count > 0)
        {
            celldata = null;
            celldata = table_section.Select(s => (Microsoft.Maui.Controls.TextCell)s).FirstOrDefault();
            db.Append("<p style='color:red;text-align:left;'>" + celldata.Text + "</p>");
            db.Append("<p style='color:black;text-align:justify;'>" + celldata.Detail + "</p>");
        }
        var renderer = new 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.ToString()))
    {
        var query = Userquest.Text;
        Userquest.Text = "";
        var tablesec = SetGetTextCell(query);
        ChatGptResponse response = await _chatGptClient.AskAsync(_sessionGuid, query);
        var resp = response.GetMessage();
        tablesec.Detail = resp.ToString();
    }
}

private Microsoft.Maui.Controls.TextCell SetGetTextCell(string Setvalue)
{
    celldata = null;
    if (!string.IsNullOrEmpty(Setvalue))
    {
        celldata = new TextCell
        {
            Text = Setvalue,
            TextColor = Colors.Red,
            DetailColor = Colors.WhiteSmoke,
            Detail = ""
        };
        Table_View.Root.Add(new TableSection()
            {
                celldata
            });
    }
    return celldata;
}
Private Sub OnExportClicked(ByVal sender As Object, ByVal e As EventArgs)
	celldata = Nothing
	db = New StringBuilder()
	For Each table_section In Table_View.Root.ToList().Select(Function(s) New TableSection From {s}).ToList()
		If table_section.Count > 0 Then
			celldata = Nothing
			celldata = table_section.Select(Function(s) CType(s, Microsoft.Maui.Controls.TextCell)).FirstOrDefault()
			db.Append("<p style='color:red;text-align:left;'>" & celldata.Text & "</p>")
			db.Append("<p style='color:black;text-align:justify;'>" & celldata.Detail & "</p>")
		End If
		Dim renderer = New ChromePdfRenderer()
		Dim pdf = renderer.RenderHtmlAsPdf(db.ToString())
		pdf.SaveAs("F:\Download\Demo.pdf")
	Next table_section
End Sub

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

Private Function SetGetTextCell(ByVal Setvalue As String) As Microsoft.Maui.Controls.TextCell
	celldata = Nothing
	If Not String.IsNullOrEmpty(Setvalue) Then
		celldata = New TextCell With {
			.Text = Setvalue,
			.TextColor = Colors.Red,
			.DetailColor = Colors.WhiteSmoke,
			.Detail = ""
		}
		Table_View.Root.Add(New TableSection() From {celldata})
	End If
	Return celldata
End Function
VB   C#

Al recuperar los datos de entrada uno por uno utilizando el bucle for, a continuación, añadir la cadena HTML en la cadena para dar formato al texto de la pantalla. A continuación, se puede utilizar IronPDF para exportar los resultados a PDF y guardarlos en la ubicación deseada.

Después de añadir el código anterior, intente ejecutar la solución. A continuación, introduzca la consulta y obtenga el resultado pulsando el botón "enviar consulta". Enviará la consulta del usuario para recuperar el resultado y mostrará el mensaje en la pantalla como en la imagen siguiente.

Cómo utilizar ChatGPT con IronPDF para desarrolladores C#, Figura 7: Añadir consulta de texto a la aplicación

Añadir consulta de texto en la aplicación

Haga clic en el botón Exportar para exportar los resultados a un PDF como el de la imagen siguiente.

Cómo utilizar ChatGPT con IronPDF para desarrolladores C#, Figura 8: El archivo PDF exportado

El archivo PDF exportado

Ahora, hemos sido capaces de crear un chatbot usando ChatGPT y exportar ese chat usando IronPDF en MAUI App. Utilizando el concepto anterior, es posible incluir imágenes, audio y vídeo de ChatGPT API para obtener resultados más precisos.

5.0 Conclusión

El objetivo de este artículo es desarrollar una aplicación MAUI que haga uso de la API OpenAI ChatGPT para tomar mensajes, ofrecer resultados basados en las consultas de los usuarios, y exportar esos resultados como un archivo PDF. Para mejorar el calibre de las sugerencias, siéntete libre de explorar alterando las preguntas. Para ver si varios modelos producen mejores resultados, también puede experimentar modificando el valor del enum ChatGptModels dentro del método AddChatGpt en "MauiProgram.cs".

La API ChatGPT es un potente programa de IA que nos permite ofrecer resultados basados en la consulta del usuario. El coste de la API ChatGPT se calcula en función del número de solicitudes enviadas. IronPDF se utiliza para realizar solicitudes de API y exportar el resultado a PDF para usos futuros, evitando consultar repetidamente la misma solicitud de API.

Con IronPDF podemos crear PDFs utilizando sólo unas pocas líneas de código. Esta aplicación es adecuada para principiantes y sólo requiere conocimientos básicos para utilizarla. Ningún otro paquete depende en modo alguno de IronPDF. Por ejemplo, es una biblioteca que viene en un solo paquete. Los desarrolladores de IronPDF pueden elegir entre varias licencias para adaptarse a sus necesidades. También hay disponible una versión de prueba gratuita. Para obtener información completa sobre precios y licencias de IronPDF, consulte la páginaPágina de licencias de IronPDF.

< ANTERIOR
Cómo utilizar Fluent Validation con IronPDF en C#
SIGUIENTE >
Cómo crear firmas PDF en .NET

¿Listo para empezar? Versión: 2024.12 acaba de salir

Descarga gratuita de NuGet Descargas totales: 11,622,374 Ver licencias >