見出し画像

【ワールドの作り方:上級編vol.3】ChatGPT応用 プロンプトを使ってみよう

Vket Cloudのアップデートによって、新たにChatGPTにプロンプトを設定して呼び出すことができるようになりました!
プロンプトを設定することによって、Vket Cloudにて呼び出すチャットボットに返答の性格付け、設定に基づいたロールプレイ、しりとりなどの遊びなどなど…メタバース内の遊びが広がること間違いなしです!
ここではプロンプト設定用のウェブページにてプロンプトを作る方法と、VketCloudSDKでの呼び出し方について解説します。


ChatGPTのおさらい

そもそもChatGPTとは何か?についてはVol.1 【ChatGPT導入 基礎知識編】にて解説します!
ここでは、ChatGPTの様々な使い方を押さえているほか、返答や振る舞いを決めるためのプロンプト(指示書)の基本について深堀りします。
まだ読んでいない方はぜひ読んでみてください!

また、Vol.2 【ChatGPT導入 ワールドに連携してみよう】ではVketCloudSDK付属のチュートリアル用シーンを使ってChatGPTを触る方法を解説しています。
もし手っ取り早くChatGPTをVket Cloudで体験してみたい場合は読んでみましょう。

Vket Cloud向けのプロンプトの設定方法の紹介

プロンプトの作成と調教

Vket Cloud向けに新たにChatGPTのプロンプトを設定したい場合、まずVket Cloudトップページにログインし、マイページのダッシュボードから「AIプロンプト管理(β)」を選択し、AIプロンプト管理画面に移動します。

AIプロンプト管理画面では、チャットボットの振る舞いを決めるためのプロンプトを入力して、サイト上で正しい挙動をしているかテストすることができます。

AIプロンプト管理画面の全体像

ここでは試しにコンビニ店員になったVketちゃんを作るための設定をしていきます!
新規のプロンプトを作るため、はじめに左のメニューから「登録」を選択します。

登録ページではプロンプト識別用の名前と簡単な概要を入力して登録します。
後から見てもわかりやすい情報を入れると便利です。

「登録」を押すと、一覧にて新しいプロンプトが生成されます。

ここではまだ何も中身を設定していないため、右から2番目の「調教する」を選択してプロンプトを構築していきます。

プロンプト構築画面

プロンプトは3つのロールに分けられており、入力した情報によってチャットボットの振る舞いが変わっていきます。
ロールとは、チャットの振る舞い方のお手本(モデル)を作るために前提知識、質問、返答の枠組みをチャットボットに読ませるための分類です。

ここにプロンプトを入力していきます

また、ロールの厳密な役割についてはOpenAIのマニュアルにて以下のように説明されています。

system: assistantロールでの返答を定義するためのロール。GPTには事前知識がないので、systemロールで返答の仕方などを定義します。
user: assistantの返答内容や返し方を決めるにあたってモデルとなる質問です。
assistant:モデルとなる返答を設定します。assistantは以前に入力されたやり取りから返答を類推しますが、もし事前に返答の例を定義したい場合はassistantロールのプロンプトで定義します。

https://platform.openai.com/docs/guides/gpt/chat-completions-apiより抜粋・意訳

プロンプトを追加するにはロールを選択した上でテキストボックスに入力し、「送信」を選択します。

質問->回答のようにまとめてプロンプトを打ちたい場合、「プロンプト追加」を選択してプロンプトを複数記入します。

例えば今回のコンビニ店員Vketちゃんの場合は、以下のようにsystem(🌐のマーク)とuser(Vket Cloudロゴのマーク), assistant(Vketちゃんのマーク)のプロンプトを記入しました。

また、ここで追加したプロンプトを訂正したい場合は右のゴミ箱アイコンを選択してプロンプトを一度消去します。

プロンプトの書き方についてはVol.1 【ChatGPT導入 基礎知識編】にて解説しているため、プロンプト作成の際に参考にしましょう。

作成したプロンプトのテスト

作成したプロンプトを基にした会話を試すためには、「お話する」を選択します。

ここではChatGPT公式のサービスと同様に、会話を行うことができます。
例として、以下のように質問するとコンビニ店員のVketちゃんが返答してくれます。

ここでの会話はChatGPTの振る舞いに影響を与えるため、返答内容への影響を与えないテストを行う場合は「性能チェック」を選択します。

VketCloudSDKとの連携

AIプロンプト管理画面にて十分な対話ができるプロンプトを設定出来たら、VketCloudSDKにて呼び出しのための設定を行います。
なお、プロンプトの設定はSDKVer.5.4.3での動作を保証しているため、旧バージョンをお使いの方は以下の記事を参考にバージョンアップを行いましょう。

ここで、ChatGPTの挙動が簡単に確認できるワールドの組み方を説明します。
もしVketCloudSDKを導入していない場合は、以下の記事を参考に開発環境を構築しましょう。

1.Hierarchyの上で"Add essential objects for VketCloud"を選択

新規のシーンを立ち上げたら、Hierarchyの上で右クリックし、"Add essential objects for VketCloud"を選択します。

この時、初期状態ではDespawn Heightがスポーン位置と被っているため、高さを調節します。
また、足場がないためCubeを仮の足場として置いておきます。
この操作によって以下のような配置になっていれば準備完了です。

2.WorldオブジェクトにHEOScriptコンポーネントを追加

WorldコンポーネントにHEOScriptコンポーネントを追加します。
このコンポーネントによって、ワールドにてChatGPTを呼び出すためのスクリプトが動かされます。

まず、HierarchyからWorldを選択し、Inspectorにて"Add Component"を選択した上でHEOScriptを探して選択します。

この操作によってHEOScriptがワールドに追加されます。
この時、初期状態では別のHeliscriptが指定されている場合があるため、下記の3.にてChatGPTTestを指定します。

3.HeliScriptにChatGPTTestを設定

HEOScriptの"Select"を選択し、出現したウィンドウからChatGPTTestという名前のHeliscriptを選択します。

また、Componentの横にあるテキストボックスにはChatGPTTestと入力しておきます。

4.ChatGPTTestのIDをプロンプトのものに書き換え

本シーンではChatGPTのプロンプトを「ChatGPTTest」と言うHeliscriptを使用して呼び出しています。
AIプロンプト管理画面にて設定したプロンプトを呼び出すには、以下のようにCharacterIDとCharaNameをそれぞれ書き換えます。

component ChatGPTTest {
	Player	m_MyPlayer;
	
	int		m_CharacterID;
	string	m_CharaName;
	
	public ChatGPTTest()
	{
		m_MyPlayer = hsPlayerGet();
		
		hsAddOnReceiveChatGPT(OnReceiveChatGPT);
		
		m_CharacterID = 14173748;   //Vket Promptにて設定したID
		m_CharaName = "コンビニ店員Vketちゃん"; //Vket Promptにて設定した名前
	}
  // ~~省略~~ 

ここで指定するIDはAIプロンプト管理画面にて設定したIDと同じにする必要があります。
IDはAIプロンプト管理画面の一覧ページにて確認できます。

なお、プロンプトIDは他のユーザーも使えるため、面白いプロンプトができたらぜひ共有しましょう!
※管理画面では自分が作ったプロンプトのみ表示されます。
今回のコンビニ店員VketちゃんのIDはデモ用のため、ぜひご自由にお使いください。

スクリプトを変更した上でビルドすると、実際にワールドにてプロンプトを設定したChatGPTを呼び出せるようになります!

ぜひ様々なプロンプトを設定して遊びを設計してみてください!


この記事が参加している募集

メタバースやってます

みんなにも読んでほしいですか?

オススメした記事はフォロワーのタイムラインに表示されます!