Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
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.
Para registrarte en OpenAI, haz lo siguiente:
Para acceder a OpenAI, vaya al sitio web e inicie sesión con los datos de su cuenta.
Acceder al sitio web de OpenAI
Ahora puede crear una Nueva clave API secreta.
Crear claves API
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.
Abre Visual Studio, selecciona "Crear un nuevo proyecto" en el menú e introduce ".NET MAUI" en el campo de búsqueda.
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.
Crear una nueva aplicación .NET MAUI en Visual Studio
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.
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.
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.
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.
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.
IronPDF acepta nombres de usuario y contraseñas a cambio deacceso a archivos PDF protegidos por contraseña.
Para obtener más información sobre IronPDF, consulte la páginaPáginas del tutorial de conversión de HTML a PDF.
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)
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)()
A continuación, crear UI para la interfaz de usuario como la imagen de abajo.
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>
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
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.
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.
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.
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.
9 productos API .NET para sus documentos de oficina