- PLUGIN : Rapls AI Chatbot
- DEMO : チャットボットの動作
- INSTALLATION : 設置方法
- FEATURES : 機能一覧
- SETTINGS : プラグイン設定画面
- TEMPLATE : テンプレートでの呼び出し
- FAQ : よくある質問
- どのプロバイダーを選べばよいですか
- API コストの目安は
- 複数プロバイダーは同時に使えますか
- サイト学習はどのように動作しますか
- Web 検索はどのように動作しますか
- 外国人訪問者にも対応できますか
- 商品名やブランド名が変な訳になってしまうのですが
- プリセット質問ボタンは何に使えますか
- プリセットの「固定回答」と通常の AI 応答の違いは
- 階層型プリセットは Free でも使えますか
- MCP Server は何に使えますか
- 外部サイトに埋め込めますか
- Gutenberg ブロックは使えますか
- カスタマイズできる項目は
- 会話履歴は保存されますか
- ページビルダーで動きますか
- カスタムシステムプロンプトは設定できますか
- API クォータを超えた場合は
- Pro 版との違いは
- アンインストール時のデータは
- マルチサイトのアンインストールパフォーマンス調整は
- ADVANCED FILTERS : フィルターフック
- ACTION HOOKS : アクションフック
- CHANGE LOG : バージョン履歴
- RELATED PAGES : 関連ページ
PLUGIN : Rapls AI Chatbot
Rapls AI Chatbot wordpress.org から最新版をダウンロード
サイト内のコンテンツ (投稿・固定ページ・ナレッジベース) を参照して、訪問者の質問に訪問者の言葉で答える WordPress 用 AI チャットボットです。一般的な Web の回答ではなく「あなたのサイトの答え」を返すので、サポート・購入前相談・FAQ 対応を 24 時間まかせられます。
クレジットカード不要、インストールから約 5 分で無料スタートできます。API キーや AI の知識は要りません。初回設定の「まず無料で動かす」パネルが、OpenRouter または Google Gemini の無料キー取得 → 接続テスト → 無料モデルの自動選択 → チャットボット起動まで一気にガイドします。月額の SaaS 料金や 1 メッセージごとの上乗せ課金は無く、自分の API キーで動き、会話データは自分のサーバーに残ります。
OpenAI、Anthropic Claude、Google Gemini、OpenRouter (100+ モデル) の主要 4 プロバイダーに対応し、いつでも切り替えられます。サイト学習、ナレッジベース、Web 検索、MCP Server、Gutenberg ブロックを備え、13 言語の自動応答と用語集 (固有名詞の翻訳保護) にも対応します。
観光地の宿、商店街の小売店、自治体の問い合わせ窓口など、多言語スタッフを揃えるのが難しい現場でも、訪問者の母語で一次対応ができます。プリセット質問ボタン (タップで定型質問を送信できる仕組み。固定回答にも対応) で、会話の入り口や成果への導線も作れます。
ソースコード:GitHub – rapls/rapls-ai-chatbot
開発の経緯や実装の詳細は、開発者ガイドにまとめています。
DEMO : チャットボットの動作

サイトの右下にチャット起動ボタンが出ます。クリックすると AI との対話が始まり、サイト内のページから関連情報を引いて回答してくれます。


INSTALLATION : 設置方法
動作要件
- WordPress 6.3 以上
- PHP 7.4 以上
- 各 AI プロバイダーの API キー (OpenAI / Claude / Gemini / OpenRouter のいずれか1つ以上)
API キーの取得先
- OpenAI : platform.openai.com
- Anthropic Claude : console.anthropic.com
- Google Gemini : aistudio.google.com
- OpenRouter : openrouter.ai
API キーは暗号化して wp_options テーブルに保存します。
セットアップ手順 (最短・無料コース)
API キーを持っていなくても、約 5 分で動かせます。
- プラグインをインストール・有効化
- 「AI Chatbot > 設定」を開く
- 最上段の「まず無料で動かす」パネルで OpenRouter か Google Gemini を選び、無料キー (カード不要) を貼り付けて 接続テスト を押す
(自分の OpenAI / Claude / Gemini キーを使う場合は、AI 設定タブで直接入力) - 接続成功の案内に従ってページを再読み込み (保存した設定が反映されます)
- 自動的にサイト右下にチャットボタンが表示される (Gutenberg ブロックやショートコードでの設置も可能)
無料枠にはデータの取り扱いとレート上限のトレードオフがあり、パネル上で選ぶ前に明示しています。Gemini の無料枠は送信内容が Google のモデル改善に使われる場合があり、避けたいときは有料枠か別プロバイダーを選べます。
詳しい設定手順・運用ガイドは Free 版マニュアルにまとめています。
FEATURES : 機能一覧
1. 複数の AI プロバイダーで動かせる
OpenAI、Anthropic Claude、Google Gemini、OpenRouter の 4 プロバイダーで動きます。
対応モデル:
- OpenAI:GPT-5.2 / GPT-5.1 / GPT-5、GPT-4.1 (1M トークンの長文対応)、GPT-4o / GPT-4o-mini、o1 / o3 / o4-mini (推論モデル)
- Claude:Opus 4.6、Sonnet 4.5、Haiku 4.5、Opus 4.5、Sonnet 4、3.7 Sonnet
- Gemini:Gemini 3 Pro / Flash (プレビュー)、2.5 Pro / Flash、2.0 Flash、1.5 Pro / Flash
- OpenRouter:100+ のモデルへ単一 API キーでアクセス
プロバイダーの切り替えは管理画面のラジオボタンで行います。
2. Web 検索機能
ナレッジベースに十分な情報がないとき、AI が自動で Web 検索を行います。各プロバイダーの built-in 機能を使っています。
- OpenAI:
web_search_previewツール - Claude:
web_searchツール - Gemini:
google_searchツール
外部検索 API の契約は要りません。
3. サイト学習 (クローラー機能)
サイト内のコンテンツ (投稿、固定ページ、カスタム投稿タイプ、WooCommerce 商品など) をクロールして、ベクトル化したインデックスを作ります。
クロール対象の投稿タイプは管理画面で選べます。タグやカテゴリで除外もできます。

4. ハイブリッド RAG
サイト学習で取り込んだコンテンツを、ハイブリッド検索で引きます。
- キーワードマッチング (40%)
- ベクトル類似度 (60%)
5. カスタムナレッジベース
サイトクロールでは拾えない情報を、別に登録できます。
- テキスト直接入力 (タイトル、本文、カテゴリ、優先度)
- ファイルインポート:.txt, .csv, .md, .pdf, .docx
- 優先度の設定 (高優先度の情報を上位に出す)
- 下書き / 公開のワークフロー
- 件数制限なし

6. MCP Server (JSON-RPC 2.0)
7 つの built-in ツールを MCP Server として提供します。
get_site_info– サイト基本情報search_content– サイトコンテンツ検索get_knowledge– ナレッジベース取得manage_knowledge– ナレッジベース管理get_conversations– 会話履歴取得get_settings– 設定取得search_products– 商品検索 (Pro 版)
WordPress 7.0 で導入される Abilities API にも対応しています。MCP Adapter 等から自動でツールが発見・呼び出しできます。
7. Gutenberg ブロック対応
ブロックエディタで「AI Chatbot」を検索すると、チャットボットブロックを挿入できます。高さ・テーマ・bot-id を設定可能で、サーバーサイドレンダリング (SSR) に対応しています。

8. クロスサイト埋め込み
外部サイトにチャットボットを埋め込めます。
- iframe 方式 (
?raplsaich_embed=1エンドポイント) - script loader 方式 (
assets/js/embed-loader.js)
9. 13 言語の自動応答
ブラウザ言語を自動で読み取り、訪問者の母語で回答します。
対応言語は、英語、日本語、中国語、韓国語、スペイン語、フランス語、ドイツ語、ポルトガル語、イタリア語、ロシア語、アラビア語、タイ語、ベトナム語の 13 言語。ウェルカムメッセージも言語ごとに別々に書けます。応答言語の挙動は「自動検出 / サイト言語に従う / 13 言語のいずれかに固定」から選べます。
効きそうなシーン
- 観光・宿泊業 — 多言語スタッフを揃えられない宿が、英語・中国語・韓国語・スペイン語の問い合わせを AI で受ける
- 小売・EC — 商品ページに来た外国人訪問者が、母語で在庫、配送、サイズなどを聞ける
- 教育・自治体 — 公式サイトで多言語問い合わせ窓口を組む代わりに、AI が一次受けする
- イベント・ツアー — 当日参加者の「次の集合は」「どこ」といった質問に各国語で返す
翻訳プラグインや多言語サイトの仕組みは、別に用意しなくて済みます。サイトのコンテンツ (学習データ) が日本語だけでも、AI が翻訳して応答します。
10. プリセット質問ボタン
ウェルカムメッセージの直下に、ワンタップで送信できる質問ボタンを最大 10 個まで置けます。タイピングせずに会話が始められるので、「料金プラン」「営業時間」「スタッフ特典」など、よくある質問への導入や、戦略的な成果 (応募・購入導線) への入り口として使えます。
- ボタンのラベル (最大 40 文字) と送信される質問文 (最大 200 文字) をそれぞれ設定
- 固定回答 (NEW):ボタンごとに固定回答を設定すると、AI を呼ばずに決まったテキストをすぐ表示します。トークン消費ゼロ、応答も一瞬。よくある質問は固定回答、踏み込んだ質問は AI、と行ごとに使い分けられます
- ボタンをタップすると質問文が自動で送られます
- 初回送信後はボタンが消える挙動 (既定)
- 「全ての回答の下にも表示する」オプションを ON にすると、AI 応答のたびにボタンが再表示され、ナビゲーション型の運用もできます
- 機能自体は ON / OFF で切り替えられます
- Pro 版では階層型ボタンに対応。グループ最大 8 × 子ボタン最大 8 の二階層構成で、「料金 ▸ 個人プラン」のような絞り込み導線が作れます。「← 戻る」ナビゲーションも自動で付きます
- Pro 版ではボット別にプリセット内容を上書きできます。Analytics でクリック数と会話継続率も計測できます
11. 用語集 (固有名詞の翻訳保護) NEW
商品名、サービス名、ブランド名、翻訳すると意味が変わってしまう語など、AI に勝手な翻訳や改変をさせたくない用語を、最大 50 件まで登録できます。多言語応答時に「Rapls Works」が「ラプル工房」と訳される、といった事故を防げます。
- 用語ごとに ON / OFF (用語集機能全体としても切替可能)
- 備考欄が空欄なら、どの言語でもそのまま保持されます
- 備考欄に「英語では Staff Perks、中国語では 员工福利」のように書けば、言語別の指定訳を AI に強制できます
- 登録した用語はシステムプロンプトに「保護用語リスト」として注入され、Web チャット、Pro 版の LINE 連携、MCP ツールなど全エンドポイントで一貫して適用されます
12. 6 個の組込テーマ
Default、Simple、Classic、Light、Minimal、Flat の 6 種類。プライマリ / セカンダリカラーや配置位置 (4 つの角) もカスタマイズできます。
13. 会話履歴・使用統計・コスト追跡
- 会話履歴:すべての会話を保存・閲覧、保持期間も設定可能
- 使用統計:トークン使用量、推定 API コスト、グラフ表示、プロバイダー別内訳
- ダッシュボード:30 日間の日次使用量グラフ

14. フィードバック・再生成
ユーザーが回答を👍 / 👎で評価できます。再生成リクエストも受け付けます。
15. セキュリティ機能
- reCAPTCHA v3 (スコア閾値を設定可能)
- レート制限
- 同意モード (厳格モードあり)
- Cloudflare 統合
- リバースプロキシ信頼設定
- セキュリティ診断 (読み取り専用)

16. 設定のインポート / エクスポート
すべての設定を JSON 形式でバックアップ / リストアできます。ナレッジベースを含めるかどうかも選べます。
17. Free vs Pro
- Free : 全 AI 機能、無制限、ナレッジベース無制限、6 テーマ、MCP、Gutenberg ブロック、13 言語自動応答、プリセット質問ボタン (固定回答対応)、用語集 (固有名詞保護)
- Pro : 分析、リードキャプチャ、シナリオ、オペレーターモード、WooCommerce、LINE、10 追加テーマ、ダークモード、音声入力 / TTS、マルチモーダル、応答キャッシュ、暗号化、監査ログ、ボット別プリセット、プリセットクリック解析、階層型プリセット質問ボタン
Free 版
Pro 版
SETTINGS : プラグイン設定画面
WordPress の管理画面「AI Chatbot > 設定」から設定します。設定は 5 つのタブに分けてあります。

AI 設定タブ
- AI プロバイダー選択
- モデル選択
- API キー入力
- ベクトル検索 (RAG) の有効化
- 埋め込みプロバイダー選択
- MCP Server 設定 (API キー生成、Claude Desktop 設定例の表示)
チャット設定タブ

- ボット名・アバター (絵文字または画像)
- ウェルカムメッセージ (13 言語)
- システムプロンプト
- 応答言語
- メッセージ履歴件数
- フィードバックボタン
- プリセット質問ボタン (固定回答対応)
- 用語集 (固有名詞の翻訳保護) NEW
- API クォータエラーメッセージ
- 高度な設定:コンテキストプロンプト、機能プロンプト
表示設定タブ

- 6 つのテーマから選択
- バッジ位置 (4 つの角)
- マージン
- プライマリ / セカンダリカラー
- モバイル表示
- Markdown レンダリング
- タイピングインジケーター
- 最大入力長
- ページ除外
- フッターテキスト
- クロスサイト埋め込みオプション
セキュリティ設定タブ
- reCAPTCHA v3 (site key、secret key、スコア閾値)
- アクセス制御:同意モード厳格設定、レート制限、Cloudflare 統合、リバースプロキシ信頼、reCAPTCHA 失敗モード
- セキュリティ診断 (読み取り専用)
データ管理タブ
- 会話履歴の有効 / 無効、保持期間
- 設定のインポート / エクスポート
- すべての設定をデフォルトにリセット
TEMPLATE : テンプレートでの呼び出し
Gutenberg ブロックを使う
ブロックエディタで「AI Chatbot」を検索して挿入します。
ショートコード
|
1 |
[rapls_ai_chatbot] |
PHP テンプレートで直接埋め込み
|
1 2 3 4 5 6 7 8 |
<?php if ( function_exists( 'raplsaich_render' ) ) { raplsaich_render( array( 'theme' => 'minimal', 'height' => 600, ) ); } ?> |
特定の投稿タイプでのみ自動表示
|
1 2 3 4 5 6 |
add_filter( 'raplsaich_should_display', function( $should_display ) { if ( is_singular( 'product' ) ) { return true; } return $should_display; } ); |
FAQ : よくある質問
どのプロバイダーを選べばよいですか
プロバイダーごとの特徴です。
- OpenAI GPT-4o-mini – コストと速度のバランスが取れる
- Claude Sonnet 4.5 – 文章生成系に強い
- Gemini 2.5 Flash – 高頻度サイトに向く
- OpenRouter – 100+ モデルへ単一 API キーでアクセス
API コストの目安は
- GPT-4o-mini : 入力 $0.15 / 1M トークン、出力 $0.60 / 1M トークン
- Claude Haiku 4.5 : 入力 $0.80 / 1M トークン、出力 $4.00 / 1M トークン
- Gemini 2.5 Flash : 入力 $0.15 / 1M トークン、出力 $0.60 / 1M トークン
プリセット質問ボタンの「固定回答」を使うと、よくある質問は AI を呼ばずに返せるので、トークン消費を大きく抑えられます。
複数プロバイダーは同時に使えますか
複数の API キーを設定できますが、アクティブにできるのは 1 プロバイダーのみです。設定画面で切り替えます。
サイト学習はどのように動作しますか
公開コンテンツをクロールして検索可能なインデックスを作ります。ユーザーが質問すると関連コンテンツが AI に渡され、サイト固有の回答が生成されます。ベクトル埋め込みを有効にすると、ハイブリッド検索 (キーワード 40% + ベクトル 60%) が使えます。
Web 検索はどのように動作しますか
ナレッジベースとサイトコンテンツに十分な情報がないとき、AI が自動で Web 検索します。各プロバイダーの built-in 機能を使います。Web 情報を含む回答には地球アイコンが表示されます。
外国人訪問者にも対応できますか
13 言語の自動応答に対応しています。ブラウザ言語を自動検出して、英語、中国語、韓国語、スペイン語、フランス語など、訪問者の母語で回答します。サイトのコンテンツが日本語だけでも、AI が翻訳して応答するため、翻訳プラグインや多言語サイトの仕組みは要りません。観光、宿泊、小売など多言語スタッフを揃えられない現場で特に動きます。
商品名やブランド名が変な訳になってしまうのですが
用語集機能で対策できます。設定 → チャット設定 → 用語集 (固有名詞) で、保護したい単語を最大 50 件まで登録すると、その用語は AI が翻訳・改変できなくなります。「Rapls Works」「気分は上々」のような固有名詞が、英語応答時に「ラプル工房」「Mood Up」のように勝手に訳されてしまうのを防げます。備考欄に「英語では Staff Perks、中国語では 员工福利」のように書けば、言語別の指定訳を AI に強制することもできます。
プリセット質問ボタンは何に使えますか
ウェルカムメッセージの下に最大 10 個までボタンを配置でき、タップで定型の質問が送られます。「タイピングが面倒」というハードルを下げて会話率を上げる目的のほか、戦略的に「スタッフ特典とは」「料金プラン」など成果につながる質問へ誘導する目的にも使えます。設定 → チャット設定でラベルと質問文を入力するだけで使えます。「全ての回答の下にも表示する」オプションを使えば、ナビゲーション型のボットも作れます。
プリセットの「固定回答」と通常の AI 応答の違いは
通常のプリセットボタンは、タップすると登録した質問文が AI に送られ、AI が回答を生成します (トークン消費あり)。固定回答を設定すると、AI を呼ばずに登録した固定テキストがそのままボット応答として表示されます (トークン消費ゼロ、応答も一瞬、回答内容を完全コントロール)。よくある質問は固定回答、踏み込んだ質問は AI、というように行ごとに使い分けられます。会話履歴と Pro 版 Analytics には通常通り記録されます。
階層型プリセットは Free でも使えますか
階層型 (グループ → 子ボタン) の設定 UI は Pro 版限定です。Free 版でも JSON でデータを直接渡せばフロントは描画できますが、設定画面はありません。Free 版ではフラットな最大 10 件のプリセットボタンが使えます。
MCP Server は何に使えますか
MCP (Model Context Protocol) 対応の AI エージェント (Claude Desktop、Cursor、VS Code 等) から、サイトのデータと連携できます。
外部サイトに埋め込めますか
クロスサイト埋め込みエンドポイント (?raplsaich_embed=1) または loader スクリプトで iframe または script として組み込めます。
Gutenberg ブロックは使えますか
ブロックエディタで「AI Chatbot」を検索して挿入できます。高さ・テーマ・bot-id 設定可能。SSR にも対応します。
カスタマイズできる項目は
- ボット名・アバター
- プライマリ / セカンダリカラー
- 6 テーマ
- ウェルカムメッセージ (13 言語)
- プリセット質問ボタン (固定回答対応)
- 用語集 (固有名詞の翻訳保護)
- バッジ位置・マージン・アイコン
- モバイル表示制御
- 除外ページ
- タイピングインジケーター
- Markdown レンダリング
会話履歴は保存されますか
デフォルトでは保存されます (90 日間)。「設定 > データ管理」で無効化できます。保持期間も変えられます。
ページビルダーで動きますか
動きます。Elementor、Divi、Beaver Builder、Gutenberg など、任意のテーマ・ページビルダーで使えます。
カスタムシステムプロンプトは設定できますか
設定できます。AI の人格・振る舞い・回答スタイルを定義できます。raplsaich_system_prompt フィルターでプログラム的にも書き換えられます。
API クォータを超えた場合は
自分で文言を変えられるエラーメッセージが表示されます。プラグイン側で応答数を制限することはありません。
Pro 版との違いは
Pro 版は別プラグインで、ビジネス向け機能を追加します。分析ダッシュボード、リードキャプチャ、シナリオ、オペレーターモード、WooCommerce、LINE、ボット別プリセット、プリセットクリック解析、階層型プリセットボタン等。Free 版だけでも完全に機能します。
アンインストール時のデータは
デフォルトでは設定と会話データを保持します (再インストールで復元できます)。「データ管理 > アンインストール時に削除」で消去設定もできます。マルチサイトは各サイトごとに設定します。
マルチサイトのアンインストールパフォーマンス調整は
|
1 2 |
add_filter( 'raplsaich_uninstall_batch_size', function() { return 50; } ); add_filter( 'raplsaich_uninstall_snapshot_threshold', function() { return 1000; } ); |
低メモリ / 低速 DB → 20-50、標準 → 100、高速 / 大規模 → 200-500。
ADVANCED FILTERS : フィルターフック
functions.php にフィルターを書いて挙動を変えられます。
システムプロンプトをカスタマイズ
|
1 2 3 4 |
add_filter( 'raplsaich_system_prompt', function( $prompt, $context ) { $prompt .= "\n\nあなたは丁寧な日本語で回答してください。"; return $prompt; }, 10, 2 ); |
サイトクロール対象を制限
|
1 2 3 |
add_filter( 'raplsaich_crawl_post_types', function( $post_types ) { return array( 'post', 'page' ); } ); |
検索結果の重み付けを変更
|
1 2 3 4 5 6 |
add_filter( 'raplsaich_search_weights', function( $weights ) { return array( 'keyword' => 0.3, 'vector' => 0.7, ); } ); |
表示前に応答を加工
|
1 2 3 4 |
add_filter( 'raplsaich_response_text', function( $response, $query ) { $response .= "\n\n (この AI は参考情報です) "; return $response; }, 10, 2 ); |
Web 検索のオン / オフ条件
|
1 2 3 4 5 6 |
add_filter( 'raplsaich_enable_web_search', function( $enabled, $query ) { if ( strpos( $query, '価格' ) !== false ) { return false; } return $enabled; }, 10, 2 ); |
ACTION HOOKS : アクションフック
チャット送信時のロギング
|
1 2 3 |
add_action( 'raplsaich_after_chat', function( $query, $response, $session_id ) { error_log( "[Chatbot] {$session_id}: {$query} -> {$response}" ); }, 10, 3 ); |
サイト学習完了時の通知
|
1 2 3 4 5 6 7 |
add_action( 'raplsaich_crawl_complete', function( $stats ) { wp_mail( get_option( 'admin_email' ), 'サイト学習が完了しました', sprintf( '%d ページのクロールが完了しました。', $stats['total_pages'] ) ); } ); |
MCP Server リクエスト時の認証強化
|
1 2 3 4 5 6 |
add_action( 'raplsaich_mcp_request', function( $request, $tool_name ) { $allowed_ips = array( '192.168.1.1', '10.0.0.1' ); if ( ! in_array( $_SERVER['REMOTE_ADDR'], $allowed_ips, true ) ) { wp_die( 'Forbidden', 403 ); } }, 10, 2 ); |
フィードバック時の処理
|
1 2 3 4 5 |
add_action( 'raplsaich_feedback_received', function( $message_id, $rating, $session_id ) { if ( $rating === 'bad' ) { error_log( "[Chatbot] Bad feedback: {$message_id}" ); } }, 10, 3 ); |
CHANGE LOG : バージョン履歴
- 1.9.42026/06/22ボットメッセージのフィードバックボタン(👍👎)を、新規インストールでは既定オフに変更。これまでは既定オンだったが、不要な現場も多いため初期状態を控えめにした。設定 → チャット設定 →「フィードバックボタンを表示」でいつでも有効化できる。既存サイトの保存済み設定はそのまま維持される(オンにしていたサイトはオンのまま)。
- 1.9.32026/06/19Google の新しい「AQ.」形式の Gemini API キーに対応。Google AI Studio は従来の「AIza」標準キーから新しい認証キー形式(
AQ.Ab…)へ移行中で、標準キーは段階的に廃止される(制限なしの標準キーは 2026/6/19 以降、すべての標準キーは 2026/9 に拒否)。オンボーディングのキー検証・キー形式チェック・すべての Gemini API 呼び出し(チャット・モデル一覧・サイト学習の埋め込み生成)が新旧どちらの形式でも動作するよう修正。あわせて Gemini へのリクエストを?key=クエリ文字列からx-goog-api-keyヘッダー方式に変更(Google 推奨の方法で、AQ. キーに必須。キーがサーバー / プロキシ / CDN のログに残らない利点もある)。さらに、保存中の Gemini キーが旧「AIza」標準キーの場合は、廃止期限と「AQ.」キーへの移行手順(または既存キーへの制限付与)を案内する管理画面通知を表示するようにした。通知は「AQ.」キーを保存すると自動的に消える。 - 1.9.22026/06/16「まず無料で動かす」オンボーディングを OpenRouter 一本から OpenRouter / Google Gemini の二択に拡張。設定画面上部のパネル冒頭で、どちらの無料プロバイダーで始めるかをラジオカードで選ばせ、選択に応じてキー発行先リンク・入力欄プレースホルダー・接続テスト・無料モデル自動選択を切り替える。Gemini を選んだ場合はフロント側で
AIzaプレフィックスを検証後、サーバー側でgenerativelanguage.googleapis.com/v1beta/modelsを叩いてキーの実在性を確認し、成功時はキーを AES-256-GCM で暗号化保存、AI プロバイダーを Gemini に切り替え、無料枠で使えるgemini-2.5-flash(取得できなければgemini-2.5-flash-liteなどへフォールバック)をアクティブモデルとして保存する。Gemini には OpenRouter のような:freeサフィックスの概念が無く、無料かどうかはモデル ID ではなく利用枠(tier)で決まるため、OpenRouter の:freeカタログ選定ロジックは流用せず、無料枠の既定モデルを直接設定する方式とした(優先順はraplsaich_gemini_free_preferredフィルターで変更可)。データ利用のトレードオフを選択の直前・同一画面に明示:Gemini 無料枠は送信内容が Google のモデル改善に使われる場合がある旨と、避けたい場合は有料枠か別プロバイダーを選ぶ案内を表示し、公平性のため OpenRouter 側にも「無料モデルは提供元ごとにデータの取り扱いが異なる」旨の注記を併記。何も考えず進めて気づかぬうちに学習対象の無料枠に同意してしまう事故を避けるため、両者を能動的に選ばせる UI とした。オンボーディングのキー入力欄は設定フォームの外にあるため、1.9.1 で修正した WordPress 7.0 Connectors との hidden field 二重定義問題は再発しない。あわせて readme の説明文・Getting Started・FAQ を二択前提に書き換え、「無料オプションでデータはプライベートか?」という FAQ 項目を追加。 - 1.9.12026/06/12AI の回答に Markdown の表が含まれるとチャット画面がフリーズし、返信が表示されない不具合を修正。表の区切り行を判定する正規表現が GFM 標準の末尾パイプ付き形式(
|---|---|)を認識できず、表ヘッダー行が段落処理に落ちた末に未消費の行で描画ループが無限に回り、ブラウザのメモリを使い果たしていた。区切り行の判定を修正したうえで、どんな入力でもレンダラーが必ず前進するガードを追加。あわせて、AI が表のセル内に出力する<br>タグを生テキストではなく実際の改行として描画するように改善。WordPress 7.0 環境で OpenAI / Gemini の API キーを「削除」して保存しても消えない不具合を修正(WordPress AI Client 用 RAG セクションが同名の hidden フィールドを DOM の後方に重複描画しており、削除フラグの1が後勝ちの0に上書きされていた。非表示プロバイダーセクションの API キー欄を送信対象から除外)。同じ原因で新しいキーの入力が無視されるケースも解消。無料オンボーディングでは接続テスト成功後に「今すぐページを再読み込み」ボタンを大きく表示し、自動スクロールとフォーカスで誘導するように改善(保存した設定をフォーム編集前に確実に反映させるため)。 - 1.9.02026/06/07初回設定の体験を大きく改善。API キー未設定時に設定画面の上部に「まず無料で動かす」オンボーディングパネルを表示し、OpenRouter で取得した無料 API キー(クレジットカード不要、
sk-or-プレフィックス必須)を貼って接続テストを押すと、約 1 分でチャットボットが動き始める。接続テストはフロント側でsk-or-形式チェックののち、サーバー側で OpenRouter/v1/auth/key(実認証チェック・不正キーで 401)を叩いて検証する(当初は/v1/modelsを使っていたが、公開カタログを返すため任意の文字列で 200 が返ってしまうことが判明し、認証必須エンドポイントへ切替)。成功時はキーを AES-256-GCM で暗号化保存し、AI プロバイダを OpenRouter に切り替え、ライブの/v1/modelsから実在する:freeモデル(openai/gpt-oss-120b:freeなど、現行カタログから選定した優先候補リストから動的選択)を保存する。チャット時にその:freeモデルが上流プロバイダ(Venice / NVIDIA など)の throttle に当たって 429 を返した場合、当該モデルを 10 分間 transient で「throttled」マークし、別の:freeモデルへ自動切替+保存して同一リクエストを 1 回だけリトライする自動フォールバックを実装(無料モデルは上流側の throttle が頻発するため)。設定画面の OpenRouter 既存 Test Connection ボタンも同じく/v1/auth/keyベースに統一。レート制限カウントダウン表示の不具合 2 件も修正:(a) 残秒数をtextContentで書き込むことで送信ボタン内の SVG アイコン(紙飛行機)が永久に失われていたバグをinnerHTML保存方式で修正、(b) カウントダウンの数字がボタン disabled 時の灰色背景に同化して見えなかった問題を、カウントダウン中だけプライマリ色背景を保ったまま白字太字(tabular-nums)で表示するよう CSS 改修。プラグインの位置づけを「Claude ネイティブ RAG」から「セルフホスト型 / BYOK(自前 API キー)/ マルチプロバイダ(OpenAI・Claude・Gemini・OpenRouter)」に刷新(説明文・タグ・FAQ)。WordPress.org の検索タグを「ai chatbot, openrouter, claude, rag, mcp」に再構成。Free 版マニュアル(日本語・英語)にクイックスタート章を追加。 - 1.8.22026/05/29プラグインの説明文・機能一覧・FAQ・検索タグを刷新し、Claude ネイティブな RAG チャットボット / WordPress 7.0 Connectors API 対応という位置づけを明確化。あわせて WordPress.org 配布要件に合わせて外部サービス開示セクションを整備、短い説明文を 150 文字以内に調整、1.8.0 / 1.8.1 の変更履歴の記述を実際の内容に修正。ドキュメントのみの更新で、機能面の変更はありません。
- 1.8.12026/05/25チャットウィジェットで PHP 警告「Undefined array key "link_target"」が表示される不具合を修正。「リンクの開き方」(
link_target)設定を一度も保存していないサイト(新規インストール、または当該設定が存在しなかった頃のバージョンからの更新直後)で発生していた。フロントエンド設定の組み立てでin_array()判定側は?? '_blank'でガードしていたが、一致時に値を返す分岐が$settings['link_target']を直接参照していたため未定義キー警告が出ていた。両経路とも_blankにフォールバックするよう修正。 - 1.8.02026/05/18WordPress 7.0 の AI Client / Connectors に対応。新規 AI プロバイダ「WordPress AI Client (Connectors)」を追加し、有効化すると Settings → Connectors で設定したプロバイダ(OpenAI / Anthropic / Google)経由でチャットが動作する。AI Provider ドロップダウンには WP 7.0+ 環境(
function_exists('wp_ai_client_prompt'))でのみ表示。マルチターン会話履歴はWordPress\AiClient\Messages\DTO\UserMessage/ModelMessageに変換してwith_history(Message ...$messages)の可変長引数に渡す。Connectors が裏で routing するモデルがtemperatureを受け付けない場合(GPT-5 / o 系)、temperature を外して自動リトライ。RAG 用に OpenAI / Gemini の埋め込みキーを wpai セクション内でも入力可能。モデル候補のクロスプロバイダドロップダウン(GPT-5 / 5-mini / 4.1 / 4o / 4o-mini、Claude Opus 4.7 / Sonnet 4.6 / Haiku 4.5、Gemini 2.5 Pro / 2.5 Flash / 2.0 Flash)。temperature > 1.0時は赤字の警告ラベルを設定画面にリアルタイム表示(既定上限 2.0 は維持)。モデル一覧についての汎用注意書きを AI Provider 直下に折りたたみ表示(<details>)。会話一覧の「開始ページ」列を「URL」ボタンに置き換え(クリックで新規タブ)、リード列を 200px → 140px に縮小。セキュリティ通知の「設定に移動」リンクがセキュリティタブにフォーカスするよう#tab-securityフラグメント +hashchangeハンドラ対応。WP 7.0 RC4 で崩れた button 内 dashicons の中央寄せを inline-flex で再構築。API キー復号失敗通知は active provider のキーが実際に壊れている場合のみ発火するよう厳密化、maybe_migrate_legacy_keys()の best-effort 移行は通知を立てない経路に変更。チャット REST の API キー事前チェックはwpai時にスキップ。o4-mini のラベルを「Latest reasoning, fast」→「Compact reasoning, fast」に修正(誤記)。Tested up to: WordPress 7.0。 - 1.7.72026/05/17WordPress 6.7+ で「Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the rapls-ai-chatbot domain was triggered too early.」の通知が出ていた不具合を修正。
cron_schedulesフィルターのコールバックがdisplay文字列を__()で組み立てていたため、Pro 側の更新チェック / レポートスケジューラがplugins_loaded(init より前) でwp_schedule_event()を発火するたびに翻訳ドメインが just-in-time 読み込みされていた。コールバックをdid_action('init')までは英語リテラルにフォールバックする形に変更 (display 文字列は Tools → Cron Events など技術 UI のみで表示されるため許容)。 - 1.7.62026/05/06AES-256-GCM 暗号化 ON 時に「会話一覧のメッセージ検索」がヒットしない不具合を修正。検索は
messages.contentに対して SQLLIKEを実行していたが、暗号化時のカラム値はencg:...の暗号文で平文キーワードに永遠に一致しない。一覧側で直近 N 件 (既定 2000、raplsaich_search_decrypt_limitフィルターで変更可) の暗号文を PHP 側で復号してから照合する経路を追加。平文サイトは従来の安価な SQL 経路のまま。Pro Analytics の「会話を見る」ボタン用に?conversation_id=N直接フィルターを追加 (暗号化状態に関わらず必ず目的の行に着地)。一覧上部に対象会話 ID と「すべて表示」リンクを表示するインフォ通知も追加。1.6.6 で追加した階層型プリセットのグループチップを子チップと同じニュートラルグレー配色に統一 (ユーザーメッセージのプライマリ色との混同を回避、「▸」マーカーは「タップで展開」のシグナルとして維持)。 - 1.7.52026/05/03セキュリティ:チャットウィジェットのセッショントークンに有効期限と失効チャネルを追加。旧来は
HMAC(session_id, salt)の決定論的署名のみで、漏洩時はサーバ側で会話行を消すまで永続的に有効だった。新フォーマットはversion.iat.exp.hmac(既定 TTL 7 日、raplsaich_session_token_ttlフィルターで上書き可、最大 30 日) 。「全ユーザーセッションをリセット」ボタンがraplsaich_session_versionを bump することで発行済み全トークンを一括失効可能に。旧 v1 トークンは検証で拒否されるが、クライアントは次回の/session呼び出しで透過的に v2 に移行。セキュリティ:オフラインメッセージ送信エンドポイントの権限コールバックが Origin / Referer ヘッダーの「存在」だけでなく許可されたサイトホストとの「一致」も検証するように。スプーフィングされた非ブラウザクライアントはコールバックに到達しない。 - 1.7.42026/05/031.7.3 で追加した「新しい会話を始める」ヘッダーボタンが Simple / Light テーマで白文字白背景になり見えなかった不具合を修正。各テーマの
.chatbot-closeカラー上書きを.chatbot-new-conversationにも拡張。 - 1.7.32026/05/03表示設定タブに「リンクの開き方」を追加。チャット応答内のリンク (ナレッジ参照元、Web 参照元、コンテンツカード、アクションボタン、商品カード、Markdown リンク、URL 自動リンク) を新しいタブ/同じウィンドウのいずれで開くかを選択可能。チャットヘッダーに「新しい会話を始める」ボタン (円形矢印アイコン) を追加。タップで確認後、ローカルセッションを破棄してウェルカムメッセージを再描画 (サーバ側履歴は保持) 。プリセット質問ボタン表のドラッグ&ドロップ並び替えに対応 (グリップハンドル ⋮⋮) 。
- 1.7.22026/05/03matsuura さんフィードバック対応。階層型プリセットで子 1 つのみのグループは最初からフラットチップとして表示 (無駄な 2 タップを削減) 。プリセット質問ボタンの色をユーザーメッセージと区別するためニュートラルグレーに変更。ウェルカム直下のプリセットチップはタップ後も削除されず半透明化 (複数質問への移行をスムーズに) 。
- 1.7.12026/05/01chatbot.js が階層型プリセット (Pro 1.6.0+ で設定) の描画に対応。グループチップに「▸」、子に「← グループ名」戻るチップを自動付与。
/preset-cannedエンドポイントの検証も階層型クリックを許容するように拡張。 - 1.7.02026/05/01用語集 (固有名詞保護) 機能を追加。商品名、サービス名、ブランド名など最大 50 件を登録すると、AI が 13 言語応答時にそれらを翻訳・改変しない。備考欄で言語別の指定訳も可能。
raplsaich_inject_glossaryフィルターでシステムプロンプトに自動注入され、Web チャット、LINE、MCP など全エンドポイントで一貫適用。 - 1.6.62026/04/30プリセット質問ボタンに「固定回答」フィールドを追加。設定すると AI を呼ばずに決まったテキストをすぐ表示 (トークン消費ゼロ) 。新しい
POST /preset-cannedエンドポイントで会話履歴と Pro Analytics への記録は維持。 - 1.6.52026/04/30WordPress.org Plugin Check の「Description: 150 文字制限」エラーに対応するため、readme の短い説明文を 152→130 文字に短縮。
- 1.6.42026/04/30チャット設定に「全ての回答の下にも質問ボタンを表示する」トグルを追加。ON で AI 応答ごとにプリセット質問ボタンが再表示されるナビゲーション型に。送信時に古いボタンを掃除する処理も追加。
- 1.6.32026/04/30プリセット質問の「Bot に送信される質問文」入力欄を 1 行 input から 2 行のリサイズ可能な textarea に変更。長い日本語の質問が編集中にあふれない。
- 1.6.22026/04/30プリセット質問ボタンを追加。ウェルカムメッセージ下にチップ表示、最大 10 件、タップで定型質問を送信。Pro 解析用に preset_index をリクエスト/メタデータに格納。サニタイザーをパブリック化。
- 1.6.12026/04/30readme と LP の説明・機能コピーを「13 言語自動応答」のユースケース優先 (観光、宿泊、小売など多言語スタッフがいない現場での問い合わせ対応) に書き直し。機能自体は既存のまま。
- 1.6.02026/04/30マイルストーン:1.5.15〜1.5.22 の 8 パッチを統合 (現在日付注入、弱モデル耐性、channel カラム追加、会話管理画面の整理、最大コンテキスト文字数のヘルパー化、URL 構造移行) 。
- 1.5.222026/04/30プラグインホームと Pro アップグレードリンクを raplsworks.com の
/plugins/...構造に更新 (旧ページが移転したため) 。プラグインヘッダー URI、ダッシュボードのアップセル、設定バナー、readme に影響。 - 1.5.212026/04/29「最大 RAG コンテキスト文字数」の計算をパブリックヘルパー
raplsaich_get_max_context_chars()として公開。Pro の LINE チャネル等が Web と同量のナレッジをモデルに渡せるように。 - 1.5.202026/04/29会話管理画面で Msgs 列と Lead 列が狭い画面で重なる問題を修正 (Lead に 200px 幅、Msgs を 70px に拡張、cell に overflow / word-break) 。Channel バッジに専用スタイル追加。「会話履歴」を「会話」に簡略化。
- 1.5.192026/04/29会話管理画面のカラム数を 12 列から 8 列に削減。ID 列を削除、Channel を Session に統合、Handoff を Status のサブバッジ化、Started を Last Active にマージ。
- 1.5.182026/04/29会話テーブルに
channelカラムを新設 (web / line など) 。マルチチャネル運用で会話の発生プラットフォームを一目で識別可能。プラグイン更新時に自動マイグレーション。 - 1.5.172026/04/291.5.16 の日付注入が小型 AI モデル (Gemini 2.5 Flash Lite 等) で「日付の捏造」と誤解釈される問題を修正。「OVERRIDE — TAKES ABSOLUTE PRECEDENCE」マーカーと日英 Few-shot 例を追加。
- 1.5.162026/04/291.5.15 の日付注入が weaker な AI モデルで無視される問題を修正。
raplsaich_system_promptフィルター priority 99 経由で全エンドポイント (regenerate、suggestions、MCP tool 等) に適用。 - 1.5.152026/04/29システムプロンプトに現在日付 (サイトの WordPress タイムゾーン) を注入し、AI が「今日」「昨日」「今週」などの相対時間参照を正しく解決可能に。
- 1.5.142026/04/21iPhone Safari の「閉じるボタンが画面外に出る」問題のルート原因 (textarea font-size による自動ズーム) を修正。参照リンクカードのページリロード後保持、HTML エンティティ表示、Markdown 残留、モバイルオーバーフローの修正。
- 1.5.132026/04/21オプトイン式の iOS Safari キーボード修正 (VisualViewport API 使用) 。オンスクリーンキーボード表示時にチャットボットヘッダーを画面内維持。デフォルトはオフ。
- 1.5.122026/04/20ベクトル埋め込み検索 OFF が反映されない、モバイルバッジマージン未適用、各テーマでバッジアイコンの色未適用、iPhone Safari の閉じるボタン押し出しを修正。デスクトップ/モバイル別マージン・バッジサイズ設定を追加。
- 1.5.112026/04/191.5.10 で発生した設定画面の致命的エラー (テンプレートインクルードでローカル変数スコープが破壊される問題) を修正。
file_exists()ガード付きインライン読み込みに変更。 - 1.5.102026/04/191.5.9 で SVN アップロード問題により欠落していたテンプレートファイル (
templates/admin/*.php) を再デプロイ。テンプレート不在時のエラー通知を追加。 - 1.5.92026/04/19廃止された OpenAI モデル (
gpt-4、gpt-4-turbo、gpt-3.5-turbo、o1、o1-pro) と Claude モデル (claude-3-7-sonnet-20250219) をモデルドロップダウンから除外。 - 1.5.82026/04/19Gemini API キー検証を
models listエンドポイントに変更 (誤判定解消) 。接続テスト成功時の自動保存。Gemini 埋め込みモデルをgemini-embedding-001に更新。gemini-2.0-flash-liteをドロップダウンに追加。 - 1.5.72026/04/04日本語翻訳を WordPress Style Guide に従い修正 (全角括弧を半角に置換) 。ダッシュボードの Docs リンクとレビュー依頼バナーを更新。
- 1.5.62026/03/28応答言語が「サイト言語」のとき動作しない問題、RAG コンテキストが異言語のとき AI 応答が誤った言語になる問題 (三重強制対応) 、応答キャッシュに言語を含めない問題を修正。
- 1.5.52026/03/28Free / Pro コードを完全分離 (Pro UI を別プラグインに移動) 。chatbot.js を 50% 削減 (4,300→2,175 行) 。フックベース拡張アーキテクチャ。設定キーを
pro_features→extensionsにリネーム (自動マイグレーション付き) 。CSS 変数エスケープ等のセキュリティ強化。 - 1.5.22026/03/25WordPress Plugin Check 準拠 (WP_Filesystem / prepared SQL アノテーション) 。人為的なフリーティア制限を撤廃し全コア機能を完全提供。デフォルトの「Powered by」フッターを除去。
- 1.5.02026/02/28Gutenberg ブロック対応 (高さ、テーマ、bot-id 設定可能、SSR 対応、JA / EN i18n) 。WordPress Abilities API Bridge で MCP ツールを自動発見可能に。応答言語の自動検出。OpenRouter プロバイダー追加 (100+ モデル) 。
- 1.4.02026/02/27Web 検索統合 (OpenAI
web_search_preview、Claudeweb_search、Geminigoogle_searchgrounding) 。クロスサイト埋め込み (?raplsaich_embed=1) 。PDF、DOCX アップロード。ハイブリッド RAG (キーワード 40% + ベクトル 60%) 。AI モデルリスト更新。 - 1.3.22026/02/26Session ID をクエリ文字列から
X-RAPLSAICH-Sessionヘッダーに変更 (アクセスログ漏洩防止) 。コンテキストキー導出を簡略化。レート制限付きエラーロギングと標準化された REST エラーレスポンスを追加。 - 1.3.12026/02/22拡張レート制限と PDF エクスポートの Pro add-on 互換性。レート制限エラーメッセージの書き換え可能化。診断オプションを
raplsaich_diag_*名前空間にリネーム。 - 1.3.02026/02/20応答キャッシュ、監査ログ、コンバージョン追跡、オフラインメッセージ、回答テンプレートの Pro add-on 互換性。ナレッジベースの
qa/templateエントリタイプ対応。 - 1.2.232026/02/18管理テーブルにソート可能な列ヘッダーを追加 (クリックソート、昇順/降順切替) 。ナレッジベースのドラフト状態 (公開/下書き) 。セッションリセット機能。セッションクッキーを httpOnly + SameSite=Lax 化。
- 1.2.222026/02/15デフォルトシステムプロンプトに正確性、誠実性、捏造禁止ルールを追加。
raplsaich_system_promptフィルターを公開。再生成指示、フィードバック学習ヘッダー、要約プロンプトを書き換え可能化。 - 1.2.212026/02/12ナレッジベースのエクスポート対応 (CSV / JSON、Pro 連携) 。REST API における予算上限チェック統合と AI 応答後の予算アラートフック。詳細なデバッグガイドを追加。
- 1.2.202026/02/10ナレッジページのプレフィル対応 (
prefill_questionパラメータ、Analytics からの素早い FAQ 追加用) 。 - 1.2.192026/02/05API キー暗号化が Google Gemini キー (AIza…) にも対応。OpenSSL 利用可能チェックと graceful fallback。会話履歴エンドポイントのクッキー+IP セッション所有権検証。Chart.js をローカル同梱 (WordPress.org 準拠) 。
- 1.2.182026/01/28API エラーメッセージのサニタイゼーション。プロキシ対応のクライアント IP 検出 (Cloudflare、X-Forwarded-For) 。AI コンテキスト内のユーザーメッセージ重複を修正 (応答精度向上) 。
- 1.2.52026/01/15セキュリティ改善とコード品質向上。WordPress Plugin Check 準拠アップデート。AI モデル料金情報の更新。
- 1.0.02025/12/01初回リリース。複数 AI プロバイダー対応 (OpenAI、Claude、Gemini) 。自動コンテンツクロールによるサイト学習、Q&A 形式のカスタムナレッジベース、会話履歴の検索、コスト見積もり付き使用統計、日次トークン使用量グラフ、設定インポート / エクスポート / リセット、日本語翻訳付属、モバイル対応ウィジェット。
RELATED PAGES : 関連ページ
Free 版
Pro 版
その他
- プラグイン一覧
- Rapls AI Chatbot 開発者ガイド – 開発の経緯、実装の試行錯誤、トラブルシューティング
