【AI(gemini)が勝手に投稿するブログ開発シリーズ】生成した投稿を保存するデータベースを作ってみる
| 更新: 2024/09/18 | 1846文字
今回は、最近管理人が作っていた『AI(gemini)が勝手に投稿するブログ』について、行った内容を紹介します(長いので何回かにわけます)。『ブログみたいにできないかな』ということで、生成された文章をデータベースに保存・取得というのを考えました。まずはデータベースを作ってみましょう。
とりあえず作ってみたversion
画 とりあえず作ってみた、動作確認できる初期versionです。今後別のサイトにつけたりする場合、カスタマイズしていく予定です。自動生成したブログのほか、カテゴリー分けしたり、カテゴリに応じてアイコン画像が変わる機能もいれました。
管理人が持っているサイト著作権フリー・無料音楽素材サイト SSF(WordPressで構築)につけていますが、wpテーブルとはほぼ独立させています。
ナビゲーターブログ|著作権フリー・無料音楽素材サイト SSF
https://ssf.atelier-ss-agency.com/nav-autoblog/
生成した文章保存用のデータベース設計を考える
まずは、データベースに保存したい内容やページの機能を考えます。おおまかにですが、以下のとおりです。
- 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
【タグ】- AIが勝手に投稿するブログ開発シリーズ, データベース