Fujitsu Cloud Service Genearative AI Platform の API を利用するための C# - WPF(.NET Framework) サンプルになります。
実行ファイルはフォルダごとコピーすることでインストール作業なく Windows OS 環境で実行することができます。
実行時の .NET Framework は、Windows 10 / 11 付属のものを利用します。
- SampleCSharpUI.exe をクリックして起動
- 【初回起動時のみ】
自動的にテナント名とクライアントIDを入力する設定画面を表示するので、利用している Generative AI Platform 環境のテナント名とクライアント ID を入力して [OK] をクリックして保存してください。 - 自動的にサインインが始まりますので、利用している EntraID の ID とパスワードを入力してください。
- 「 General Use 」というルームがない場合は、自動的にRAGなしでルームを作成します。
- 前回利用時のルームの内容を自動的に表示します。初回起動時のみ「 General Use 」ルームが選択されます。
- 「 General Use 」ルームは起動時に会話内容が全クリアされる特別なルームです。
- 他のルームは再起動しても会話内容は維持されます。
- 画面下の [ 入力 ] 欄に質問を入力し、 Enter を押すことで送信されます。
- 改行を入力したいときは、 Shift+Enter で改行ができます。
- 送信後、 AI からの回答が返ってくるまでも入力欄に入力はできますが、 Enter による送信は、 AI からの回答がくるまで不可となっています。
[ 入力 ] 欄の上の右側には [ 会話数 ] と [ ゴミ箱 ] アイコンがあります。
[ ゴミ箱 ] アイコンをクリックすると、最新の質問とその質問に対する AI の回答が削除されます。
同時に、[ 入力 ] 欄に最新の質問が自動的に設定されるので、 AI から別回答を得たいときなどに便利です。
[ 入力 ] 欄の上の左側には [ 歯車 ] アイコンがあります。
[ 歯車 ] アイコンをクリックすると [ ルームの編集 ] が可能です。
どのような項目が編集できるかの詳細は、後述の [ ルームの編集 ] を参照してください。
Generative AI Platform は、プロンプトパターンとして会話履歴プロンプト (Conversation History Prompting) を採用しています。
そのため、ルームに過去の会話が残っていると、その履歴に影響を受けた回答となります。そのため、新しい会話を始めたいときは過去の会話履歴を削除する必要があります。
過去の会話履歴の削除は、 [ ルーム ]-[ 会話をクリア ] メニューをクリックすることで実現できます。
- メニューに表示されているルーム名をクリックすると作成済ルーム一覧がリスト表示されるので、そこから移動したいルームを選択してください。
[ ルーム ]-[ 新規作成 ] メニューをクリックして、ルームの新規作成画面を表示します。
- [ ルーム名 ] 欄に識別名を入力し、利用するRAGを [ リトリーバー ] 選択から選択します。なお、RAG不要時は「 none 」を選択します。
- [OK] をクリックしルームを作成します。作成が成功したときは自動的に作成したルームに移動します。
ルーム自体を削除したり、ルームのトークン配分(回答、過去履歴、RAG参照に割り当てるトークン量の調整)を変更したいときは、 [ ルーム ]-[ 管理 ] メニューをクリックして、 [ ルーム管理 ] 画面を開きます。
[ ルーム管理 ] 画面で [ 編集 ] をクリックすると該当行のルームの設定内容を変更できます。
- [ ルーム名 ] は、空白以外の任意の名称が指定可能です。
- [ ランダム性] は、Temperature と呼ばれるもので、0.0~1.0の範囲で0.1刻みで指定可能です。0.0を指定すると毎回同じ回答になり、1.0に近づくにつれてLLMはより様々な探索を行う可能性が高くなります。
- 3つのトークン数は、合計が128Kに収まるように調整可能です。
- [OK] をクリックすると変更した内容でルームを更新します。
[ ルーム管理 ] 画面で [ 削除 ] をクリックすると該当行のルームを削除できます。
- 削除前に確認ダイアログが表示されるので、誤操作でクリックしてしまった時は [ いいえ ] をクリックすると削除を中止できます。
[ ファイル ]-[RAG]-[ 新規作成 ] メニューをクリックして、ルームの新規作成画面を表示します。
- [ RAG名 ] 欄に識別名を入力し、データ入力元を [Web] 、 [ ファイル ] 、 [ フォルダ ]から選択します。
- Web:指定したURLに記載された内容からRAGを作成
- ファイル:ダイアログで指定したファイルの内容からRAGを作成
- フォルダ:指定したフォルダ内のファイルの内容からRAGを作成
- [OK] をクリックしRAGを作成します。
- Webサイトを指定してRAGを作成した場合、URLの先頭にRAG作成日付をyyyyMMdd_の形式で自動付与に付与した名前で登録されます。
- ファイルを指定してRAGを作成した場合、指定したファイル名で登録されます。
- フォルダ名を指定した場合、フォルダに含まれるファイル名で登録されます。
RAG自体を削除したり、RAGに格納されているデータを変更したいときは、 [ ファイル ]-[RAG]-[ 開く ] メニューをクリックして、 [ RAG管理 ] 画面を開きます。
[ RAG管理 ] 画面で [ 編集 ] をクリックすると該当行のRAGの設定内容を変更できます。
- [ RAG名 ] 欄を変更すると新しい識別名に変更できます。
- データ入力元を指定することで RAG の内容を置き換えることが出来ます。なお、全面置き換えとなりますので、更新しないデータも再度指定する必要があります。
- Web:指定したURLに記載された内容からRAGを作成
- ファイル:ダイアログで指定したファイルの内容からRAGを作成
- フォルダ:指定したフォルダ内のファイルの内容からRAGを作成
- [OK] をクリックすると変更した内容でRAGを更新します。
設定変更前の RAG を使っているルームからは自動的に新しい RAG が参照されるようになります。
[ RAG管理 ] 画面で [ 削除 ] をクリックすると該当行のRAGを削除できます。
- 削除前に確認ダイアログが表示されるので、誤操作でクリックしてしまった時は [ いいえ ] をクリックすると削除を中止できます。
サンプルコードは、Visual Studio 2026 または、Visual Studio Code を使用して実行ファイルを build できます。 Visual Studio 2026 であれば、SampleCSharpUI.sln を開いていただければ、あとは UI 上で実行や build が可能です。 Visual Studio Code の場合は、環境設定などが必要です。
このサンプルが、Fujitsu Cloud Service Generative AI Platform を活用し、皆様のユーザーエクスペリエンスを飛躍的に進化させる革新的なアプリケーションを生み出すためのインスピレーションとなれば幸いです。
さらに、本サンプルではチャットや RAG の管理においても操作性を追求した実装をアプリ側で行っていますので、皆様が開発されるアプリの管理画面設計のヒントとしてぜひご活用ください。