はいどうも、シローと申します。
僕が個人開発で現在作っているTwitterやLINEでよく見るネタ画像の元ネタをまとめているサービスがあるのですが
その作品名やキャラクター名の解説をChatGPTで出力してみたらどうかなと思って試してみたら、思ったよりも正確な情報を出していてびっくりしました。
なので、ChatGPT-4の精度とそれを既存サービスに組み込む手順をまとめてみました。
まずは、どのくらい精度がいいかを検証してみます。
こちら、「キングダム」という作品の信です。
この解説をChatGPTでお願いしてみます。
ご覧の通り、ほとんど合っている解説でした(少なくとも僕よりもうまく解説できているw
ちゃんとネット上の記事を調べてその内容を元に出しているのだと思います。
こんなに良い機能があるなら、それをWebサービスに組み込むしかないです!
まずは、OpenAIのAPIキーを発行します。(アカウントがない場合は発行しないといけません)
このAPIキーを使って、「Text generations」という機能を利用します。
これはChatGPTのように、ユーザーが入力した内容に対する情報を大規模言語モデルを通じて出力する機能です。
まずはお試しにPostmanというツールを使ってAPIを実行してみます。
このような感じで、キングダムの信の解説をJSON形式で出力できるということがわかりました。
これをサーバサイド(Laravel)のロジックに組み込んでみます。
1. エントリーポイントの作成
まずは、routes/api.phpに作品名の要約をするエントリーポイントを作成します。
'/{theme_id}/suggest'が今回作成したエントリーポイントです。
2. OpenAIのFacadeの作成
OpenAIの機能を汎用的に利用するために、Facadeを作ります。
Facadeの作り方は省略しますが、「Text generations」を利用するソースコードはこんな感じにしました。
curlのライブラリを使用して、Postmanで実行したAPIをそのまま叩く実装にしています。
3. APIのロジックを作成
最後にこのOpenAIのFacadeを通じて作品名の解説を出力するロジックを描きます。
これで完了です。
実際にAPIを実行してみた結果がこちらです。
「賭博黙示録カイジ」の解説が出力されました!
いかがでしたでしょうか?今回はOpenAIの「Text generations」を使って漫画やアニメの解説機能を作ってみましたが、まだまだOpenAIには
Image generation(画像生成)やText-to-speach(音声生成)といった機能が用意されていますので、ご自身のサービスに当てはめたら面白いことができると思います。
この記事に関係することやその他プログラミングに対する課題がありましたらどうぞお気軽にご相談いただけますと嬉しいです。