Passer au contenu du pied de page
UTILISATION DE IRONPDF

Comment utiliser ChatGPT avec IronPDF pour développeur C#

1.0 Qu'est-ce que ChatGPT ?

ChatGPT est un chatbot d'intelligence artificielle (IA) créé par OpenAI. Le terme "ChatGPT" combine les mots "Chat", qui fait allusion à la fonctionnalité de chatbot du système, et "GPT", qui signifie Transformer Pré-entraîné Génératif et est un type de grand modèle de langage (LLM). Les modèles GPT fondamentaux d'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 par renforcement, qui inclut l'apprentissage automatique, le traitement du langage naturel et l'intelligence artificielle. ChatGPT peut comprendre et générer du texte similaire à celui des humains.

Cet article va démontrer comment développer une application MAUI utilisant l'API OpenAI ChatGPT pour prendre des messages, offrir des résultats basés sur les requêtes des utilisateurs, puis exporter ces résultats en fichier PDF pour une utilisation ultérieure avec IronPDF.

1.1 Configuration du compte OpenAI

Pour vous inscrire à un compte OpenAI, procédez comme suit :

  • Visitez le site officiel d'OpenAI.
  • Sur la page d'accueil du site, localisez et cliquez sur le bouton S'inscrire. Cela vous mènera au formulaire de création de compte.
  • Complétez les champs essentiels du formulaire d'inscription.
  • Cliquez sur le lien de vérification envoyé à votre adresse e-mail enregistrée pour confirmer votre adresse e-mail.
  • Si votre inscription est réussie, vous devriez pouvoir accéder à votre compte OpenAI en entrant les informations de connexion que vous avez fournies lors de votre inscription.

1.2 Obtenir une clé API OpenAI

  • Pour accéder à OpenAI, allez sur le site et connectez-vous avec vos informations de compte.

Comment utiliser ChatGPT avec IronPDF pour développeur C#, Figure 1 : Accès au site d'OpenAI Accès au site d'OpenAI

  • Naviguez jusqu'à la zone API de la plateforme OpenAI. Ensuite Paramètres du compte > Voir la clé API où vous pouvez la trouver.
  • Vous pouvez maintenant créer une nouvelle clé API secrète.

Comment utiliser ChatGPT avec IronPDF pour développeur C#, Figure 2 : Créer des clés API Créer des clés API

2.0 Commencer avec une application .NET MAUI

Vous avez besoin de Visual Studio 2022 et de .NET 7 Framework installés pour créer l'application .NET MAUI écrite en C#. Ensuite, suivez les étapes suivantes pour créer et écrire une application .NET MAUI.

2.1 Ouvrir Visual Studio

Ouvrez Visual Studio, puis sélectionnez "Créer un nouveau projet" dans le menu et entrez ".NET MAUI" dans le champ de recherche.

2.2 Choisir l'application .NET MAUI

Dans Visual Studio, choisissez le modèle d'application .NET MAUI dans la liste des résultats de recherche. Après l'avoir choisi, donnez-lui un nom approprié et choisissez l'emplacement du projet. Cliquez sur "Suivant" après avoir terminé la configuration.

Comment utiliser ChatGPT avec IronPDF pour développeur C#, Figure 3 : Créer une nouvelle application .NET MAUI dans Visual Studio Créer une nouvelle application .NET MAUI dans Visual Studio

2.3 Sélectionner le framework

Choisissez le framework nécessaire ; néanmoins, par exemple, il est recommandé 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.

Comment utiliser ChatGPT avec IronPDF pour développeur C#, Figure 4 : Configurer le nouveau projet Configurer le nouveau projet

Dans Visual Studio 2022, un nouveau projet .NET MAUI sera créé. .NET MAUI, par défaut, développe une application compteur simple.

Comment utiliser ChatGPT avec IronPDF pour développeur C#, Figure 5 : Sélection du framework .NET Sélection du framework .NET

En modifiant l'application .NET MAUI, ChatGPT OpenAI peut être intégré et exporter le résultat dans des fichiers PDF en utilisant la bibliothèque PDF C# IronPDF sur cette variante de plateformes.

2.4 Installer le package OpenAI

Entrez la commande suivante dans la console du gestionnaire de packages NuGet.

Install-Package OpenAI

Cette commande installera le package OpenAI, qui fournit l'accès à l'API nécessaire pour interagir avec ChatGPT en utilisant C#.

2.5 Installer IronPDF

Entrez la commande suivante pour installer le package IronPDF:

Install-Package IronPdf

La commande ci-dessus installe IronPDF dans le projet MAUI. IronPDF est utilisé pour rendre le contenu HTML en fichiers PDF et est une partie clé de l'exportation de données de l'application vers un document PDF.

3.0 Qu'est-ce que IronPDF ?

Les développeurs peuvent rapidement créer, lire et modifier des documents PDF grâce à IronPDF, une base SDK PDF robuste pour le traitement des PDF. Le moteur Chrome est utilisé par la bibliothèque IronPDF pour convertir HTML en PDF. Parmi les différents composants web pris en charge par la bibliothèque figurent MAUI, Xamarin, Blazor, Unity, applications HoloLens, Windows Forms, HTML, ASPX, Razor HTML, .NET Core, ASP.NET, et WPF. Microsoft.NET et .NET Core peuvent être utilisés dans des applications Windows traditionnelles et des applications web ASP.NET.

Grâce à HTML5, JavaScript, CSS et images, IronPDF vous permet de créer de beaux PDF avec un titre et un pied de page. La bibliothèque API comprend un convertisseur HTML-TO-PDF robuste qui peut gérer les PDF ainsi qu'un outil et un moteur de conversion PDF autonome qui est indépendant de toute source extérieure.

Pour en savoir plus sur IronPDF, veuillez vous référer aux pages du tutoriel sur la conversion HTML en PDF.

4.0 Exporter le résultat de l'API ChatGPT en utilisant IronPDF

Ajoutez le code ci-dessous dans le fichier "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

Ce fragment de code enregistre un service pour l'API ChatGPT, qui peut ensuite être utilisé par d'autres classes ou pages de votre application.

Ajoutez le code suivant sur la page principale de l'application dans la méthode de chargement de la page. Cela aide à obtenir l'instance du service ChatGPT et à la stocker dans un objet local.

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

Ce code récupère l'instance du client ChatGPT du fournisseur de services, permettant à la page principale d'interagir avec l'API ChatGPT.

Ensuite, créez une interface utilisateur comme celle représentée dans le code XAML suivant :

<?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 can be populated with dynamic data -->
                    </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>
                        <!-- TableSection can be populated with dynamic data -->
                    </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

Le ContentPage ci-dessus définit la disposition de l'interface utilisateur de l'application. Les utilisateurs peuvent entrer des requêtes, interagir avec l'API ChatGPT via le bouton "Envoyer la requête" et exporter les résultats sous forme de PDF en utilisant le bouton "Exporter". Les résultats sont affichés dans TableView.

Ci-dessous se trouve la logique de code-behind pour gérer les clics de boutons et exporter des données :

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

Explication :

  • La méthode OnExportClicked crée un PDF à partir du contenu HTML recueilli sur l'interface utilisateur en utilisant IronPDF. Le PDF généré est enregistré à un emplacement spécifié.

  • La méthode SendqueryClicked prend la requête de l'utilisateur, l'envoie à l'API OpenAI en utilisant le _chatGptClient et affiche la réponse. Elle ajoute également la requête et la réponse à TableView.

  • Les méthodes d'assistance AddQueryToTable et AddResponseToTable aident à mettre à jour les composants de l'interface utilisateur avec les requêtes des utilisateurs et les réponses du chatbot.

Après avoir ajouté le code ci-dessus, essayez d'exécuter votre solution. Entrez une requête et récupérez le résultat en cliquant sur le bouton "Envoyer la requête". Cela enverra la requête de l'utilisateur à l'API ChatGPT, récupérera le résultat et affichera le message à l'écran.

Comment utiliser ChatGPT avec IronPDF pour développeur C#, Figure 7 : Ajouter une requête texte dans l'application Ajouter une requête texte dans l'application

Cliquez sur le bouton "Exporter" pour exporter les résultats sous forme de PDF.

Comment utiliser ChatGPT avec IronPDF pour développeur C#, Figure 8 : Le fichier PDF exporté Le fichier PDF exporté

Maintenant, nous avons pu créer un chatbot en utilisant ChatGPT et exporter ce chat en utilisant IronPDF sur une application MAUI. En utilisant le concept ci-dessus, il est possible d'inclure des images, de l'audio, et de la vidéo de l'API ChatGPT pour des résultats plus précis.

5.0 Conclusion

Le but 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 des utilisateurs et exporter ces résultats sous forme de fichier PDF. Pour améliorer la qualité 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 également expérimenter en modifiant la valeur de l'énumération ChatGptModels dans la méthode AddChatGpt dans "MauiProgram.cs".

L'API ChatGPT est un programme d'IA puissant 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 en PDF pour des utilisations futures, évitant de requêter à répétition la même requête API.

Nous pouvons créer des PDF en quelques lignes de code avec IronPDF. Cette application convient aux débutants et ne nécessite que des connaissances fondamentales pour être utilisée. Aucun autre package n'est dépendant de IronPDF d'aucune manière. Par exemple, c'est une bibliothèque qui vient dans un seul package. Les développeurs IronPDF peuvent choisir parmi une variété de licences pour répondre à leurs besoins. Il existe également un essai gratuit disponible. Pour des informations complètes sur les prix et les licences d'IronPDF, veuillez vous référer à la page de licences IronPDF.

Questions Fréquemment Posées

Comment intégrer ChatGPT dans une application .NET MAUI ?

Pour intégrer ChatGPT dans une application .NET MAUI, commencez par configurer un compte OpenAI et obtenez une clé API. Ensuite, installez le package OpenAI dans votre projet via NuGet et configurez l'API dans votre application pour gérer les requêtes utilisateur.

Comment convertir les résultats de l'API en PDF dans une application MAUI ?

Vous pouvez convertir les résultats de l'API en PDF dans une application MAUI en utilisant IronPDF. Après avoir récupéré les réponses de l'API ChatGPT, utilisez les méthodes d'IronPDF pour rendre le contenu HTML sous forme de PDF.

Quelles étapes sont impliquées dans la configuration d'une application MAUI propulsée par ChatGPT ?

Pour configurer une application MAUI propulsée par ChatGPT, créez un nouveau projet .NET MAUI dans Visual Studio, installez les packages OpenAI et IronPDF, configurez les paramètres de l'API dans votre code et écrivez la logique pour traiter les requêtes et les exporter en PDF.

IronPDF peut-il gérer le contenu HTML, JavaScript et CSS lors de la création de PDFs ?

Oui, IronPDF peut gérer le contenu HTML, JavaScript et CSS lors de la création de PDFs. Il utilise le moteur de rendu de Chrome pour convertir le contenu HTML en un document PDF.

Est-il possible de personnaliser les paramètres de l'API ChatGPT dans mon application ?

Oui, vous pouvez personnaliser les paramètres de l'API ChatGPT dans votre application en ajustant des paramètres tels que les types de modèles, les limites de messages et les délais d'expiration dans le fichier MauiProgram.cs.

Quels sont les avantages d'utiliser IronPDF dans une application MAUI ?

IronPDF fournit un SDK robuste pour créer, lire et éditer des PDFs. Il permet la conversion de contenu HTML en PDFs, supporte l'extraction de texte, et offre diverses fonctionnalités pour améliorer la gestion des PDFs dans une application MAUI.

Existe-t-il un essai gratuit pour IronPDF ?

Oui, IronPDF propose un essai gratuit, permettant aux développeurs d'explorer ses fonctionnalités avant de s'engager dans un plan de licence.

Comment installer les packages nécessaires pour un projet PDF ChatGPT dans MAUI ?

Utilisez la Console du Gestionnaire de Packages NuGet dans Visual Studio pour installer les packages OpenAI et IronPDF. Exécutez Install-Package OpenAI et Install-Package IronPDF pour les ajouter à votre projet.

Quel est le rôle d'IronPDF dans la gestion des documents PDF ?

IronPDF est utilisé pour créer, éditer et convertir des documents PDF. Il permet aux développeurs de convertir du contenu web en PDFs, de faire des recherches de texte et d'extraire des images, ce qui le rend idéal pour les applications nécessitant des capacités PDF.

IronPDF est-il entièrement compatible avec .NET 10 ?

Oui, IronPDF est entièrement compatible avec .NET 10. Il prend en charge toutes les principales versions de .NET, y compris .NET 10, 9, 8, 7, 6, Core et .NET Framework, et est conçu pour fonctionner immédiatement dans les projets .NET 10 sans nécessiter de configuration particulière.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite