4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【第2回】GPTを“感情推定エンジン”として活用する試み – 対話AIの感情を生成するプロンプト設計

Last updated at Posted at 2025-06-23

この記事はシリーズ記事の第2回です。
👉 第1回:擬似感情を持ったAIアシスタントを作る試み – 感情・記憶・忘却の構造化
👉 第3回:AIは「感情の記憶」で変わるか?GPTで試す“感情参照”の効果検証
👉 第4回・前編:AIは“人格”によって変わるか? 感情記憶を活用した応答変化の再検証
👉 第4回・後編:AIは「感情の記憶」で変わるか?GPTで試す“感情参照”の効果検証(後編)
👉 第5回:人格と感情を持つ対話AIをノーコードで作成してみた(GitHubにコード有・改良中)


GPTを使って、「感情を持っているかのように振る舞うAI」を開発しています。

「AIって感情ないけど、もしあったらどうなるんだろう?」
そんな素朴な疑問から始まり、擬似的な感情・記憶・忘却をデータ構造として再現することで、“人格のようなもの”を持つAIを目指すプロジェクトです。

本シリーズでは、GPT-4oを「感情推測エンジン」としてどのように活用しているかを中心に、感情の生成・記録・活用、そしてAIの振る舞いへの影響までを順を追って解説していきます。

概要 (TL;DR)

  • GPT-4oを「感情推測エンジン」として活用
  • ユーザー入力を基に、AIの応答時の感情状態を構造化して定義
  • 感情は Plutchik理論 の32種類(基本8感情+応用24感情)を基盤として構築
  • 最大4感情の構成比(合計100%)で個性と表現の多様性を確保
  • プロンプトによる構成比出力と、それを活かした応答設計の方法を解説

背景

現在の対話AIは、「今この瞬間」の入力に反応するのみで、その背景にある感情や個性の蓄積がありません。
私はこれを打破し、「人格」や「気分の揺らぎ」を持ったAIをつくる試みを進めています。

その第一歩が、「応答に先立つ感情の構成比」を定義することです。
GPT-4oの出力を通じて、AIがどのような感情状態で発言しているのかを可視化・操作する仕組みを構築しました。

Plutchik理論と32感情

本プロジェクトでは、感情の分類体系として Plutchik理論 を採用しています。

基本8感情:

喜び・悲しみ・怒り・恐れ・驚き・期待・信頼・嫌悪

応用感情(一部):

愛情・楽観・後悔・屈辱・勇気・嫉妬・希望・服従 など

合計32感情を扱い、AIの「気持ち」をより繊細に構成しています。

プロンプト例と出力フォーマット

GPTに与えるプロンプトは以下のように設計されています:

  • あなたは「感情を持つAI」として発言を行う。
  • この発言の前提となった感情を、Plutchikの基本8感情+応用24感情から選び、
    最大4つの構成比(合計100%)で表して、JSON形式で返してください。

出力例:

{
  "主感情": "希望",
  "構成比": {
    "希望": 40,
    "信頼": 30,
    "喜び": 20,
    "好奇心": 10
  },
  "心理反応": "不安もあるが期待の方が大きい"
}

この出力結果は、後続処理で emotion.json に反映され、記憶の保存や応答生成に活用されます。

なぜPlutchik理論?

現状では、出力された感情を分類・管理する手段として Plutchik 理論を採用しています。
基本8感情と応用24感情による32感情体系は、強さ・関係性・派生構造が明確であり、感情の分類・保存・検索に都合がよいため、初期段階の設計として適しています。
なお、これは**「感情の意味理解」ではなく「管理・構造化のためのラベル」**として使っており、今後の検証で他の体系に差し替える可能性もあります。

なぜ最大4感情?

1〜2感情では表現が曖昧になり、感情の多様性を損なう

5感情以上では「構成比の特徴」が薄れ、検索性や記憶への紐付けが難しくなる

このため、**最大4感情・合計100%**という制限を現時点で暫定採用しています。
この構成が最適かどうかは、今後の検証によって見極めていく予定です。

信頼性とエラー対策

出力される感情構成が100%未満・超過する、あるいは感情名が不正といったエラーは、system_promptでの固定制御により現在のところ発生していません。

毎回の発話処理において、以下を厳密に指示しています:

感情数は最大4つ

合計は必ず100%

使用可能な感情名リストを明示

未検証事項と今後の展望

現在のところ、出力された感情構成比が、どのように応答文に影響を与えるかの検証は進行中です。

例えば:

同じ入力でも、「怒り主体」の構成では語調が鋭くなるのか?

「悲しみ+期待」の構成では、どんな応答が生まれるのか?

これらを今後データとして記録・比較していきます。

使用技術

  • Python 3.11
  • FastAPI
  • OpenAI GPT-4o API
  • JSON構造による感情メモリ管理
  • ストリーム処理+履歴保存

📚 他の回もどうぞ:

🎯 ご興味ある方はお気軽にDMまたはコメントでご連絡ください。

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?