Appearance
ADM-028 有料記事AI設定
概要
- 有料記事の AI 考察生成、および日別記事・有料記事の AI 相談で使う 生成用・相談用システムプロンプト、Gemini モデル名 を保存する。LLM は Gemini 固定。
- サイト運営ダッシュボード(ADM-019)配下のサブメニュー。
- API キーは本画面では入力せず、LLM APIキー設定(ADM-032)を参照する。
- 考察生成そのもの(生成サービス / 編集画面ボタン)および AI 相談の送信処理は対象外。
ワイヤーフレーム
未作成。WordPress 標準の Settings API フォーム(form-table)と接続テストボタンで構成する。
画面仕様
ブロック一覧
| ブロックID | ブロック名 | 表示内容 | 初期値 | ユーザー操作 | アクション |
|---|---|---|---|---|---|
B-1 | 保存通知 | Settings API の成功 / エラー通知 | 保存後のみ表示 | - | - |
B-2 | 生成用システムプロンプト | 複数行テキスト。暗号化せず wp_options に保存する。考察一括生成専用。相談用(B-9 / B-10)とは別 option。未設定(空)時は実行時に PaidArticleAiGenerationServiceCopy::DEFAULT_SYSTEM_PROMPT へフォールバック | 保存済み値、未設定は空 | テキスト編集 | - |
B-9 | 日別記事 AI 相談用システムプロンプト | 複数行テキスト。暗号化せず wp_options に保存する。日別記事 AI 相談(EP-027)専用。生成用(B-2)・有料相談用(B-10)とは別 option。未設定(空)時は実行時に DailyArticleAiChatServiceCopy::DEFAULT_SYSTEM_PROMPT へフォールバック | 保存済み値、未設定は空 | テキスト編集 | - |
B-10 | 有料記事 AI 相談用システムプロンプト | 複数行テキスト。暗号化せず wp_options に保存する。有料記事 AI 相談(EP-029)専用。生成用(B-2)・日別相談用(B-9)とは別 option。未設定(空)時は実行時に PaidArticleAiChatServiceCopy::DEFAULT_SYSTEM_PROMPT へフォールバック | 保存済み値、未設定は空 | テキスト編集 | - |
B-5 | Gemini モデル | Gemini モデル ID(推奨 gemini-2.5-flash) | 保存済み値または推奨 | テキスト編集 | - |
B-6 | API キー | Gemini の登録済み / 未設定と ADM-032 へのリンク。キー入力欄は置かない | 復号結果の有無 | リンクで ADM-032 を開く | - |
B-7 | 設定を保存 | [設定を保存] ボタン | 常に表示 | ボタン押下で Settings API 保存 | A-1 |
B-8 | 接続テスト | [API 接続テスト] ボタン。Gemini へ簡易リクエスト。キー未設定時は ADM-032 へのリンク | 常に表示 | ボタン押下で接続確認 | A-2 |
システムプロンプトの保存・解決
| 用途 | option キー | 管理画面未設定時の表示 | 実行時の解決 |
|---|---|---|---|
| 考察一括生成 | mycustom_paid_article_ai_system_prompt | 空 | PaidArticleAiGenerationService が空なら PaidArticleAiGenerationServiceCopy::DEFAULT_SYSTEM_PROMPT |
| 日別記事 AI 相談 | mycustom_daily_article_ai_chat_system_prompt | 空 | DailyArticleAiChatService が空なら DailyArticleAiChatServiceCopy::DEFAULT_SYSTEM_PROMPT |
| 有料記事 AI 相談 | mycustom_paid_article_ai_chat_system_prompt | 空 | PaidArticleAiChatService が空なら PaidArticleAiChatServiceCopy::DEFAULT_SYSTEM_PROMPT |
- 初回訪問時にデフォルト文言を option へ seed しない。未設定は空のまま保存・表示する。
- sanitize は文字列以外を空文字にし、文字列は
trimのみ(改行・XML 風タグは維持。長さ上限なし)。生成用sanitize_system_promptと同じ方針。 - アクセサは
PaidArticleAiOptionsに置く(日別相談も同クラスを注入する)。相談用と生成用の getter を混同しない。
処理連携仕様
アクション一覧
A-1
B-7 押下時に WordPress Settings API(options.php)へ保存する。capability は manage_options。設定グループは mycustom_paid_article_ai_settings。
リクエスト
| requestParam | 本画面の値 |
|---|---|
option_page | mycustom_paid_article_ai_settings |
mycustom_paid_article_ai_system_prompt | B-2 のテキスト |
mycustom_daily_article_ai_chat_system_prompt | B-9 のテキスト |
mycustom_paid_article_ai_chat_system_prompt | B-10 のテキスト |
mycustom_paid_article_ai_gemini_model | B-5 の Gemini モデル ID |
レスポンス
| 項目 | 内容 |
|---|---|
| 成功時 | 本画面へ戻り、B-1 に保存成功を表示する |
| 失敗時 | B-1 にエラーを表示し、入力値を再表示する |
A-2
B-8 押下時に admin-ajax paid_article_ai_test_llm を呼ぶ。Gemini generateContent へツール呼び出しなしの簡易リクエストを送る。
リクエスト
| requestParam | 本画面の値 |
|---|---|
action | paid_article_ai_test_llm |
nonce | paid_article_ai_settings |
レスポンス
| 項目 | 内容 |
|---|---|
成功時 data.message | 接続成功メッセージ |
キー未設定 data.message | ADM-032 を案内する文言 |
キー未設定 data.settings_url | ADM-032 の URL。画面上はリンクとして表示する |
失敗時 data.message | 接続失敗メッセージ |
外部インターフェース
管理画面 URL
| 項目 | 値 |
|---|---|
| URL | /wp-admin/admin.php?page=paid-article-ai-settings |
| メニュー名 | PaidArticleAiSettingsCopy::MENU_TITLE |
| 親メニュー | サイト運営ダッシュボード(site-ops-dashboard / ADM-019) |
| 権限 | manage_options |