OpenAI API でペルソナを使って特定の人向けの回答が得られるようにしてみた

2023.04.17

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、yagiです。

話題のChat GPTについて、OpenAI APIのキーをもらって色々試してみましたところ、ペルソナを使って特定の人向けの回答が得られたのが面白かったので、記載してみます。

ペルソナとは?

人格。心理学では外向きの(表面的な)人格。 ▷ ラテン persona (=仮面・人格)

Oxford Languages の定義より引用

試してみた

以下のお二人のブログを参考に、質問の回答にペルソナに設定した人物向けの回答を出力するようにしました。

[初心者向き] OpenAI APIを使ってPythonでChatGPT遊びするための最初の三歩くらい

OpenAI APIを使ってレアジョブ英会話のDaily News Articleの準備を瞬殺させる

やってみた

まずはペルソナを設定せずに、質問をした場合の回答です。(質問文:大谷翔平について教えてください。)

コードは上記ブログとほぼ同じです。以下のような回答を得ました。

% python3 openai_answer.py

大谷翔平は、日本のプロ野球選手であり、エンゼルスに所属しています。彼は投手としても打者としても活躍し、マルチプレーヤーとして知られています。

また、日本プロ野球で活躍した後、2018年にメジャーリーグに挑戦しました。彼は、2018年のメジャーリーグで新人王を獲得し、2019年にはオールスターゲームにも出場しました。

大谷翔平は、若い選手の中でも特に才能がある選手の一人として注目されています。

回答は得られたものの、事実だけの回答で少し味気ない感じもします。

ペルソナの設定

次にペルソナを設定して、設定したペルソナに対する回答をするようにします。

python コードは以下のようになります。(openai_answer_persona.py)

import os

import openai

# APIキーの設定
openai.api_key = os.environ["OPENAI_API_KEY"]

# ペルソナの設定
PERSONA = "神奈川県に住む30代の主婦で、小学生と保育園の二人の娘がおり、庭で犬を飼っています。とても世話好きで愛想が良く、人と話すことが大好きな人物です。"

response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "user",
		 "content": "大谷翔平について教えてください。"
		 + "その場合、"
		 + PERSONA
		 + "という人向けに答えてください。",
		 },
    ],
)
print(response.choices[0]["message"]["content"].strip())

出力された回答が以下のようになりました。

% python3 openai_answer_persona.py  

大谷翔平は、現在北米のメジャーリーグでプレーする日本人選手です。彼は、投手としても打者としても非常に活躍しており、アメリカでも「二刀流」として注目されています。

あなたの場合、大谷翔平について特に関心があるかどうかは分かりませんが、彼が日本人でありながらメジャーリーグで活躍していることは、多くの人にとって誇らしいことであると思います。

また、あなたがママであるということから、大谷翔平が多忙なプロ野球選手として活躍する一方で、家族との時間を大切にしていることや、自己管理能力が高いことも注目すべき点でしょう。

犬を飼っているということからもわかるように、大谷翔平が動物愛護団体に参加していることや、野球選手としての成功によって慈善活動にも力を入れていることも知っておく価値があるでしょう。

一方で、大谷翔平について注目するあまり、家族や仕事など自分自身の生活に支障をきたすことがないよう、バランスのとれた観察や情報収集を心がけることが大切です。

先ほどの回答とは全然異なる、とても人間味あふれるペルソナに設定した人向けの回答となりました!

今度はペルソナの設定を変えてみます。

PERSONA = "東京都港区に住む40代男性で、証券会社に勤めています。室内で小型犬を飼っています。週末は美味しいレストランで食事をするのが楽しみです。"

としてみました!

% python3 openai_answer_persona.py  

大谷翔平は、現在メジャーリーグに所属するプロ野球選手です。ポジションは投手と designated hitter(DH)で、日本人選手として初めてオールスターゲームに両方のポジションで出場しました。また、彼は強打者としても知られており、2016年には日本のプロ野球リーグで最多本塁打を記録しました。

彼の経歴については、2012年に北海道日本ハムファイターズの育成選手として入団し、2013年には一軍に昇格してプロデビューを果たしました。その後、2017年にロサンゼルス・エンゼルスに移籍し、メジャーリーグでプレーしています。

また、彼は野球選手としてだけでなく、人柄や印象的なプレーなどから、多くのファンを魅了しています。

東京都港区に住む40代男性で、証券会社に勤めている人が大谷翔平について興味を持つ理由は、プロ野球ファンとして大谷翔平を応援しているか、野球に詳しい人として彼に注目しているかもしれません。また、小型犬を飼っていることから、彼が動物好きだったり、家族思いの人である可能性もあります。

週末に美味しいレストランで食事をするのが楽しみだということからも分かるように、彼は食にも興味があるかもしれません。大谷翔平が所属するロサンゼルス・エンゼルスは、米国で人気のある野球チームの一つであり、アメリカン・グルメも楽しめる場所が多いため、彼がファンであれば、プライベートでも良いレストランを探す楽しみがあるかもしれません。

ペルソナを変えたことで、その人物像に沿った回答に変わりました。

(個人的な感想ではありますが)回答に人間味が出て、少し心がほっこりしました。

感想

OpenAI APIでペルソナを使って、そのペルソナに沿った人物への回答が得られるようにしてみました。

人が人と会話をする時にも、相手のことを考えながらコミュニケーションをとると思いますが、ペルソナを利用することでAIでも同じようにできるのかなあと思いました。