見出し画像

ChatGPTでショートショートを自動生成するサイトを作ってみた

こんにちは、スクーティーというソフトウェア開発会社をベトナムでやっている、かけやといいます。

ChatGPTが盛り上がっていますね。当初はベトナムでは使えなかったのですが、いつの間にか使えるようになっていて、いろいろな使い方があるので早速使い倒しています。

OpenAIがAPIを公開していて、APIを使ってなにか作ってみたくなったので、「ChatGPTがショートショートを自動生成する」Webサイトを作ってみました。

この記事では、このWebサイト作るまでの大まかな流れを紹介します。APIを使えるようにするまでの手続きなど細かい点はここには記載しませんので、参考サイトを貼っておきます。

全体構成

OpenAIのAPIでショートショートの文章とイメージ画像を作ってもらって、文章をDeepLのAPIで英語から日本語に翻訳し、Wordpressの REST API経由で全コンテンツをWordpressに突っ込んでいるだけのお手軽構成です。

  • サーバはGCPを使用しています。1クリックでWordpress環境を作れるのと、FunctionsでPythonのバッチ処理を実行したかったという理由で選びました。

  • バッチ処理はPythonで書いています。OpenAIのAPIも、DeepLのAPIも、WordpressのAPIも、Pythonの既存のライブラリを使えばほとんどコードを書かなくて使えてしまうお手軽さで選びました。

  • 図示していませんが、CDNはCloudflareを使用しています。

作ったサイト「AIショートショート」

日本語版:

英語版:

ショートショート自動生成サイトを作ろうと思ったきっかけ

最初はこの記事を読んだのがきっかけです。

Google Docsに記事を作るよりも、定時バッチ処理でAPIを叩いてコンテンツを作って、それをWordpressに突っ込んだほうが面白そうだし楽そうだったので、やってみました。

なぜコンテンツとしてショートショートを選んだかというと、最初は自己啓発っぽい、読んでためになるようなコンテンツを量産しようと考えたのですが、ChatGPTは嘘をつくというか、内容の正しさに無関係に結果が出力されるようなので「役に立つ系」はやめ、内容が正しいかどうかに影響を受けないSF系小説を作ってみることにしました。

作り方

① ChatGPTでショートショートを出力させるにはどうしたらいいか研究する

システムの仕組み自体はシンプルでも、出力されるコンテンツがそれっぽくなってないと話にならないので、まずはChatGPTでショートショートを出力するにはどうしたらいいかを研究しました。

調査にあたってはこのあたりのサイトを参考にさせていただきました。

実際には論文も参照しているのですが、どの論文を参照しているかが結構ノウハウだったりするので、ここでは割愛させていただきます。

② OpenAIのAPIを実行する

PythonでOpenAIのAPIを実行する方法は色々なサイトで紹介されていますが、上記のサイトでも紹介されているように、ChatGPTからストーリーのある文章を出力させるには「会話」が必要です。

単純にAPIを実行しただけではセッションが切れてしまい、「会話」が続きません。API経由で会話をする方法は、こちらのサイトを参考にさせていただきました。

③ DeepLのAPIを実行する

ここは特にハマりどころはないと思います。

④ WordpressのAPIを実行する

ここも正直APIを呼ぶだけなのですが、記事中に画像を載せるために、先に画像をアップロードしておく点だけ若干注意が必要です。この記事を参考にさせていただきました。

また、当たり前ですが、API実行前にWordpress環境を作っておく必要があります。GCP上にWordpressを構築する手順はこのあたりを参考にさせていただきました。

⑤ GCPのFunctionsでバッチを実行する

ここまでの動作確認は全てGoogle Colabでやっていました。環境が一瞬でできるので本当に便利です。

さて、ここまでで必要な機能が全て揃っているので、あとは②③④の処理を定期的に実行するだけです。Google ColabのProプランであれば、実装した処理を定時実行することも可能っぽいのですが、月額が1000円程度で、定時実行するためだけの目的であればGCPを使ったほうが安いので、GCPのFunctionsでやることにしました。

GCPを使うのは初めてだったので、こちらのサイトを参考にさせていただきました。

もう少しちゃんとしたい

ざっとこんな感じなのですが、まだまだ改良できる点は多々あり、今後の課題として下記をやっていきたいと思っています。

  • 「オチ」のちゃんとあるストーリーを作る。

    • 正直、プログラミング云々でなくここが一番むずかしいのですが、ショートショートはちゃんと「オチ」がないとただの短い文章でしかなく、現時点ではまだあまり「オチ」のあるストーリーを作れていません。もう少しプロンプトを研究してみます。

  • SEO対策

    • 小説サイトの場合そもそもSEO対策ってどうするんですかね・・・?これといった主なキーワードもないので、悩み中です。

  • サイトの高速化

    • 画像ファイルを現時点ではVMインスタンス上に乗せているのですが、Storageに移したいです。

  • レビューできるようにする

    • 読者の方々にレビューしていただいたり、コメントしていただいたら盛り上がるかなと思ってます。

以上がショートショート自動生成サイトの作り方でした。今後とも「AIショートショート」をよろしくおねがいします!

Twitterとインスタもあるので、是非フォローをお願いします!


この記事が気に入ったらサポートをしてみませんか?