IRONPDFの使用

C#開発者向けIronPDFでChatGPTを利用する方法

更新済み 2024年3月17日
共有:

1.0 ChatGPTとは何ですか?

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ウェブサイトにアクセスしてください。
  • ウェブサイトのホームページで、サインアップボタンを見つけてクリックしてください。 アカウント作成フォームに移動します。
  • 必須フィールドに登録フォームを入力してください。
  • 登録済みのメールアカウントに送信された確認リンクをクリックして、メールアドレスを確認してください。
  • 登録が成功した場合、登録時に提供したログイン情報を入力することでOpenAIアカウントにアクセスできるはずです。

1.2 OpenAI APIキーの取得

  • OpenAIにアクセスするには、ウェブサイトに移動し、アカウント情報でログインしてください。

    ChatGPTをIronPDFと共に使用する方法 C#開発者向け、図1: OpenAIウェブサイトにアクセスする

    OpenAIのウェブサイトにアクセスする

  • OpenAIプラットフォームのAPI領域に移動します。 それから、アカウント設定 > APIキーの表示 そこで見つけることができます。
  • 今すぐ新しい秘密のAPIキーを作成できます。

    ChatGPTをIronPDFと共にC#開発者として使用する方法、図2: APIキーの作成

    APIキーを作成する

2.0 .NET MAUIアプリケーションの始め方

.NET MAUI アプリケーションを C# で作成するには、Visual Studio 2022 と .NET 7 フレームワークがインストールされている必要があります。 次に、.NET MAUIアプリを作成して書き込むための手順に従います。

2.1 Visual Studioを開く

Visual Studioを開き、メニューから「新しいプロジェクトの作成」を選択し、検索フィールドに「.NET MAUI」と入力します。

2.2 .NET MAUI アプリを選択してください

Visual Studio で、検索結果のリストから .NET MAUI アプリ テンプレートを選択します。 選択後、適切な名前を付けてプロジェクトの場所を選択してください。 構成が完了したら、「次へ」をクリックしてください。

C# 開発者向けに IronPDF を使用して ChatGPT を利用する方法、図3: Visual Studio で新しい .NET MAUI アプリを作成する

Visual Studioで新しい .NET MAUI アプリを作成する

2.3 フレームワークの選択

必要なフレームワークを選択してください。 それにもかかわらず、例えば、最新の .NET Framework を選択することが推奨されます。 フレームワークのバージョンを選択した後、Visual Studioで作成ボタンを押します。

ChatGPTをIronPDFと一緒にC#開発者向けに使用する方法、図4:新しいプロジェクトの設定

新しいプロジェクトを構成する

Visual Studio 2022では、新しい.NET MAUIプロジェクトが作成されます。 .NET MAUIは、デフォルトで、簡単なカウンターアプリケーションを開発します。

ChatGPTをIronPDFと一緒にC#開発者として使用する方法、図5: .NETフレームワークの選択

.NETフレームワークの選択

.NET MAUIアプリケーションを変更することにより、ChatGPT OpenAIを統合し、このプラットフォームのバリアントでIronPDF C# PDFライブラリを使用して結果をPDFファイルとしてエクスポートできます。

2.4 OpenAIパッケージのインストール

次のコマンドをNuGetパッケージマネージャーコンソールに入力してください。

Install-Package OpenAI

上記のコード行をパッケージマネージャーコンソールに入力すると、OpenAIパッケージをインストールするのに役立ちます。

Install-Package IronPdf

上のコードはIronPdfをMAUIのコードにインストールするのに役立ちます。

3.0 IronPDFとは何ですか?

開発者は、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への変換機能が含まれています。

4.0 IronPDFを使用してChatGPT APIの結果をエクスポートする

「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)
VB   C#

これはChatGPT APIのサービスを作成するのに役立ちます。次に、他のクラスやページによって取得されて使用されることができます。

ページロードメソッド内に、以下の内容をアプリケーションのメインページに追加します。 これは、ChatGPTサービスを即座に取得し、ローカルオブジェクトに保存するのに役立ちます。

_chatGptClient = Handler.MauiContext.Services.GetService<IChatGptClient>();
_chatGptClient = Handler.MauiContext.Services.GetService<IChatGptClient>();
_chatGptClient = Handler.MauiContext.Services.GetService(Of IChatGptClient)()
VB   C#

次に、以下の画像のようにユーザーインターフェースのためのUIを作成してください。

ChatGPTをIronPDFと一緒に使用する方法 - C#開発者向け、図6: MAUIアプリの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>
XML

上記のコードは、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
VB   C#

forループを使用して入力データを一つずつ取得し、その後、HTML文字列を追加して表示テキストをフォーマットします。 次に、IronPDF を使用して結果を PDF 形式でエクスポートし、希望する場所に保存できます。

上記のコードを追加した後、ソリューションを実行してみてください。 次にクエリを入力し、「send query」ボタンをクリックして結果を取得します。 ユーザーのクエリを送信して結果を取得し、下の画像のようにメッセージを画面に表示します。

C#開発者向けIronPDFでChatGPTを使用する方法、図7:アプリケーションにテキストクエリを追加

アプリケーションにテキストクエリを追加

以下の画像のように結果をPDFにエクスポートするには、エクスポートボタンをクリックしてください。

C# 開発者向けに ChatGPT を IronPDF で使用する方法、フィギュア 8: エクスポートされた PDF ファイル

エクスポートされたPDFファイル

さて、私たちはChatGPTを使用してチャットボットを作成し、そのチャットをIronPDFを使用してMAUIアプリでエクスポートすることができました。上記のコンセプトを使用すると、ChatGPT APIから画像、音声、および動画を含めることで、より正確な結果を得ることが可能です。

結論 5.0

この記事の目的は、ユーザークエリに基づいて結果を提供し、それらの結果をPDFファイルとしてエクスポートするために、OpenAI ChatGPT APIを利用するMAUIアプリケーションを開発することです。提案の質を向上させるために、質問を変更して自由に探求してください。 さまざまなモデルがより良い結果を生成するかどうかを確認するために、「MauiProgram.cs」のAddChatGptメソッド内のChatGptModels列挙型の値を変更して実験することもできます。

ChatGPT API は、ユーザーのクエリに基づいて結果を提供する強力な AI プログラムです。 ChatGPT API の費用は、送信されたリクエストの数に基づいて計算されます。 IronPDFはAPIリクエストを行い、その結果をPDFにエクスポートして将来使用することで、同じAPIリクエストを繰り返し行うことを回避します。

IronPDFを使用して、数行のコードだけでPDFを作成できます。 このアプリケーションは初心者に適しており、使用するためには基本的な知識だけが必要です。 IronPDFには他のパッケージの依存関係は一切ありません。 たとえば、それは単一パッケージで提供されるライブラリです。 IronPDF開発者は様々なライセンスから必要なものを選ぶことができます。 無料トライアルも利用可能です。 IronPDFの完全な価格およびライセンス情報については、次のサイトをご参照くださいIronPDFライセンスページ.

< 以前
IronPDFを使用したC#でのFluent Validationの方法
次へ >
.NETでPDF署名を作成する方法