Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
ChatGPT ist eine künstliche Intelligenz (AI) chatbot, der von OpenAI entwickelt wurde. Der Begriff "ChatGPT" setzt sich zusammen aus den Worten "Chat", was auf die Chatbot-Funktion des Systems anspielt, und "GPT", was für Generative Pre-trained Transformer steht und eine Art großes Sprachmodell ist (LLM). Die grundlegenden GPT-Modelle von OpenAI, nämlich GPT-3.5 und GPT-4, dienen als Basis für ChatGPT, das weiterentwickelt wurde (eine Methode des Transferlernens) für konversationelle Anwendungen unter Verwendung einer Kombination von überwachten und verstärkenden Lerntechniken, die maschinelles Lernen, natürliche Sprachverarbeitung und künstliche Intelligenz umfassen. ChatGPT kann menschenähnlichen Text verstehen und erzeugen.
In diesem Artikel wird gezeigt, wie man eine MAUI-Anwendung entwickelt, die die OpenAI ChatGPT-API nutzt, um Nachrichten entgegenzunehmen, Ergebnisse auf der Grundlage von Benutzerabfragen anzubieten und diese Ergebnisse dann als PDF-Datei zur späteren Verwendung mit IronPDF zu exportieren.
Um sich für ein OpenAI-Konto zu registrieren, gehen Sie wie folgt vor:
Um auf OpenAI zuzugreifen, gehen Sie auf die Website und melden Sie sich mit Ihren Kontodaten an.
**Zugang zur OpenAI-Website**
Jetzt können Sie einen neuen geheimen API-Schlüssel erstellen.
**Erstellen von API-Schlüsseln**
Sie benötigen Visual Studio 2022 und das .NET 7-Framework, um die in C# geschriebene .NET MAUI-Anwendung zu erstellen. Folgen Sie dann den nächsten Schritten, um eine .NET MAUI-Anwendung zu erstellen und zu schreiben.
Öffnen Sie Visual Studio, wählen Sie dann im Menü "Neues Projekt erstellen" und geben Sie ".NET MAUI" in das Suchfeld ein.
Wählen Sie in Visual Studio die .NET MAUI-Anwendungsvorlage aus der Liste der Suchergebnisse. Nachdem Sie es ausgewählt haben, geben Sie ihm einen angemessenen Namen und wählen Sie den Standort des Projekts. Klicken Sie auf "Weiter", wenn die Konfiguration abgeschlossen ist.
Erstellen einer neuen .NET MAUI-Anwendung in Visual Studio
Wählen Sie den erforderlichen Rahmen; dennoch ist es zum Beispiel ratsam, das neueste .NET-Framework zu wählen. Drücken Sie die Schaltfläche Erstellen in Visual Studio, nachdem Sie die Framework-Version ausgewählt haben.
Konfigurieren Sie das neue Projekt
In Visual Studio 2022 wird ein neues .NET MAUI-Projekt erstellt. .NET MAUI entwickelt standardmäßig eine unkomplizierte Zähleranwendung.
.NET-Framework-Auswahl
Durch Modifizierung der .NET MAUI-Anwendung kann ChatGPT OpenAI integriert und das Ergebnis mit Hilfe der IronPDF C# PDF-Bibliothek auf dieser Variante von Plattformen in PDF-Dateien exportiert werden.
Geben Sie den folgenden Befehl in die NuGet-Paketmanager-Konsole ein.
Install-Package OpenAI
Geben Sie die obige Codezeile in die Paketmanager-Konsole ein, um das Paket OpenAI zu installieren.
Install-Package IronPdf
Der obige Code hilft bei der Installation von IronPDF in den MAUI-Code.
Mit IronPDF, einem robusten PDF-SDK für die PDF-Verarbeitung, können Entwickler schnell PDF-Dokumente erstellen, lesen und bearbeiten. Die Chrome-Engine wird von der IronPDF-Bibliothek verwendet, um HTML in PDF zu konvertieren. Zu den verschiedenen Webkomponenten, die die Bibliothek unterstützt, gehören MAUI, Xamarin, Blazor, Unity, HoloLens-Apps, Windows Forms, HTML, ASPX, Razor HTML, .NET Core, ASP.NET und WPF. Die Programmierung mit Microsoft.NET und .NET Core kann sowohl in herkömmlichen Windows-Anwendungen als auch in ASP.NET-Webanwendungen verwendet werden.
Mit HTML5, JavaScript, CSS und Bildern können Sie mit IronPDF attraktive PDFs mit Titel und Fußzeile erstellen. Die API-Bibliothek umfasst einen robusten HTML-zu-PDF-Konverter, der mit PDFs umgehen kann, sowie ein eigenständiges PDF-Konvertierungstool und eine Engine, die unabhängig von externen Quellen ist.
IronPDF akzeptiert Benutzernamen und Kennwörter als Gegenleistung für zugang zu passwortgeschützten PDF-Dateien.
Weitere Informationen über IronPDF finden Sie in der tutorialseiten.
Fügen Sie den folgenden Code in die Datei "MauiProgram.cs" ein:
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)
Dies hilft, einen Dienst für die ChatGPT-API zu erstellen. Dann kann er von den anderen Klassen/Seiten abgerufen und verwendet werden.
Fügen Sie auf der Hauptseite der Anwendung in der Seitenlademethode den folgenden Text hinzu. Dies hilft dabei, den ChatGPT-Dienst sofort zu erhalten und ihn in einem lokalen Objekt zu speichern.
_chatGptClient = Handler.MauiContext.Services.GetService<IChatGptClient>();
_chatGptClient = Handler.MauiContext.Services.GetService<IChatGptClient>();
_chatGptClient = Handler.MauiContext.Services.GetService(Of IChatGptClient)()
Erstellen Sie dann die Benutzeroberfläche wie in der folgenden Abbildung.
Benutzeroberfläche der MAUI-App
<?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>
Der obige Code hilft bei der Gestaltung und Implementierung der UI-Seite. Auf der Entwurfsseite ermöglicht das Textfeld dem Benutzer die Eingabe der Abfrage. Sobald sie den gewünschten Text eingeben und auf die Schaltfläche klicken, wird eine Abfrage gesendet, die mit der ChatGPT API interagiert und das Ergebnis liefert. Das Ergebnis wird in "Tableview" angezeigt.
In der Demo-Version von ChatGPT verhindert der Dienst nicht mehr als 3 Anfragen pro Minute. Die Benutzeroberfläche verfügt auch über eine Schaltfläche "Exportieren", die es ermöglicht, die Benutzeranfrage und die ChatGPT-API-Antwort in ein PDF-Dokument zu exportieren, das in Zukunft als Referenz verwendet werden kann.
Die folgenden Codebeispiele werden für den Export nach Excel verwendet.
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
Beim Abrufen der Eingabedaten nacheinander mit der for-Schleife, dann fügen Sie die HTML-Zeichenfolge in die Zeichenfolge, um den Anzeigetext zu formatieren. Anschließend kann IronPDF verwendet werden, um die Ergebnisse in PDF zu exportieren und an einem gewünschten Ort zu speichern.
Nachdem Sie den obigen Code hinzugefügt haben, versuchen Sie, die Lösung auszuführen. Geben Sie dann die Abfrage ein und rufen Sie das Ergebnis ab, indem Sie auf die Schaltfläche "Abfrage senden" klicken. Es sendet dem Benutzer eine Abfrage, um das Ergebnis abzurufen, und zeigt die Nachricht auf dem Bildschirm an, wie in der folgenden Abbildung dargestellt.
Textabfrage in die Anwendung einfügen
Klicken Sie auf die Schaltfläche "Exportieren", um die Ergebnisse in eine PDF-Datei zu exportieren, wie in der folgenden Abbildung dargestellt.
Die exportierte PDF-Datei
Jetzt konnten wir einen Chatbot mit ChatGPT erstellen und diesen Chat mit IronPDF auf MAUI App exportieren. Mit dem obigen Konzept ist es möglich, Bilder, Audio und Video von der ChatGPT-API für genauere Ergebnisse einzubeziehen.
Ziel dieses Artikels ist es, eine MAUI-Anwendung zu entwickeln, die die OpenAI-ChatGPT-API nutzt, um Nachrichten entgegenzunehmen, Ergebnisse auf der Grundlage von Benutzeranfragen anzubieten und diese Ergebnisse als PDF-Datei zu exportieren. Um die Qualität der Vorschläge zu verbessern, können Sie die Fragen verändern. Um zu sehen, ob verschiedene Modelle bessere Ergebnisse liefern, können Sie auch damit experimentieren, den Enum-Wert ChatGptModels
in der Methode AddChatGpt
in "MauiProgram.cs" zu ändern.
Die ChatGPT API ist ein leistungsfähiges KI-Programm, das es uns ermöglicht, Ergebnisse auf der Grundlage der Benutzeranfrage zu liefern. Die Kosten für ChatGPT API werden auf der Grundlage der Anzahl der gesendeten Anfragen berechnet. IronPDF wird verwendet, um API-Anfragen zu stellen und das Ergebnis zur späteren Verwendung in PDF zu exportieren, um zu vermeiden, dass dieselbe API-Anfrage wiederholt gestellt wird.
Mit IronPDF können wir PDFs mit nur wenigen Codezeilen erstellen. Diese Anwendung ist auch für Anfänger geeignet und erfordert nur grundlegende Kenntnisse zur Nutzung. Kein anderes Paket ist in irgendeiner Weise von IronPDF abhängig. Zum Beispiel ist es eine Bibliothek, die in einem einzigen Paket geliefert wird. IronPDF-Entwickler können aus einer Vielzahl von Lizenzen wählen, die ihren Anforderungen entsprechen. Es ist auch eine kostenlose Testversion verfügbar. Vollständige Informationen zu Preisen und Lizenzierung von IronPDF finden Sie in der lizenzierungsseite.
9 .NET API-Produkte für Ihre Bürodokumente