Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
ChatGPT est une intelligence artificielle(AI) créé par OpenAI. Le terme "ChatGPT" combine les mots "Chat", qui fait référence à la fonction de chatbot du système, et "GPT", qui signifie Generative Pre-trained Transformer (transformateur génératif pré-entraîné) et qui est une sorte de grand modèle de langage(LLM). Les modèles GPT fondamentaux de l'OpenAI, à savoir GPT-3.5 et GPT-4, servent de base à ChatGPT, qui a été affiné(une méthode d'apprentissage par transfert) pour les applications conversationnelles en utilisant une combinaison de techniques d'apprentissage supervisé et de renforcement, ce qui inclut l'apprentissage automatique, le traitement du langage naturel et l'intelligence artificielle. ChatGPT peut comprendre et générer des textes de type humain.
Cet article montre comment développer une application MAUI qui utilise l'API OpenAI ChatGPT pour prendre des messages, proposer des résultats basés sur les requêtes de l'utilisateur, puis exporter ces résultats sous forme de fichier PDF pour une utilisation ultérieure à l'aide d'IronPDF.
Pour créer un compte OpenAI, procédez comme suit :
Pour accéder à l'OpenAI, rendez-vous sur le site web et connectez-vous à l'aide de vos informations de compte.
**Accéder au site web de l'OpenAI
Vous pouvez maintenant créer une nouvelle clé API secrète.
Créer des clés API
Vous devez disposer de Visual Studio 2022 et du Framework .NET 7 pour créer l'application .NET MAUI en C#. Ensuite, suivez les étapes suivantes pour créer et écrire une application MAUI .NET.
Ouvrez Visual Studio, puis sélectionnez "Créer un nouveau projet" dans le menu et entrez ".NET MAUI" dans le champ de recherche.
Dans Visual Studio, choisissez le modèle d'application .NET MAUI dans la liste des résultats de la recherche. Après l'avoir choisi, donnez-lui un nom décent et choisissez l'emplacement du projet. Cliquez sur "Suivant" une fois la configuration terminée.
Créer une nouvelle application MAUI .NET dans Visual Studio
Choisir le cadre nécessaire ; néanmoins, il est conseillé, par exemple, de choisir le Framework .NET le plus récent. Appuyez sur le bouton Créer dans Visual Studio après avoir choisi la version du framework.
Configurer le nouveau projet
Dans Visual Studio 2022, un nouveau projet .NET MAUI sera créé. nET MAUI, par défaut, développe une application de comptoir simple.
Sélection du Framework .NET
En modifiant l'application .NET MAUI, il est possible d'intégrer l'OpenAI ChatGPT et d'exporter le résultat dans des fichiers PDF à l'aide de la bibliothèque IronPDF for .NET PDF sur cette variante de plates-formes.
Entrez la commande suivante dans la console du gestionnaire de paquets NuGet.
Install-Package OpenAI
Saisissez la ligne de code ci-dessus dans la console du gestionnaire de paquets, qui vous aidera à installer le paquet OpenAI.
Install-Package IronPdf
Le code ci-dessus permet d'installer IronPDF dans le code MAUI.
Les développeurs peuvent créer, lire et modifier rapidement des documents PDF grâce à IronPDF, un SDK robuste pour le traitement des PDF. Le moteur Chrome est utilisé par la bibliothèque IronPDF pour convertir HTML en PDF. Parmi les plusieurs composants web que la bibliothèque prend en charge, on trouve MAUI, Xamarin, Blazor, Unity, les apps HoloLens, Windows Forms, HTML, ASPX, Razor HTML, .NET Core, ASP.NET et WPF. La programmation Microsoft.NET et .NET Core peut être utilisée à la fois dans les applications Windows traditionnelles et dans les applications web ASP.NET.
En utilisant HTML5, JavaScript, CSS et des images, IronPDF vous permet de créer des PDF attrayants qui disposent d'un titre et d'un pied de page. La bibliothèque API comprend un convertisseur HTML-PDF robuste qui peut traiter les PDF, ainsi qu'un outil et un moteur de conversion PDF autonome, indépendant de toute source extérieure.
IronPDF accepte les noms d'utilisateur et les mots de passe en échange deaccès aux fichiers PDF protégés par un mot de passe.
Pour en savoir plus sur l'IronPDF, reportez-vous à la rubriquePages de tutoriel pour la conversion de HTML en PDF.
Ajoutez le code ci-dessous dans le fichier "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)
Cela permet de créer un service pour l'API ChatGPT, qui peut alors être récupéré et utilisé par d'autres classes/pages.
Ajoutez le texte ci-dessous sur la page principale de l'application dans la méthode de chargement de la page. Cela permet d'obtenir l'instantané du service ChatGPT et de le stocker dans un objet local.
_chatGptClient = Handler.MauiContext.Services.GetService<IChatGptClient>();
_chatGptClient = Handler.MauiContext.Services.GetService<IChatGptClient>();
_chatGptClient = Handler.MauiContext.Services.GetService(Of IChatGptClient)()
Créez ensuite l'interface utilisateur comme dans l'image ci-dessous.
UI de l'application 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>
Le code ci-dessus permet de concevoir et de mettre en œuvre la page de l'interface utilisateur. Sur la page de conception, la zone de texte permet à l'utilisateur de saisir la requête. Une fois qu'ils ont saisi le texte nécessaire, lorsqu'ils cliquent sur le bouton, une requête est envoyée qui interagit avec l'API ChatGPT et produit le résultat. Le résultat sera affiché dans Tableview
.
Dans la version démo de ChatGPT, le service n'empêche pas plus de 3 demandes par minute. L'interface utilisateur dispose également d'un bouton appelé "export" qui permet d'exporter la requête de l'utilisateur et la réponse de l'API ChatGPT dans un document PDF qui pourra être utilisé à l'avenir à titre de référence.
Les exemples de code ci-dessous sont utilisés pour l'exportation vers 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
Après avoir récupéré les données d'entrée une par une à l'aide de la boucle for, ajoutez la chaîne HTML dans la chaîne pour formater le texte d'affichage. IronPDF peut ensuite être utilisé pour exporter les résultats au format PDF et les enregistrer à l'endroit souhaité.
Après avoir ajouté le code ci-dessus, essayez d'exécuter la solution. Saisissez ensuite la requête et récupérez le résultat en cliquant sur le bouton "envoyer la requête". Il enverra la requête de l'utilisateur pour récupérer le résultat et affichera le message sur l'écran comme dans l'image ci-dessous.
Ajouter une requête de texte dans l'application
Cliquez sur le bouton d'exportation pour exporter les résultats au format PDF, comme dans l'image ci-dessous.
Le fichier PDF exporté
Maintenant, nous avons pu créer un chatbot en utilisant ChatGPT et exporter ce chat en utilisant IronPDF sur MAUI App. En utilisant le concept ci-dessus, il est possible d'inclure des images, de l'audio et de la vidéo à partir de l'API ChatGPT pour obtenir des résultats plus précis.
L'objectif de cet article est de développer une application MAUI qui utilise l'API OpenAI ChatGPT pour prendre des messages, offrir des résultats basés sur les requêtes de l'utilisateur et exporter ces résultats sous la forme d'un fichier PDF. Pour améliorer le calibre des suggestions, n'hésitez pas à explorer en modifiant les questions. Pour voir si différents modèles produisent de meilleurs résultats, vous pouvez aussi expérimenter en modifiant la valeur de l'enum ChatGptModels
dans la méthode AddChatGpt
de "MauiProgram.cs".
L'API ChatGPT est un puissant programme d'intelligence artificielle qui nous permet de fournir des résultats basés sur la requête de l'utilisateur. Le coût de l'API ChatGPT est calculé en fonction du nombre de requêtes envoyées. IronPDF est utilisé pour effectuer des requêtes API et exporter le résultat au format PDF pour des utilisations ultérieures, ce qui évite d'effectuer plusieurs fois la même requête API.
Avec IronPDF, nous pouvons créer des PDF en utilisant seulement quelques lignes de code. Cette application convient aux débutants et ne nécessite que des connaissances de base pour être utilisée. Aucun autre paquet ne dépend d'IronPDF de quelque manière que ce soit. Par exemple, il s'agit d'une bibliothèque qui se présente sous la forme d'un paquet unique. Les développeurs IronPDF peuvent choisir parmi une variété de licences pour répondre à leurs besoins. Une version d'essai gratuite est également disponible. Pour obtenir des informations complètes sur les prix et les licences d'IronPDF, veuillez vous référer à la page d'accueil du site Web d'IronPDFPage de licences IronPDF.
9 produits de l'API .NET pour vos documents de bureau