Appearance
ADM-032 LLM APIキー設定
概要
- サイト内の AI(有料記事考察生成・日別/有料 AI 相談・画像からイベント・Xツイートまとめ要約など)で使う Gemini API キー と、店舗調査ツール
investigate_hall_with_grokが使う Grok(xAI)API キー を WordPress Settings API で管理する。 - サイト運営ダッシュボード(ADM-019)配下のサブメニュー。
- モデル名・システムプロンプトは ADM-028 で管理する。本画面はキーのみ。Grok のモデルはコード定数で固定する(店舗調査 AI ツール)。
ワイヤーフレーム
未作成。WordPress 標準の Settings API フォーム(form-table)と接続テストボタンで構成する。
画面仕様
ブロック一覧
| ブロックID | ブロック名 | 表示内容 | 初期値 | ユーザー操作 | アクション |
|---|---|---|---|---|---|
B-1 | 保存通知 | Settings API の成功 / エラー通知 | 保存後のみ表示 | - | - |
B-2 | Gemini API Key | パスワード入力。未入力保存で既存維持。削除チェックで消去 | 空(保存済み状態のみ表示) | テキスト編集・削除チェック | - |
B-5 | Grok(xAI)API Key | パスワード入力。未入力保存で既存維持。削除チェックで消去 | 空(保存済み状態のみ表示) | テキスト編集・削除チェック | - |
B-3 | 設定を保存 | [設定を保存] ボタン | 常に表示 | ボタン押下 | A-1 |
B-4 | Gemini 接続テスト | [Gemini API 接続テスト] ボタン | 常に表示 | ボタン押下 | A-2 |
B-6 | Grok 接続テスト | [Grok API 接続テスト] ボタン | 常に表示 | ボタン押下 | A-3 |
処理連携仕様
アクション一覧
A-1
B-3 押下時に WordPress Settings API(options.php)へ保存する。capability は manage_options。設定グループは mycustom_llm_api_key_settings。
リクエスト
| requestParam | 本画面の値 |
|---|---|
option_page | mycustom_llm_api_key_settings |
mycustom_twitter_summary_secret_gemini | 新規キー(空なら既存維持)。削除チェック時は空 |
mycustom_llm_api_secret_gemini_delete | Gemini 削除チェック(1) |
mycustom_llm_api_secret_grok | 新規キー(空なら既存維持)。削除チェック時は空 |
mycustom_llm_api_secret_grok_delete | Grok 削除チェック(1) |
option キー名は旧 ADM-009 時代の Gemini キーと同一(mycustom_twitter_summary_secret_gemini)で、既存キーを再入力なしで継続する。キーは TwitterSummaryOptionSecretCodec で暗号化して保存し、autoload しない。
A-2
B-4 押下時に admin-ajax llm_api_key_test_gemini を呼ぶ。保存済みキーと ADM-028 の Gemini モデルで簡易 generateContent を送る。
リクエスト
| requestParam | 本画面の値 |
|---|---|
action | llm_api_key_test_gemini |
nonce | llm_api_key_settings |
A-3
B-6 押下時に admin-ajax llm_api_key_test_grok を呼ぶ。保存済みキーで GET https://api.x.ai/v1/models/{GrokApiConstants::MODEL} を送り、HTTP 200 なら成功とする(キーと店舗調査 Tool が使うモデルの両方を確認。トークン課金なし)。
リクエスト
| requestParam | 本画面の値 |
|---|---|
action | llm_api_key_test_grok |
nonce | llm_api_key_settings |
レスポンス
| 条件 | success | data.message |
|---|---|---|
| 成功 | true | LlmApiKeySettingsCopy::TEST_SUCCESS_GROK |
| キー未設定 | false | LlmApiKeySettingsCopy::KEY_MISSING_GROK |
| 接続失敗 | false | LlmApiKeySettingsCopy::TEST_FAILED_GROK(WP_DEBUG 時のみ debug_message) |
外部インターフェース
| 項目 | 値 |
|---|---|
| URL | /wp-admin/admin.php?page=llm-api-key-settings |
| メニュー名 | LLM APIキー設定(親: サイト運営ダッシュボード) |
| 権限 | manage_options |