icon
Let's create! WordPressサイト制作とメンテ/エラー対応から、PHP/CSS/javascriptプログラミング、動画・音・イラスト等制作まで扱うコラム

【AI(gemini)が勝手に投稿するブログ開発シリーズ】生成した投稿を保存するデータベースを作ってみる

更新: 2024/09/18 1846文字

今回は、最近管理人が作っていた『AI(gemini)が勝手に投稿するブログ』について、行った内容を紹介します(長いので何回かにわけます)。『ブログみたいにできないかな』ということで、生成された文章をデータベースに保存・取得というのを考えました。まずはデータベースを作ってみましょう。

とりあえず作ってみたversion

画 とりあえず作ってみた、動作確認できる初期versionです。今後別のサイトにつけたりする場合、カスタマイズしていく予定です。自動生成したブログのほか、カテゴリー分けしたり、カテゴリに応じてアイコン画像が変わる機能もいれました。

管理人が持っているサイト著作権フリー・無料音楽素材サイト SSF(WordPressで構築)につけていますが、wpテーブルとはほぼ独立させています。

生成した文章保存用のデータベース設計を考える

まずは、データベースに保存したい内容やページの機能を考えます。おおまかにですが、以下のとおりです。

  • WordPressと独立した、シンプルな構造(wp_〇〇じゃない)
  • 生成した日付を表示する
  • カテゴリに応じて、AIへの指示が変わる
  • カテゴリに応じて、アイコン画像が変わる
  • geminiが生成した文章を保存する

これに合わせて考えたデータベースの設定はこんな感じになりました。簡単にですが物理名・論理名・型・デフォルト値なども。ただし、一部設定が適切でないものもあります(ファイル命名規則がほぼきまっているので、ぶっちゃけimgpassで64文字も使わない)。

■テーブルgmn_aiblog_postsのカラム(接頭辞でwpテーブルと区別)
gmn_aiblog_id
(記事のid)
型int(7),NOT NULL,デフォルト値無し,AUTO_INCREMENT
gmn_aiblog_date
(生成した日付)
型datetime,NOT NULL,デフォルト値CURRENT_TIMESTAMP
gmn_aiblog_cat
(カテゴリ名)
型varchar(10),NOT NULL,デフォルト値なし
gmn_aiblog_imgpass
(アイコン画像)
型varchar(64),NOT NULL,デフォルト値v-nav2024-01.jpg
gmn_aiblog_content 型varchar(1024),NOT NULL,デフォルト値なし

phpmyadminで操作orSQL実行で、データベースを設定していく

では、早速AI(gemini)が勝手に投稿するブログ用のデータベースを作っていきましょう。ツールはb>phpmyadminを使います。 テーブルは『データベース=>操作=>テーブルの作成』で作成できるほか、SQL『CREATE TABLE』文を使うことができます。phpmyadminにも直接SQL実行する機能あります。

カラム追加していきます。 テーブルの選択=>構造=>〇個のカラムを追加する』を使うほかに・・・

SQL『ALTER TABLE』文でも可能です。(ローカルテスト時のスクショなので、テーブル名少し違います。ご了承ください。)

とりあえず、最初に想定したテーブル・カラムがこんな感じでできました。

あとは表示確認用の初期ダミーデータ。 先日、laravelシーディングの話をしましたけど、laravel入ってないので、直接SQL『INSERT』文を使ってデータを入れていきました。

あとがき・まとめ

長くなるので今回はデータベース設計だけになってしまいましたが、また別の記事で『プロンプトを変数にして、生成部分に渡す・データベースに保存する』『取得プログラムとWordpress固定ページに組み込み』みたいなのも書いていく予定です。


【カテゴリ】- PHP
【タグ】- ,

関連記事