# WordPressプラグイン開発の教科書 4 — AIへの依頼文（付録B）
（ ）の部分を書き換えて使ってください。書かせたあとは、付録Aの確認表で確かめてください。


## コアのAIクライアントで機能を作らせる

WordPress 7.0以降のプラグインに、次の機能を足すコードを書いてください。
- 機能: （一文で）
- AIの呼び出しは wp_ai_client_prompt() を使い、提供元のAPIを直接呼ばない
- 最初に function_exists('wp_supports_ai') と wp_supports_ai() を確かめる
- 呼ぶ前に is_supported_for_text_generation() を確かめる
- 返事は as_json_response() でJSONの形を決め、受け取ったあとに項目・型・長さを確かめる
- 失敗は WP_Error で受け、利用者向けの日本語の文に直す
- APIキーを扱うコードは書かない

## AIを組み込んだプラグインを点検させる

次のWordPressプラグインは、AIの提供元のAPIを呼んでいます。
次の観点で問題を探し、該当する行と、直し方を示してください。
- APIキー: 画面への表示、URLへの付与、JavaScriptへの受け渡し、ログへの記録
- 受け口: Nonce、権限、ログインしていない人への公開
- 上限: 入力の長さ、回数、月の上限。IPの読み方
- 出力: 返事の形と長さの確認、サニタイズ、エスケープ
- 記録: 利用者の入力の保存、期限、知らせ
問題が無い観点は「問題なし」と書いてください。推測で問題を作らないでください。

## 回数と費用の上限を足させる

次の受け口に、AIを呼ぶ前の確かめを足してください。
- 入力は（2000）文字まで
- 同じ利用者は、1分に（10）回、1日に（100）回まで。時刻で区切ったキーでトランジェントに数える
- サイト全体で、1か月に（5000）回まで。月ごとのオプションに数える
- 利用者は REMOTE_ADDR で見分ける。ヘッダーのIPは、信頼する中継を指定したときだけ読む
- 確かめは1つの関数にまとめ、上限に達したら WP_Error を返す

## 自作プラグインをコアの仕組みへ移させる

次のプラグインは、AIの提供元のAPIを直接呼び、APIキーを自分の設定に保存しています。
WordPress 7.0のAIクライアントとコネクタを使う形に移してください。
- 変えるのは、AIを呼ぶ部分と設定画面だけ。画面の流れと、JavaScriptが受け取る形は変えない
- APIキー・提供元・モデルの設定は使わない。古い値を消すボタンを、権限とNonce付きで置く
- 返事の形は、プロンプトの文ではなくJSONスキーマで決める
- 保存済みの設定が、新しい作りとぶつからないかを確かめ、ぶつかるなら扱いを書く
- 変えた点を、ファイルごとに箇条書きで説明する

## 答えられないときの扱いを作らせる

サイトの資料をもとに答えるチャットの、AIへの指示と、返事の扱いを書いてください。
- 指示では、参考情報に書かれていることだけを根拠にさせる
- 根拠にした資料の番号を、決まった印で付けさせる
- 答えられないときは、決まった一文で答えさせる
- プラグインの側で、その一文かどうかを判定し、担当者への案内を出す
- ふつうの否定の答え（「駐車場はありません」など）を、答えられなかったと判定しない
