あるゲーム会社が、プレイヤーとリアルタイムで会話できる NPC(ノンプレイヤーキャラクター)を Azure OpenAI Service で実装しています。特定のキャラクターとして一貫した口調・性格・知識範囲を維持しながら、プレイヤーの入力に応答させたい。システムプロンプトに含めるべき内容として最も適切なものはどれか。
- A. モデルの temperature と top_p の値をシステムプロンプト内に記述して動的に変更する
- B. 「あなたは AI アシスタントです。質問に丁寧に答えてください」という汎用的な指示
- C. キャラクターの名前・背景設定・話し方の特徴・知ってはいけない情報(ゲーム世界外のこと)・守るべき制約事項を詳細に記述する
- D. プレイヤーが過去に行った会話履歴のすべてを毎回システムプロンプトに追加する
解答と解説を見る
正解: C
システムプロンプトには、NPC としての役割を正確に制御するために、キャラクターの名前・世界観上の背景設定・話し方や口調の特徴・知識範囲の制限(ゲーム世界外の現実情報は知らないなど)・禁止事項(キャラクターを破る行動)を詳細に記述することが最も効果的です。選択肢 B の汎用的な指示はキャラクターの一貫性を確保できません。選択肢 D の全会話履歴のシステムプロンプトへの毎回追加はコンテキスト上限を圧迫し、コストも増大します。会話履歴は適切に messages 配列で管理すべきです。選択肢 A はシステムプロンプト内に API パラメータを記述してもモデルの動作パラメータは変わらず、これらは API リクエストのパラメータとして別途指定します。