C# Geliştiriciler İçin IronPDF ile ChatGPT Nasıl Kullanılır.
1.0 ChatGPT Nedir?
ChatGPT, OpenAI tarafından oluşturulan bir yapay zeka (AI) sohbet botudur. "ChatGPT" terimi, sistemin sohbet botu özelliğine atıfta bulunan "Sohbet" kelimesi ile Buyuk Dil Modeli (LLM) türü olan "Generative Pre-trained Transformer"'i belirten "GPT" kelimesini birleştirir. OpenAI'nin temel GPT modelleri, yani GPT-3.5 ve GPT-4, ChatGPT için temel teşkil eder ve bu model denetimli ve pekiştirmeli öğrenme teknikleri ile geliştirilen (bir transfer öğrenme yöntemi) bir konuşma uygulaması olarak kullanılır; bu teknikler makine öğrenmesi, doğal dil işleme ve yapay zeka dahilindedir. ChatGPT, insan benzeri metinleri anlayabilir ve üretebilir.
Bu makale, OpenAI ChatGPT API'sini kullanarak mesajları alan, kullanıcı sorgularına dayalı sonuçlar sunan ve ardından bu sonuçları IronPDF kullanarak PDF dosyası olarak dışa aktaran bir MAUI uygulaması geliştirmenin nasıl yapıldığını gösterecektir.
1.1 OpenAI hesabı kurulum
Bir OpenAI hesabına kaydolmak için aşağıdakileri yapın:
- Resmi OpenAI web sitesini ziyaret edin.
- Web sitesinin ana sayfasında, Kaydol düğmesini bulun ve tıklayın. Bu sizi, hesap oluşturma formuna yönlendirecektir.
- Kayıt formunun gerekli alanlarını doldurun.
- Kayıtlı e-posta hesabınıza gönderilen doğrulama bağlantısına tıklayarak e-posta adresinizi doğrulayın.
- Kayıt başarılı olursa, kayıt sırasında verdiğiniz oturum açma bilgilerini girerek OpenAI hesabınıza erişebileceksiniz.
1.2 OpenAI API anahtarı almak
-
OpenAI'ye erişmek için web sitesine gidin ve hesap bilgilerinizle giriş yapın.
OpenAI web sitesine erişim - OpenAI platformunun API alanına gidin. Ardından, Hesap Ayarları > API anahtarını görüntüle bölümüne gidin.
-
Artık Yeni bir gizli API anahtarı oluşturabilirsiniz.
API anahtarları oluşturun
2.0 .NET MAUI Uygulamasına Başlarken
C# ile yazılmış .NET MAUI uygulaması oluşturmak için Visual Studio 2022 ve .NET 7 Framework'ün kurulu olması gereklidir. Ardından, bir .NET MAUI uygulaması oluşturmak ve yazmak için aşağıdaki adımları izleyin.
2.1 Visual Studio'yu açın
Visual Studio'yu açın, ardından menüden "Yeni Proje Oluştur" seçeneğini seçin ve arama alanına ".NET MAUI" girin.
2.2 .NET MAUI Uygulamasını Seçin
Visual Studio'da, arama sonuçları listesinde .NET MAUI uygulama şablonunu seçin. Seçtikten sonra, uygun bir ad verin ve projenin konumunu seçin. Yapılandırma tamamlandıktan sonra "İleri"'yi tıklayın.
Visual Studio'da yeni bir .NET MAUI Uygulaması oluşturun
2.3 Çerçeve Seç
Gerekli çerçeveyi seçin; yine de örneğin, en son .NET Framework'ü seçmeniz önerilir. Çerçeve sürümünü seçtikten sonra, Visual Studio'da Oluştur düğmesine basın.
Yeni projeyi yapılandırın
Visual Studio 2022'de yeni bir .NET MAUI Projesi oluşturulacak. .NET MAUI, varsayılan olarak basit bir sayaç uygulaması geliştirir.
.NET Framework seçimi
.NET MAUI uygulamasını değiştirerek, ChatGPT OpenAI'i entegre edebilir ve IronPDF C# PDF kütüphanesini kullanarak bu platform varyantına PDF dosyaları olarak sonucu dışa aktarabilirsiniz.
2.4 OpenAI Paketini Yükle
NuGet Paket Yöneticisi Konsoluna aşağıdaki komutu girin.
Install-Package OpenAI
Bu komut, C# kullanarak ChatGPT ile etkileşim için gereken API'ye erişim sağlayan OpenAI paketini yükler.
2.5 IronPDF'i Yükle
IronPDF paketini yüklemek için aşağıdaki komutu girin:
Install-Package IronPdf
Yukarıdaki komut, IronPDF'i MAUI projesine yükler. IronPDF, HTML içeriğini PDF dosyalarına dönüştürmek için kullanılır ve uygulamadan verileri PDF belgesine dışa aktarmanın önemli bir parçasıdır.
3.0 IronPDF nedir?
Geliştiriciler, PDF belgeleri oluşturma, okuma ve düzenleme konusunda hız sağlar, çünkü IronPDF, PDF işleme için sağlam bir PDF SDK temeli sunar. IronPDF kütüphanesi, HTML'yi PDF'ye dönüştürmek için Chrome motorunu kullanır. Kütüphanenin desteklediği çeşitli web bileşenleri arasında MAUI, Xamarin, Blazor, Unity, HoloLens uygulamaları, Windows Forms, HTML, ASPX, Razor HTML, .NET Core, ASP.NET ve WPF bulunmaktadır. Microsoft.NET ve .NET Core programlama hem geleneksel Windows Uygulamaları hem de ASP.NET web uygulamalarında kullanılabilir.
HTML5, JavaScript, CSS ve resimler kullanarak, IronPDF başlık ve alt bilgilere sahip çekici PDF'ler oluşturmanıza olanak tanır. API kütüphanesi, PDF'lerle çalışabilecek sağlam bir HTML'den PDF'ye dönüştürücü içerir ve harici kaynaklara bağlı olmayan bağımsız bir PDF dönüştürme aracı ve motor içerir.
- Kullanıcılar, IronPDF ile çeşitli kaynaklardan PDF'ler oluşturabilirler, bunlar arasında resim dosyaları, HTML, HTML5, ASPX ve Razor/MVC Görünümü bulunur.
- Kütüphane, metin arama, PDF sayfalarından metin ve resim çıkarma, ve PDF sayfalarını resimlere dönüştürme gibi programlar sunar. Etkin form doldurma ve gönderme için bir program da sunar.
- Kütüphane ayrıca PDF yayınları için bağlantılar sağlar ve kullanıcı aracları, proxy'ler, çerezler, HTTP başlıkları ve form değişkenlerini HTML giriş formlarının arkasında kimlik doğrulama olarak kullanır.
- IronPDF, şifre korumalı PDF dosyalarına erişim karşılığında kullanıcı adları ve parolaları kabul eder.
IronPDF hakkında daha fazla bilgi edinmek için HTML'den PDF'ye dönüştürme eğitim sayfalarına bakın.
4.0 IronPDF kullanarak ChatGPT API Sonucunu Dışa Aktar
"MauiProgram.cs" dosyasına aşağıdaki kodu ekleyin:
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)
Bu kod parçacığı, uygulamanızdaki diğer sınıflar veya sayfalarda kullanılabilecek ChatGPT API'si için bir hizmet kaydeder.
Ana sayfanın page load metoduna aşağıdaki kodu ekleyin. Bu, ChatGPT hizmet örneğini alır ve yerel bir nesneye kaydeder.
_chatGptClient = Handler.MauiContext.Services.GetService<IChatGptClient>();
_chatGptClient = Handler.MauiContext.Services.GetService<IChatGptClient>();
_chatGptClient = Handler.MauiContext.Services.GetService(Of IChatGptClient)()
Bu kod, hizmet sağlayıcısından ChatGPT istemci örneğini alır ve ana sayfanın ChatGPT API ile etkileşime girmesine izin verir.
Sonraki adım olarak, aşağıdaki XAML kodunda gösterilen gibi bir kullanıcı arayüzü oluşturun:
<?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>
</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>
</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>
Yukarıdaki ContentPage, uygulamanın arayuz düzenini tanımlar. Kullanıcılar, sorgular girebilir, "Sorgu Gönder" butonu aracılığıyla ChatGPT API ile etkileşimde bulunabilir ve "Dışa Aktar" butonu ile sonuçları PDF olarak dışa aktarabilir. Sonuclar TableView icinde gösterilir.
Sıradaki, buton tıklamalarını yönetmek ve verileri dışa aktarmak için geri plandaki mantıktır:
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
Açıklama:
-
OnExportClickedmetodu, IronPDF kullanarak arayuzden toplanan HTML iceriginden bir PDF oluşturur. Oluşturulan PDF, belirtilen bir konuma kaydedilir. -
SendqueryClickedmetodu kullanicinin sorgusunu alır, OpenAI API'sine_chatGptClientkullanarak gonderir ve yaniti gösterir. Ayrica sorguyu ve yanıtıTableViewicine ekler. AddQueryToTableveAddResponseToTableyardimci metodları, arayuz bileşenlerini kullanıcı sorgularıyla ve chatbot yanitlariyla güncellemede yardımcı olur.
Yukarıdaki kodu ekledikten sonra çözümünüzü çalıştırmayı deneyin. "Sorgu Gönder" düğmesine tıklayarak bir sorgu girin ve sonucu alın. Bu, kullanıcının sorgusunu ChatGPT API'ye gönderecek, sonucu alacak ve mesajı ekranda gösterecektir.
Uygulamaya metin sorgusu ekleyin
"Dışa Aktar" butonuna tıklayarak sonuçları PDF olarak dışa aktarın.
Dışa Aktarılan PDF Dosyası
Artık MAUI Uygulamasında ChatGPT kullanarak bir sohbet robotu oluşturabildik ve bu sohbeti IronPDF kullanarak dışa aktarabildik. Yukarıdaki konsepti kullanarak, daha doğru sonuçlar için ChatGPT API'sinden görüntü, ses ve video eklemek de mümkündür.
5.0 Sonuc
Bu makalenin amacı, OpenAI ChatGPT API'sini kullanarak mesajları alan, kullanıcı sorgularına dayalı sonuçlar sunan ve ardından bu sonuçları PDF dosyası olarak dışa aktaran bir MAUI uygulaması geliştirmektir. Kendi sorularınızı değiştirerek önerilerin kalitesini artırarak keşfetmekten çekinmeyin. Çeşitli modellerin daha iyi sonuclar verip vermedigini gormek icin 'MauiProgram.cs' dosyasındaki AddChatGpt metodunda ChatGptModels enum degerini değiştirerek deney yapabilirsiniz.
ChatGPT API, kullanıcı sorgusuna dayalı sonuçlar sağlamamıza izin veren güçlü bir yapay zeka programıdır. ChatGPT API maliyeti gönderilen isteklerin sayısına göre hesaplanır. IronPDF, API isteklerini yapmak ve sonucu PDF olarak dışa aktarmak için kullanılır, böylece aynı API isteğini tekrarlamaktan kaçınılır.
IronPDF ile yalnızca birkaç satır kodla PDF oluşturabiliriz. Bu uygulama, yeni başlayanlar için uygundur ve sadece temel bilgi gerektirir. Başka bir paket, IronPDF'e hiçbir şekilde bağımlı değildir. Örneğin, tek bir pakette gelen bir kütüphanedir. IronPDF geliştiricileri, gereksinimlerine uygun birden fazla lisans seçeneği seçebilirler. Ayrıca ücretsiz bir deneme sürümü de bulunmaktadır. IronPDF ile ilgili tam fiyatlandırma ve lisanslama bilgileri için lütfen IronPDF lisanslama sayfasına başvurun.
Sıkça Sorulan Sorular
.NET MAUI uygulamasıyla ChatGPT'yi nasıl entegre edebilirim?
ChatGPT'yi bir .NET MAUI uygulamasıyla entegre etmek için öncelikle bir OpenAI hesabı kurun ve bir API anahtarı edinin. Ardından, projenize NuGet üzerinden OpenAI paketini yükleyin ve kullanıcı sorgularını işlemekte kullanılan API'yi uygulamanızda yapılandırın.
Bir MAUI uygulamasında API sonuçlarını PDF'ye nasıl dönüştürürüm?
Bir MAUI uygulamasında API sonuçlarını PDF'ye dönüştürmek için IronPDF kullanabilirsiniz. ChatGPT API'sinden yanıtları aldıktan sonra, IronPDF'nin metodlarını kullanarak HTML içeriğini PDF olarak render edin.
ChatGPT destekli bir MAUI uygulaması kurmak için hangi adımlar gereklidir?
ChatGPT destekli bir MAUI uygulaması kurmak için, Visual Studio'da yeni bir .NET MAUI projesi oluşturun, OpenAI ve IronPDF paketlerini yükleyin, kodunuzda API ayarlarını yapılandırın ve sorguları işlemeye ve PDF'ye çıktı almaya yönelik mantığı yazın.
IronPDF, PDF oluştururken HTML, JavaScript ve CSS içeriğini işleyebilir mi?
Evet, IronPDF, PDF oluştururken HTML, JavaScript ve CSS içeriğini işleyebilir. HTML içeriğini PDF belgesi haline getirmek için Chrome render motorunu kullanır.
Uygulamamda ChatGPT API ayarlarını özelleştirmek mümkün mü?
Evet, uygulamanızda ChatGPT API ayarlarını özelleştirmek mümkün; MauiProgram.cs dosyasında model türleri, mesaj limitleri ve sona erme süreleri gibi parametreleri ayarlayabilirsiniz.
Bir MAUI uygulamasında IronPDF kullanmanın faydaları nelerdir?
IronPDF, PDF oluşturma, okuma ve düzenleme için güçlü bir SDK sağlar. HTML içeriğini PDF'ye dönüştürmeyi mümkün kılar, metin çıkarımı destekler ve bir MAUI uygulamasında PDF işlemeyi geliştirecek çeşitli işlevler sunar.
IronPDF için ücretsiz bir deneme sürümü mevcut mu?
Evet, IronPDF, geliştiricilerin lisans planı almadan önce özelliklerini ve işlevlerini keşfetmesine olanak tanıyan ücretsiz bir deneme sunmaktadır.
Bir ChatGPT PDF projesi için gerekli paketleri MAUI'de nasıl yüklerim?
Visual Studio'da NuGet Package Manager Konsolunu kullanarak OpenAI ve IronPDF paketlerini yükleyin. Install-Package OpenAI ve Install-Package IronPDF komutlarını çalıştırarak projeye ekleyin.
IronPDF'nin PDF belgelerini işleme rolü nedir?
IronPDF, PDF belgelerini oluşturma, düzenleme ve dönüştürme için kullanılır. Geliştiricilerin web içeriğini PDF'ye dönüştürmelerine, metin aramaları gerçekleştirmelerine ve görseller çıkarmalarına olanak tanıyarak PDF yetenekleri gerektiren uygulamalar için idealdir.
IronPDF, .NET 10 ile tamamen uyumlu mu?
Evet, IronPDF, .NET 10 ile tamamen uyumludur. Tüm büyük .NET sürümlerini — .NET 10, 9, 8, 7, 6, Core ve .NET Framework dahil — destekler ve özel bir yapılandırma gerektirmeden .NET 10 projelerinde kutudan çıktığı gibi çalışacak şekilde tasarlanmıştır.




