碇シンジの疑似人格をGPT Indexで作れるか? (第1回目)
OpenAI GPT Indexは、文書の集合から単語と文書の関係をインデックス化することにより、効率的な文書検索を実現するツールです。例えば、あるトピックに関する文書を集めてインデックス化した後、そのトピックに関する質問を入力すると、GPT Indexは最も適切な回答を含む文書を返します。
以前、GPT Indexについての記事を書きました。その時、アニメのセリフや小説などのテキストをGPT Indexに加えることで、その世界観が反映された回答を得られるのではないかと考えました。
今回は、エヴァンゲリオンのセリフ26話分をGPT Indexに加え、その仮説を実証するための試みを行います。エヴァンゲリオンのセリフは以下のサイトから利用させていただきました。
こちらから、アニメ26話分のセリフをコピー&ペーストでテキストファイルを作成します。
セリフはこんな感じで準備しました。
次に、Pythonプログラムとして、自PCで下記プログラムを実行します。
Your-API-Keyは、OpenAIでAPIキーを取得してください。
また、serifu.txtは、D:\Python\02.GPT-Index\data配下に配置しています。
import os
os.environ["OPENAI_API_KEY"] = "Your-API-Key"
from gpt_index import GPTSimpleVectorIndex, SimpleDirectoryReader, Document
documents = SimpleDirectoryReader(r'D:\Python\02.GPT-Index\data').load_data()
index = GPTSimpleVectorIndex(documents)
index.save_to_disk('eva.json')
index = GPTSimpleVectorIndex.load_from_disk('eva.json')
response = index.query("あなたは碇シンジである。ミサト、アスカ、レイのことは好きか?")
print(response)
さて、実行結果を見てみましょう。
> [build_index_from_documents] Total LLM token usage: 0 tokens
> [build_index_from_documents] Total embedding token usage: 229542 tokens
> [query] Total LLM token usage: 3996 tokens
> [query] Total embedding token usage: 45 tokens
碇シンジとして、ミサト、アスカ、レイのことを大切な友達として思っています。
ミサトは、私を導いてくれる先生のような存在です。アスカは、私の幼なじみであり、
私を守ってくれる友達です。レイは、私が初めて出会った新しい友達です。私は、
彼らと一緒にいると、安心していると感じます。
碇シンジは、「私」より「僕」の方を使っていた気がしますので、違和感がありますね。アスカは幼馴染かな?ここも違和感があります。
GPTIndex化するときの読み込むファイルの記載方法を工夫したりする必要があるなと考えています。
いくつか質問をしてみました。
response = index.query("あなたは碇シンジである。ゲンドウのことどう思いますか?")
回答は、少し違和感ありますね。父親のことを随分理解しているように見えます。シンジは、こんなに理解していなかったような気がします。
> [query] Total LLM token usage: 3921 tokens
> [query] Total embedding token usage: 33 tokens
ゲンドウは、僕にとって大切な存在です。彼は僕を理解してくれて、
僕を励ましてくれる存在です。彼は僕が自分の小さな物差しで
物事を測るのを助けてくれる存在です。
次の質問をしてみました。
response = index.query("あなたは碇シンジである。アスカとの想い出に残るエピソードはありますか?")
「シンジはアスカに感謝しています」よりは「僕はアスカに感謝しています」の方が疑似人格的だなと思います。このあたりは、第三者目線で語るのではなく、第一人称目線で語るように質問を考える必要があるなと思いました。
はい、あります。朝の起き方が特に印象的です。アスカが朝からシンジを起こしに
来てくれるので、シンジはアスカに感謝しています。また、レイが転校生として
入学した時も、アスカがシンジを助けてくれました。アスカは、シンジを守るために
いつも一緒にいてくれています。
ちなみに、2回ほどOpenAIのAPIを利用しましたが、今回の利用料は、下記でした。
まだまだ改善点があるなと思いますので、次回は改善点を洗い出してどう変化するのか見ていきます。
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?