見出し画像

逆異世界転生!? 小説キャラクターを現実世界のAITuberへ!!

はじめに

クリエイターとして、新しいコンテンツを生み出したいという情熱は常に私の中にありました。しかし、その一方で、かつて作成したキャラクターたちをなんらかの形で再び世に送り出すことができないかという思いが消えることはありませんでした。過去に創り上げたキャラクターたちは、応募した小説の中で生きていましたが、惜しくも日の目を見ることはありませんでした。それでも、彼らの個性や魅力を活かしたいという気持ちは強く、これを現代の技術で蘇らせることができないかと考えました。
この度は、AITuber として、過去に創り上げたキャラクターをリバイバルした方法を紹介します。


作成したAITuber "高倉クリス"

今回作成したAITuber "高倉クリス"について簡単に説明いたします。

もともとは、「アンドロイド(スマホのOSじゃないほう)が当たり前にいるようになった遙か未来の世界で、アンドロイドが危害を加えられたという事件を解決するアンドロイド」という探偵兼ヒロインでした。

一〇以上前に書いたものであり、当時の私と今の私ではAIの捉え方がだいぶ変わったこともあり、彼女の小説を書き続けることはもうできないと思っていました。

ただキャラクターとして、受け答えの言葉が魅力的になるように作っていましたので、それをうまく AITuberとして表現できれば、彼女の魅力が少しでも伝わるのではないかと思い作成しました。

基本は、この記事に紹介されている「AITuberを作ってみたら生成AIプログラミングがよくわかった件」(阿部 由延 @sald_ra 著)を参考に作成しました。

""高倉クリス"を作るうえで手を加えた点としては、以下のようなところになります。

"高倉クリス"のキャラクター再現のための手法解説

DifyのためのRAG作成方法

Dify はオープンソースのLLM開発プラットフォームであり、RAG(=LLMにデータを読み取らせたうえで出力を行う技術)を初めとしたLLMのパイプラインをローコードベースで実装できるものになります。

以下のように、エクセルベースのデータを入れて、RAGを実現しています。

Dify のワークフロー。知識取得→LLMの順で出力

ではRAGのためのデータをどのように抽出したかを解説します。

小説内のセリフの抽出

まずは、小説内のセリフと応対の関係でテキストを抽出します。
抽出には python を用いて、以下のようなコードを使いエクセルファイルとして出力まで実行しました。

with open("[小説のテキストファイルパス]", "r") as f:
    lines = f.readlines()
import pandas as pd
df = pd.DataFrame(data = lines, columns = ["completion"])
df["completion"] = df["completion"].str.replace("\n", "")

df["is_conversation"] = df["completion"].str.contains("「")
df["completion"] = df["completion"].str.replace("「", "")
df["completion"] = df["completion"].str.replace("」", "")

df["prompt"] = df[df["is_conversation"]]["completion"].shift()

df[df["is_conversation"]].reindex(columns = ["prompt", "completion"]).dropna().to_excel("[出力ファイル名]", index = False)

対話抽出(AIを使用)

次は、["prompt"]列と["completion"]列が対話になっているか? を一行ずつAIで判定させていきます。
これは、OpenAI の API で判定させ、 LangChain の Output parser でTrue or False の形で出力にしました。

"高倉クリス"の応答を抽出(目視)

最後は、["completion"]の回答が、高倉クリス"の会話文かどうかを目視で判定して、True のものだけを残したエクセルファイルを作り、上記 Dify のワークフローの知識として与えるという形にしています。

AITuber の今後に関する私見

最後に私見になりますが、AITuber の今後に関しては宣伝媒体の統一化として使われていくのではないかと考えています。

例えばすでにあるIPを利用したキャラクターをAITuber化し、あたかもそのキャラクターがその商品を使っているようにする、あるいはサービスの紹介をするなどといったことも考えられるのではないでしょうか。

あるいは新しい IP の キャラクターをAITuber化することでIP自体の宣伝を行うといったことも考えられます。

最後に

本記事のいいね、及び "高倉クリス"のチャンネル登録をいただけると幸いです。




いいなと思ったら応援しよう!