Python × Gemini API
WordPress完全自動投稿システム
開発期間
2026年1月〜2026年8月
担当範囲
要件定義、システム設計、Python開発、VPS構築、cron設計
利用ツール・API
Ubuntu VPS, google-genai, requests, crontab, Dropbox
プロジェクト概要
Ubuntu VPS環境上でPythonスクリプトとGemini APIを連携させ、WordPressブログへの高品質な記事生成から自動下書き・投稿までを完全無人化(cron定期実行)するストック型コンテンツ自動生成システムです。
単なる自動投稿にとどまらず、検索意図(SEO)に合わせた「トラブル解決テーマ」の構造化JSON管理、APIエラー(503/UNAVAILABLE)やJSONパースエラーに対する堅牢な自動リトライ機構、Dropboxログ同期時のパーミッション管理まで考慮した実用的なバックエンドシステムとして構築しました。
主な機能・特徴
-
Gemini API(google-genai)による構造化記事生成
プロンプトエンジニアリングにより、指定されたテーマから「見出し(H2/H3)、HTML本文、アイキャッチ用キーワード、メタディスクリプション」を厳格なJSONフォーマットで抽出し自動生成。
-
大規模テーマデータ(1,800件超)の事前バリデーション管理
3,000件以上の記事テーマを
topics.jsonで統一管理。自作のJSON構文・必須キーバリデータにより、事前にデータ構造を検証して実行時エラーを徹底防止。 -
API障害・JSON破損に対する自律リトライ・クレンジング処理
APIの混雑エラー(503)や一時的なレスポンス途切れ(JSONパース失敗)を検知し、エスケープ不能文字の自動クレンジングや指数バックオフによる自動再試行(リトライ)を実装。
-
cronによる定時実行とファイル所有権の最適化
一般ユーザー権限での
crontab運用により、出力ログ(cron.log)のパーミッションエラーを防ぎ、Dropbox等の外部ストレージ同期との競合・ロックを回避。 -
WordPress REST API による自動投稿
生成したアイキャッチ画像(メディアライブラリ登録)と本文テキストをREST API経由で安全に投稿。カテゴリ割り当てや下書き/公開状態の制御にも対応。
システム構成図 / 処理フロー
技術的なこだわり・工夫した点
1. トラブル解決型コンテンツへの戦略的シフトとプロンプト設計
検索流入(SEO)を最大化するため、「便利技」から「具体的エラー・トラブル解決」へと軸足をシフト。APIから返答される長文HTMLが途中で途切れないよう、出力トークン数(max_output_tokens=8192)と文字数目安(3,000文字前後)を緻密に調整しました。
2. 厳格なエラーハンドリングと安定稼働設計
AI生成テキスト特有の「エスケープされていない引用符」や「制御文字混入」に対し、正規表現による事前クレンジングとネストされた try-except ブロックによる段階的リカバリーを構築。夜間自動実行時にも落とさないタフなシステムに仕上げました。
開発環境・使用言語
| 区分 | 技術・環境 |
|---|---|
| OS / サーバー | Linux (Ubuntu VPS) |
| 言語 / ランタイム | Python 3.10+ (Anaconda3) |
| AI / 外部API | Google Gemini API (google-genai), WordPress REST API |
| スケジューラ / 管理 | cron, systemd, Dropbox Linux CLI |