14
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

watnowAdvent Calendar 2023

Day 20

生成AIだけでブログを運用したい

Posted at

はじめに

生成AIを使えば、寝ているだけで毎日ブログを更新できるのではないかと思いました。

早速試してみようと思います。

まずは結果から

できました。

こんな感じのブログ記事が毎日更新されるようになりました。

image.png

では、作り方を見ていきます。

やりたいこと

私が一切手を動かすことなく、ブログを毎日更新し続けることが目標です。

ということで下記の項目を完全に自動化します。

  • 生成AIでブログの記事を生成する
  • 毎日19時に新しいブログの記事が公開される

こんな感じで作ります

GitHub Actioins で記事生成用のスクリプトを定期実行させます。
クライアント側は Next.js です。こちらは読み取り専用です。

image.png

記事の生成

まずはブログの記事を生成するスクリプトを作ります。

大まかな流れはこんな感じ

  1. OpenAI API を使って記事のタイトルと本文を生成する
  2. 生成された記事のデータをDBに保存する

今回は Node.js で実装することにしました。

生成用のスクリプトを作る

文章の生成に使用するAIモデルは、OpenAI の gpt-3.5-turbo です。
試しに API を叩いてみます。

いつもお世話になっているGPTさんに日頃の感謝を伝えてみましょう。

const openai = new OpenAI({ apiKey: API_KEY });
const completion = await openai.chat.completions.create({
  messages: [{
      role: "system",
      content: "いつもお世話になっております。"
  }],
  model: "gpt-3.5-turbo",
});

レスポンスを展開してみると...

{
  role: 'assistant',
  content: 'お世話になっております。\n' +
    '\n' +
    'いつもお問い合わせいただき、ありがとうございます。\n' +
    '\n' +
    'どのようなご質問がありますか?お手伝いできることがあれば、お知らせください。'
}

生成された文章が返ってきました!

この調子でいい感じに文章を生成させて、バリデーション・フォーマットをこねこねすると...

image.png

立派な記事を生成することができました!!
天才です!!

生成された記事は DB に保存されます。

あとはこれを GitHunb Actions で定期実行するだけ!!

毎日お昼の12時に勝手にブログの記事が生成される夢のようなシステムの完成です。19時になったら公開フラグが立って、クライアント側から閲覧できるようになります。

クライアント側も作るよ

いい感じに文章の生成を自動化することができました。
あとはそれっぽいwebページを作って、ブラウザで閲覧できるようにすれば完成です。

Next.js で真心込めて作ります。

image.png

いい感じですね。

完成

ブログの運用を完全に自動化することができました。
AIおじさんも嬉しそうです。

かなり読み応えのあるブログが完成したような気がします。
毎日更新されるのでぜひ読んでいただけると嬉しいです。

最後に

これからもAIを使い倒しながら、人間らしく生きていこうと思います。
ありがとうございました。

14
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?