ご指定のタイトルで、コンテンツの具体的な内容(ゴミ分別など)は伏せつつ、**「地域特化型メディアの構築」**という抽象度で技術的な知見をまとめた記事を作成しました。
そのままWordPressに貼り付けて使える形式です。
記事タイトル
【開発録】Gemini APIの無料枠制限で詰んだので、OpenAIに乗り換えてブログ自動生成システムを構築した話
記事本文
特定の地域情報に特化したWebメディアを立ち上げるため、Pythonと生成AIを活用した「記事執筆完全自動化システム」の開発を行いました。
本日は、開発初日に直面した**「Gemini APIのレート制限(Quota Exceeded)」の壁と、それを突破するために行った「OpenAI (gpt-4o-mini) へのピボット」**、そしてAI特有のハルシネーション(嘘)を防ぐ技術設計について、開発ログとして記録を残します。
1. 開発の背景と当初の技術スタック
開発には、AI搭載コードエディタであるCursor(Agentモード)を使用し、コーディングの大部分をAIに任せるスタイルで進行しました。
- 言語: Python 3.x
- エディタ: Cursor (Composer / Agent)
- 当初のモデル: Gemini API (Flashモデル / Free Tier)
- 目的: CSVリストからキーワードを読み込み、SEO記事を大量生成する
2. 壁:Gemini APIの「見えない上限」
ランニングコストを抑えるため、最初はGoogleのGemini API(無料枠)を採用しました。
しかし、スクリプトのテスト走行を始めると、すぐに 429 Too Many Requests エラーが発生し、開発が強制ストップしました。
当初は「1分間のリクエスト過多(RPM)」を疑い、コード側に待機時間(time.sleep)を設ける実装を行いました。しかし、エラーは解消されず、ダッシュボードを解析した結果、以下の事実が判明しました。
- 原因: 短期間のテスト実行とエラー再試行で、「1日あたりのリクエスト上限(RPD)」を使い切っていた。
- 教訓: 開発フェーズでは試行錯誤を繰り返すため、1日の回数制限が厳しい無料枠はボトルネックになりやすい。「明日まで待たないと開発できない」状況は致命的でした。
3. 解決策:OpenAI API (gpt-4o-mini) への移行
開発スピードを優先し、バックエンドをOpenAI APIへ切り替える決断をしました。
- 採用モデル:
gpt-4o-mini - 選定理由: 圧倒的なコストパフォーマンスと、安定した応答速度
.env ファイルのキーを差し替え、わずかなコード修正を行うだけで移行は完了。結果として、API制限に怯えることなくスムーズな連続生成が可能になりました。
衝撃のコスト試算
実際の生成ログからコストを計算したところ、以下の結果となりました。
- 2記事作成: 約 $0.01(約1.5円)
- 1記事単価: 約 0.75円
単純計算で 1,000記事生成しても約750円($5.00) 程度です。
Geminiの無料枠にこだわって開発時間を浪費するより、安価で安定している gpt-4o-mini を使う方が、精神衛生上もプロジェクト進行上も正解でした。
4. 品質担保:地域情報のハルシネーション対策
今回扱うテーマは「自治体や地域によってルールが異なる情報」です。
一般的なLLM(大規模言語モデル)は、こうしたローカル情報の詳細までは学習していないため、もっともらしい嘘(ハルシネーション)をつくリスクが高い領域です。
これを防ぐため、以下のRAG(検索拡張生成)的な実装を行いました。
- 参照データの注入:CSVリストに「キーワード」だけでなく、**「公式サイトの正解テキスト」**をセットで持たせるカラムを追加。
- プロンプトによる制約:AIに対し、「学習済みの知識」ではなく、「与えられた参照テキストのみ」を事実として扱うよう厳格に指示。
Python
# プロンプトの一部抜粋
f"""
## 参照する公式情報
{reference_text}
※ 上記にない具体的な数値やルールについては、創作せず「公式サイトをご確認ください」と記述すること。
"""
これにより、情報の正確性を担保しつつ、SEOライティングの構成力というAIの強みを活かすシステムが完成しました。
5. まとめと今後の展望
今回の開発での学びは以下の3点です。
- 開発時は「従量課金」が吉: 無料枠の制限による手戻りは、コスト以上の時間を奪う。
gpt-4o-miniの実用性: ブログ記事生成において、速度・質・コストのバランスが非常に優秀。- 参照データの重要性: 地域特化情報は、必ず「正解データ」を渡して書かせる必要がある。
現在はMarkdown形式でのファイル出力まで自動化できています。
次のステップとして、WordPressのREST APIを利用し、**「生成 → 下書き保存」**までの完全無人化フローを構築する予定です。

コメントを残す