GPT-3のAPIを使ってエヴァンゲリオンのMAGIシステムを実装してみた。(Pythonで解説)
ChatGPTが話題沸騰ですね。今回はエヴァンゲリオンに登場するMAGIシステムをGPT-3のAPIで実装した有料記事を書いてみました。ぜひチェックしてみてください!(サンプルコードはPython)
MAGIシステムを一言で言うと
深津氏の記事に触発され、GoogleColabで実装してみました。(面白い記事を書いてくれた深津氏に感謝です。)詳しくは↓
以下が手順
2.API keysを発行しましょう。
ここからがコード。
3.openaiをインストール
pip install openai
4.まずはサンプルコードで疎通確認をしましょう。ちなみに、今回使用するコードは以下の繰り返しになります。
import openai
openai.api_key = "発行したAPI_KEY"
prompt = """
以下の以下のツイートがポシティブかネガティブか判定してください。
ツイート: 新しいバットマン映画はつまらなかった!
"""
response = openai.Completion.create(
model="text-davinci-003",
prompt=prompt,
max_tokens=100,
temperature=0
)
print(json.dumps(response, ensure_ascii=False, indent=2))
以下が、返って来ればOKです。
{ "id": "cmpl-6dvo2UgdMDPYgmDUGqEzocFQLZU0f", "object": "text_completion", "created": 1674975018, "model": "text-davinci-003", "choices": [ { "text": "\nネガティブ", "index": 0, "logprobs": null, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 71, "completion_tokens": 5, "total_tokens": 76 }}
5.本体コード(MAGIシステム)
※text-davinci-003は実行すると料金がかかりますので、ここは注意してください。1Kトークンあたり$0.0200です。(最初はFreeTrialで18ドル付与されていると思います。)
ポイントはopenai.Completion.createを独立で4回呼び出すことです。それぞれの性格に合わせてパラメータ(temperature)を変えます。質問でそれぞれのペルソナになりきってもらいます。
パラメータ
model="text-davinci-003"が今回使用するモデルです。(現時点で一番性能が良いです。)
temperature は1に近づくほど答えがランダムになり、0に近いほど答えが安定します。答えが決まっている質問に対しては0に近いよう設定すると良いでしょう。
max_tokensはトークン数です。料金を抑えたかったら少なめにしましょう。
import openai
import json
openai.api_key = "発行したAPI_KEY"
#MELCHIOR (科学者)
prompt0 = """
以下の質問に科学者として答えてください。
「おすすめの料理はなんですか?」
"""
response0 = openai.Completion.create(
model="text-davinci-003",
prompt=prompt0,
max_tokens=250,
temperature=0.1
)
print(json.dumps(response0['choices'][0]['text'], ensure_ascii=False, indent=2))
#BALTHASAR, (母)
prompt1 = """
以下の質問に母親として答えてください。
「おすすめの料理はなんですか?」
"""
response1 = openai.Completion.create(
model="text-davinci-003",
prompt=prompt1,
max_tokens=250,
temperature=0.5
)
print(json.dumps(response1['choices'][0]['text'], ensure_ascii=False, indent=2))
#CASPER, (女)
prompt2 = """
以下の質問に女として答えてください。
「おすすめの料理はなんですか?」
"""
response2 = openai.Completion.create(
model="text-davinci-003",
prompt=prompt2,
max_tokens=250,
temperature=0.9
)
print(json.dumps(response2['choices'][0]['text'], ensure_ascii=False, indent=2))
以下が実行結果です。個性的な意見が出ましたね。
最終出力
#最終出力
prompt3 ="以下の3つの意見の折衷案はどこにあると思いますか?意見を一つにまとめてください。"+ "「"+response0['choices'][0]['text']+"」"+ "「"+response1['choices'][0]['text']+"」"+ "「"+response2['choices'][0]['text']+"」"
print(prompt3)
response3 = openai.Completion.create(
model="text-davinci-003",
prompt=prompt3,
max_tokens=250,
temperature=0.5
)
print(json.dumps(response3['choices'][0]['text'], ensure_ascii=False, indent=2))
なんとも無難な意見に着地しましたね。
6.発生料金のチェックの仕方。
右上メニューからMange accountを選択⇨Usageを選択。
如何でしたか?
Webサービスのペルソナを擬人化してサービスについての質問とかできそうですね。現時点だとAIに答えを聞くというより、自分を意見や仕事、作品を相対化してくれる相手になりそうですね。
※本コードによって発生した料金・損害につきましては、いかなる責任も負いかねます。自己責任で実行してください。
今流行の生成AIが認知された本。
GPT-3のアルゴリズム、Transformers
一から勉強したい人はこの本がオススメです。
この記事が気に入ったらサポートをしてみませんか?