ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
ChatGPTは人工知能です(AI)OpenAIによって作成されたチャットボット。 「ChatGPT」という用語は、「チャット」と、システムのチャットボット機能を指す言葉、「GPT」という言葉を組み合わせたもので、「Generative Pre-trained Transformer(生成型事前学習トランスフォーマー)」の略で、大規模な言語モデルの一種です。(LLM). OpenAIの基本的なGPTモデル、すなわちGPT-3.5およびGPT-4は、ChatGPTの基礎となっており、これが改良されています。(転移学習の手法)会話型アプリケーション向けに、機械学習、自然言語処理、人工知能を含む教師あり学習および強化学習技術の組み合わせを利用しています。 ChatGPTは、人間のようなテキストを理解し、生成することができます。
この記事では、OpenAI ChatGPT APIを使用してメッセージを受け取り、ユーザーのクエリに基づいて結果を提供し、IronPDFを使用してそれらの結果をPDFファイルとして後で利用できるようにエクスポートするMAUIアプリケーションの開発方法を示します。
OpenAIアカウントに登録するには、次の手順を行います:
OpenAIにアクセスするには、ウェブサイトに移動し、アカウント情報でログインしてください。
OpenAIのウェブサイトにアクセスする
今すぐ新しい秘密のAPIキーを作成できます。
APIキーを作成する
.NET MAUI アプリケーションを C# で作成するには、Visual Studio 2022 と .NET 7 フレームワークがインストールされている必要があります。 次に、.NET MAUIアプリを作成して書き込むための手順に従います。
Visual Studioを開き、メニューから「新しいプロジェクトの作成」を選択し、検索フィールドに「.NET MAUI」と入力します。
Visual Studio で、検索結果のリストから .NET MAUI アプリ テンプレートを選択します。 選択後、適切な名前を付けてプロジェクトの場所を選択してください。 構成が完了したら、「次へ」をクリックしてください。
Visual Studioで新しい .NET MAUI アプリを作成する
必要なフレームワークを選択してください。 それにもかかわらず、例えば、最新の .NET Framework を選択することが推奨されます。 フレームワークのバージョンを選択した後、Visual Studioで作成ボタンを押します。
新しいプロジェクトを構成する
Visual Studio 2022では、新しい.NET MAUIプロジェクトが作成されます。 .NET MAUIは、デフォルトで、簡単なカウンターアプリケーションを開発します。
.NETフレームワークの選択
.NET MAUIアプリケーションを変更することにより、ChatGPT OpenAIを統合し、このプラットフォームのバリアントでIronPDF C# PDFライブラリを使用して結果をPDFファイルとしてエクスポートできます。
次のコマンドをNuGetパッケージマネージャーコンソールに入力してください。
Install-Package OpenAI
上記のコード行をパッケージマネージャーコンソールに入力すると、OpenAIパッケージをインストールするのに役立ちます。
Install-Package IronPdf
上のコードはIronPdfをMAUIのコードにインストールするのに役立ちます。
開発者は、PDF文書を迅速に作成、読み取り、編集することができます。IronPDFは、PDF処理のための強力なPDF SDK基盤です。 IronPDFライブラリはHTMLをPDFに変換するためにChromeエンジンを使用しています。 ライブラリがサポートする複数のウェブコンポーネントの中には、MAUI、Xamarin、Blazor、Unity、HoloLensアプリ、Windows Forms、HTML、ASPX、Razor HTML、.NET Core、ASP.NET、そしてWPFがあります。 Microsoft.NETと.NET Coreプログラミングは、従来のWindowsアプリケーションとASP.NET Webアプリケーションの両方で使用できます。
HTML5、JavaScript、CSS、および画像を使用して、IronPDF はタイトルとフッターを含む魅力的なPDFを作成することを可能にします。 APIライブラリには、外部ソースに依存しない独立したPDF変換ツールおよびエンジンと同様に、PDFを扱うことができる堅牢なHTMLからPDFへの変換機能が含まれています。
IronPDFは、ユーザー名とパスワードを受け取り、パスワード保護されたPDFファイルへのアクセス.
IronPDFの詳細については、こちらをご参照ください。HTMLからPDFへの変換チュートリアルページ.
「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)
これはChatGPT APIのサービスを作成するのに役立ちます。次に、他のクラスやページによって取得されて使用されることができます。
ページロードメソッド内に、以下の内容をアプリケーションのメインページに追加します。 これは、ChatGPTサービスを即座に取得し、ローカルオブジェクトに保存するのに役立ちます。
_chatGptClient = Handler.MauiContext.Services.GetService<IChatGptClient>();
_chatGptClient = Handler.MauiContext.Services.GetService<IChatGptClient>();
_chatGptClient = Handler.MauiContext.Services.GetService(Of IChatGptClient)()
次に、以下の画像のようにユーザーインターフェースのためのUIを作成してください。
MAUIアプリのユーザーインターフェース (UI)
<?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>
上記のコードは、UIページの設計および実装に役立ちます。 デザインページでは、テキストボックスを使用してユーザーがクエリを入力できます。 必要なテキストを入力してボタンをクリックすると、クエリが送信され、ChatGPT APIとやり取りを行い、結果が生成されます。 結果はTableview
に表示されます。
デモ版のChatGPTでは、サービスは1分あたり3件を超えるリクエストを防止します。 UIには「エクスポート」というボタンもあり、ユーザーのクエリとChatGPT APIの返信をPDFドキュメントとしてエクスポートすることができます。これにより、将来の参照用に使用できます。
以下のコードサンプルは、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
forループを使用して入力データを一つずつ取得し、その後、HTML文字列を追加して表示テキストをフォーマットします。 次に、IronPDF を使用して結果を PDF 形式でエクスポートし、希望する場所に保存できます。
上記のコードを追加した後、ソリューションを実行してみてください。 次にクエリを入力し、「send query」ボタンをクリックして結果を取得します。 ユーザーのクエリを送信して結果を取得し、下の画像のようにメッセージを画面に表示します。
アプリケーションにテキストクエリを追加
以下の画像のように結果をPDFにエクスポートするには、エクスポートボタンをクリックしてください。
エクスポートされたPDFファイル
さて、私たちはChatGPTを使用してチャットボットを作成し、そのチャットをIronPDFを使用してMAUIアプリでエクスポートすることができました。上記のコンセプトを使用すると、ChatGPT APIから画像、音声、および動画を含めることで、より正確な結果を得ることが可能です。
この記事の目的は、ユーザークエリに基づいて結果を提供し、それらの結果をPDFファイルとしてエクスポートするために、OpenAI ChatGPT APIを利用するMAUIアプリケーションを開発することです。提案の質を向上させるために、質問を変更して自由に探求してください。 さまざまなモデルがより良い結果を生成するかどうかを確認するために、「MauiProgram.cs」のAddChatGpt
メソッド内のChatGptModels
列挙型の値を変更して実験することもできます。
ChatGPT API は、ユーザーのクエリに基づいて結果を提供する強力な AI プログラムです。 ChatGPT API の費用は、送信されたリクエストの数に基づいて計算されます。 IronPDFはAPIリクエストを行い、その結果をPDFにエクスポートして将来使用することで、同じAPIリクエストを繰り返し行うことを回避します。
IronPDFを使用して、数行のコードだけでPDFを作成できます。 このアプリケーションは初心者に適しており、使用するためには基本的な知識だけが必要です。 IronPDFには他のパッケージの依存関係は一切ありません。 たとえば、それは単一パッケージで提供されるライブラリです。 IronPDF開発者は様々なライセンスから必要なものを選ぶことができます。 無料トライアルも利用可能です。 IronPDFの完全な価格およびライセンス情報については、次のサイトをご参照くださいIronPDFライセンスページ.
9つの .NET API製品 オフィス文書用