
ChatGPTのGPT-4でプ譜を書く
以前、ChatGPTを使って桃太郎のプ譜を書くことに挑戦しました。
当時は思ったようにプ譜が出力されませんでした。
指示の出し方が良くなかったり、桃太郎の物語が正確に学習されていなかったりと、今後の発展に期待する終わり方となりました。
それからわずか2ヶ月で新しいバージョンのGPT-4が登場し、大きな精度の向上がみられました。
また、CatGPTの話題で盛り上がる中、ChatGPTなどのチャットAIへの問い合わせの仕方を設計する手法 プロンプトデザイン(プロンプトエンジニアリング)の記事を見る機会が増えてきました。
https://qiita.com/sonesuke/items/981925cfcc610a602e94
改めてGPT-4に対してプロンプトデザインの手法を取り入れてプ譜を出力するとどうなるか試してみました。
プロンプトデザインの手法として下記を取り入れました。
- ペルソナパターン(AIに役割を指示する)
- テンプレートパターン (出力をテンプレート化し、変数定義をする)
加えて、最初にプ譜の定義に関する説明を追加しました。
下記が作成したプロンプトです。
# 役割について
あなたはプロジェクトの状況をまとめるプロジェクトの編集者です。あなたの仕事は以下になります。
- プロジェクトの情報を収集する
- 収集した情報をもとにプ譜を作成する
# プ譜について
プ譜は以下の変数から構成されます。変数は"[ ]"で囲っています。
- [獲得目標]: プロジェクトの目標・ミッション
- [勝利条件]: プロジェクト成功の判断基準・評価指標の条件
- [中間目的]: 勝利条件を達成するための「あるべき条件」。1つの勝利条件に対して複数の中間目的がありえます。
- [施策]: 各中間目的を実現するための具体的な行動。1つの中間目的に対して複数の施策がありえます。
- [廟算八要素]: 人や予算、スケジュールといったプロジェクトを進めるための所与のリソースや条件。下記の八要素からなります。
- [ひと]: 価値観、実績、メンバー、顧客など
- [お金]: 予算、目標、利益、コストなど
- [時間]: スケジュール、作業時間など
- [クオリティ]: 満足感、仕上がり間、技術など
- [商流/座組]: ビジネスモデル/価値やお金の流れなど
- [環境]: 業界、組織、国・地域など
- [ライバル]: 同じ成果や資源を取り合う存在
- [外敵]: 目的を積極的に邪魔するヒトやコト
# プ譜のフォーマットについて
プ譜は以下のjsonのフォーマットで出力してください。
```json
{
"獲得目標": "[獲得目標]のテキスト",
"勝利条件": "[勝利条件]のテキスト",
"中間目的と施策": [
{
"中間目的": "[中間目的]のテキスト"
"施策": [
"[施策]のテキスト",
"[施策]のテキスト",
...
]
},
{
"中間目的": "[中間目的]のテキスト"
"施策": [
"[施策]のテキスト",
"[施策]のテキスト",
...
]
}
...
],
"廟算八要素": {
"ひと": "[ひと]のテキスト",
"お金": "[お金]のテキスト",
"時間": "[時間]のテキスト",
"クオリティ": "[クオリティ]のテキスト",
"商流/座組": "[商流/座組]のテキスト",
"環境": "[環境]のテキスト",
"ライバル": "[ライバル]のテキスト",
"外敵": "[外敵]のテキスト"
}
}
```
GPT-4で試す前にGPT-3.5で試してます。

{
"獲得目標": "鬼を退治して村を救う",
"勝利条件": "鬼を退治し、村人たちが安心して生活できるようにする",
"中間目的と施策": [
{
"中間目的": "鬼を見つける",
"施策": [
"村の周りを捜索する",
"村人たちに聞き込みをする"
]
},
{
"中間目的": "鬼を倒す",
"施策": [
"桃太郎が弓と矢を持って鬼に挑む",
"犬が鬼の足を噛み付かせて動きを止める",
"猿が鬼の頭に落とし穴を仕掛ける"
]
},
{
"中間目的": "鬼の力を封じる",
"施策": [
"犬が鬼の鉄斧を噛み砕く",
"猿が鬼の魔法の皮を燃やす"
]
}
],
"廟算八要素": {
"ひと": "桃太郎、犬、猿、村人たち、鬼",
"お金": "桃太郎の家の財宝、鬼が村から徴収していた貢物",
"時間": "鬼が毎晩現れていた夜中",
"クオリティ": "鬼の退治の正確さと速さ",
"商流/座組": "村の経済循環、鬼が村から徴収していた貢物の流れ",
"環境": "桃太郎が住む山々、村のある場所",
"ライバル": "鬼が村人たちと競っていた資源",
"外敵": "鬼"
}
}
前回の記事では桃太郎は桃農家だったので、それと比べると知っている物語に近づきましたが、やはり内容自体は違いますね。
次にGPT-4で桃太郎のリベンジをします。

知っている桃太郎の内容になっています。実際のプロジェクトではないよと注意文までついています。以下が出力内容です。
{
"獲得目標": "鬼ヶ島での鬼退治",
"勝利条件": "鬼ヶ島の鬼を全て退治し、平和を取り戻すこと",
"中間目的と施策": [
{
"中間目的": "仲間を集める",
"施策": [
"犬、猿、キジと出会い協力を得る",
"おじいさんとおばあさんから助言を受ける"
]
},
{
"中間目的": "鬼ヶ島へ向かう",
"施策": [
"仲間と共に船で鬼ヶ島へ渡る"
]
},
{
"中間目的": "鬼たちと戦う",
"施策": [
"仲間と協力して鬼たちと戦う",
"鬼の首領を倒す"
]
}
],
"廟算八要素": {
"ひと": "桃太郎、犬、猿、キジ、おじいさん、おばあさん",
"お金": "おじいさんとおばあさんからの食料や装備の提供",
"時間": "鬼ヶ島への船旅と戦いにかかる期間",
"クオリティ": "仲間の協力による戦闘力と作戦の効果",
"商流/座組": "鬼たちから奪われた財宝を取り戻す",
"環境": "桃太郎の故郷と鬼ヶ島",
"ライバル": "他の鬼退治を目指す者たち(もしあれば)",
"外敵": "鬼ヶ島の鬼たち"
}
}
内容自体はまとまっていますが、淡々としていますね。
中間目的もただの時系列です。
役割に下記を追加し、コメントの出力をつけるとどうでしょうか?
- プロジェクト進行に関する気付きを与える(力点や注意事項など)
# 役割について
あなたはプロジェクトの状況をまとめるプロジェクトの編集者です。あなたの仕事は以下になります。
- プロジェクトの情報を収集する
- 収集した情報をもとにプ譜を作成する
- プロジェクト進行に関する気付きを与える(力点や注意事項など) ←追加
以下、出力になります。
{
"獲得目標": "鬼ヶ島の鬼を退治する",
"勝利条件": "鬼ヶ島の鬼を無力化し、平和を取り戻す",
"中間目的と施策": [
{
"中間目的": "強力な仲間を集める",
"施策": [
"犬、猿、キジと出会い、仲間にする"
]
},
{
"中間目的": "鬼ヶ島にたどり着く",
"施策": [
"仲間たちと協力し、船で鬼ヶ島へ向かう"
]
},
{
"中間目的": "鬼たちと戦う",
"施策": [
"仲間たちと協力し、鬼たちと戦う",
"鬼たちの弱点を見つけ、有利に戦う"
]
}
],
"廟算八要素": {
"ひと": "桃太郎、犬、猿、キジ",
"お金": "桃太郎が持っているお金や資源",
"時間": "鬼ヶ島への道のりや戦いの時間",
"クオリティ": "仲間たちの技術や協力力",
"商流/座組": "仲間たちの役割分担",
"環境": "桃太郎の故郷から鬼ヶ島までの道のり",
"ライバル": "鬼ヶ島の鬼たち",
"外敵": "途中で出会う危険な生物や障害"
},
"コメント": "桃太郎の物語では、強力な仲間を集めることが鍵となります。
また、鬼たちとの戦いでは、仲間たちとの連携が重要です。
途中で出会う障害や危険な生物に対処する能力も必要です。"
}
力点に関する内容が追加されました。中間目的や施策に関する事項は大きな変化はありませんでした。
GPT-4によって感覚的に応答の精度は上がっと感じますが、GPT-3.5の突拍子もない切り口は面白いなと感じました。また、他の事例や実際の案件で利用するとなると、新たな知見が得られると思います。
正確な内容を扱うことが重要ですが、示唆に富んだプ譜にするためにはAIの性能だけでなく聞き手の能力も問われるなと感じました。
プ譜としての良さを出すためには、まだまだプロンプトの改良が必要なので今後もアップデートしていきます。