PubPla AI ヘルプセンター

説明

このプラグインは新しいカスタム投稿タイプ「よくある質問」を追加します。いくつかの機能を使ってユーザーのためのヘルプページを作ることができます。ヘルプセンターとはなんでしょうか ? いくつかの例を GitHub Wiki に挙げていますので、ご覧ください。

ライブデモ: https://demo.kunoichiwp.com/pubplafaq/ — トップページで AI オーバービューをお試しください。でもは日本語ですが、架空のアンチエイジングサブスクリプション「ジョヴィアン」のデモで、FAQコンテンツに書いてある内容から AI がどのような答えを返すか(または書いていないことがどう処理されるか)を試すことができます。

ポータルを作成する

このプラグインが提供する機能は……

  • シングルページとアーカイブページを持つカスタムタクソノミー。
  • カスタム投稿タイプに紐づくカスタムタクソノミー。
  • インクリメンタル検索ボックス。
  • AI オーバービュー (2.0.0から)

AI オーバービュー

AI オーバービューは、大規模言語モデルを使って FAQ コンテンツに基づいてユーザーの質問に回答します。
WordPress 7.0からコアに同梱されている wp-ai-client を使用しており、WordPress で AI サービスが設定されている必要があります。

要件: AI オーバービューには WordPress 7.0以降が必要です。古い WordPress バージョンでは、AI オーバービューブロックとテンプレート関数はエディターとフロントエンドに表示されますが、検索フォームは機能しません (動作に必要な REST エンドポイントが無効になっています)。このプラグインの他の機能 (FAQ カスタム投稿タイプ、インクリメンタル検索、ショートコード) は WordPress 6.6以上で引き続き動作します。AI オーバービューを有効化するには WordPress を7.0にアップグレードしてください。

管理パネルの「設定 > ヘルプセンター」から AI の動作とレート制限を設定できます。設定ページには、LLM コンテキストとして使用される FAQ カタログを手動で更新するための「今すぐカタログを再構築」ボタンも含まれています。

カタログ

カタログとは、コンテキストとして LLM に渡される投稿の集合です。複数のクエリの結果を統合し、投稿 ID で重複を除いたものです。

  1. 対応する投稿タイプの、すべての公開済み投稿。これらは引用可能なため、回答のソース欄に表示されます。
  2. AI カタログタクソノミーのデフォルトタームが設定された、すべての非公開投稿。これらは背景資料として扱われます。本文はすべての訪問者への回答に使用されますが、引用されることもリンクされることもありません。単独の公開ページにはしたくない社内向けの知識に利用してください。

独自のソース (他の投稿タイプ、タクソノミーによる絞り込み、メタ条件など) を追加するには hamelp_catalog_sources フィルターを使用してください。各ソースは get_posts() の引数配列と citable フラグで構成され、重複した場合は先に登録されたソースが優先されます。

add_filter( 'hamelp_catalog_sources', function ( $sources ) {
    $sources['pages'] = [
        'args'    => [
            'post_type'   => [ 'page' ],
            'post_status' => [ 'publish' ],
        ],
        'citable' => true,
    ];
    return $sources;
} );

ブロックを使う

AI FAQ オーバービュー ブロックをエディターに追加してください。ブロックには次のオプションがあります。

  • プレースホルダー — 入力欄のプレースホルダー。
  • ボタンテキスト — 送信ボタンのラベル
  • 引用元を表示 — 回答の下に関連する FAQ のリンクを表示します。

    テンプレート関数を使う

テーマテンプレートで hamelp_render_ai_overview() 関数を使うこともできます。

<?php echo hamelp_render_ai_overview(); ?>

関数はオプションの引数を配列で受け取ります。

<php
echo hamelp_render_ai_overview( [
    'placeholder'  => 'Ask a question...',
    'button_text'  => 'Ask AI',
    'show_sources' => true,
] );
?>

この関数は必要な JavaScript と CSS アセットを自動で読み込みます。

検索ボックス

インクリメンタル FAQ 検索ボックスは3つの形式で利用できます。

ブロックを使う

ブロックエディターに FAQ 検索ボックスブロックを追加してください。ブロックには次のオプションがあります。

  • ラベル — 入力欄のプレースホルダーテキスト。
  • ボタンテキスト — 送信ボタンのラベル

    ショートコードを使う

ページ本文で hamelp-search ショートコードを利用することができます。

[hamelp-search label='Enter your question here.'][/hamelp-search]

テンプレート関数を使う

テーマテンプレートから hamelp_render_search_box() を直接呼び出すこともできます。

<?php echo hamelp_render_search_box( [
    'label' => 'Enter your question here.',
    'btn'   => 'Search',
] ); ?>

ブロック

このプラグインは2個のブロックを提供します。

  • FAQ Search Box Incremental search box for FAQ posts.
  • AI FAQ Overview AI-powered FAQ search that answers user questions based on FAQ content.

インストール

インストールは簡単です。管理画面からの自動インストールをおすすめします。hamelp で検索してください。

  1. プラグインファイルをダウンロードしてから解答し、hamelp フォルダーを /wp-content/plugins ディレクトリにアップロードしてください。
  2. 管理画面から有効化してください。

FAQ

どのように貢献できますか ?

Github リポジトリでコントリビュートを行うことができます。どんなイシューでもプルリクエストでも大歓迎です。

評価

このプラグインにはレビューがありません。

貢献者と開発者

PubPla AI ヘルプセンター はオープンソースソフトウェアです。以下の人々がこのプラグインに貢献しています。

貢献者

“PubPla AI ヘルプセンター” は1ロケールに翻訳されています。 翻訳者のみなさん、翻訳へのご協力ありがとうございます。

“PubPla AI ヘルプセンター” をあなたの言語に翻訳しましょう。

開発に興味がありますか ?

コードを閲覧するか、SVN リポジトリをチェックするか、開発ログRSS で購読してみてください。

変更履歴

各バージョンの完全はリリースノートは GitHub Releases をご覧ください。

2.6.0

  • AI オーバービューの回答の下に回答をコピーボタンを追加しました。引用ラベルやソース一覧も含め、表示されているとおりに回答をコピーするため、チケットやレビューシートに整形し直すことなく貼り付けられます。ブラウザーがクリップボード API を提供しない http のサイトでは、何も起こらずに失敗するのではなく、従来のコピー方式にフォールバックします。
  • ブロックのテキストのデフォルト値 (質問欄のプレースホルダー、送信ボタンのラベル、入力欄の下の説明文) が翻訳可能になりました。block.json の属性のデフォルト値は WordPress では翻訳されず (コアのブロック i18n スキーマに列挙されたキーのみが翻訳対象です)、どのロケールでもそのまま出力されていました。その結果、日本語サイトでは英語の Enter your question... が表示され、英語サイトでは日本語の説明文が表示されていました。これらのデフォルト値は、ブロックのレンダリング時に翻訳ファイルを通して解決されるようになりました。
  • 注意: 入力欄の下の説明文は、このリリースで新しい英語の原文文字列になりました。そのため translate.wordpress.org に翻訳が反映されるまでは英語のまま表示されます。すぐに自分の言語で表示したい場合は、ブロック側でテキストを直接入力してください。
  • 注意: 以前のデフォルト値とまったく同じ文字列を意図的に入力していた場合、WordPress はその値を保存していないため、その項目には翻訳後のデフォルト値が表示されるようになります。以前のデフォルト値と異なるテキストはそのまま維持されます。

2.5.0

  • AI オーバービューのカタログを、単一のクエリではなく複数のクエリから構築し、投稿 ID で統合・重複排除するようにしました。post_status はタクソノミーやメタの条件と常に AND で結合されるため、単一のクエリでは「公開済み OR (非公開 かつ 参加を選択)」を表現できませんでした。
  • AI カタログタクソノミーを追加しました。デフォルトタームを設定した非公開投稿は背景資料としてカタログに加わります。本文はすべての訪問者への回答に使用されますが、引用されることもリンクされることもありません。単独のページとして公開したくない社内向けの知識に利用してください。公開済みの投稿は従来どおり自動的にカタログに含まれ、影響を受けません。
  • テーマやプラグインが独自のカタログソース (他の投稿タイプ、タクソノミーによる絞り込み、メタ条件など) を citable フラグ付きで追加できるよう、hamelp_catalog_sources フィルターを追加しました。
  • 引用が誤ったページを指す問題を修正しました。リンクできない資料をもとに回答した場合、モデルは実際には回答を含まない、話題の近い公開済み FAQ を引用することがありました。回答が参照できるのは実際に表示されるソースのみとなり、それ以外の参照は回答テキストから削除されます (モデルが時折生成していた [ID:123] という生のマーカーも削除されます)。
  • LLM コンテキスト内で、未公開投稿のタイトルの先頭に Private: が付いてしまう問題を修正しました。
  • 投稿のステータスが変更されたとき、および AI カタログのタームが変更されたときにカタログを再構築するようにしました。

2.4.3

  • ボタンに min-width を設定しているテーマで、AI オーバービューの送信ボタンが横長の楕円になる問題を修正しました。(2.4.2 の高さの修正に加えて) ボタンの幅も制限し、テーマのスタイルにかかわらず円形を保つようにしました。

2.4.2

  • テーマのボタンスタイルがプラグインの CSS を上書きするサイトで、AI オーバービューの送信ボタンが巨大な長方形として表示される (矢印が隠れることもある) 問題を修正しました。ボタンの構造に関わるスタイルをスコープ化し、テーマのスタイルがサイズや形状を上書きできないようにしました。

2.4.1

  • AI オーバービューの質問ボックスを、ChatGPT 風に自動で高さが伸びる textarea として再設計し、右下に円形の送信ボタンを配置しました。Enter で送信でき (Shift+Enter で改行)、IME の変換中も適切に処理します。アクセシブルなラベルとフォーカス処理、補助的な説明文、全幅のレスポンシブレイアウトも追加しました。

2.4.0

  • AI モデル 設定でプロバイダー・モデルを指定できるように。設定が完了したコネクター(WordPress 7.0 設定 コネクタ)だけが表示されます。選択したモデルがのちに利用不可能になった場合、自動選択にフォールバックされます。
  • デフォルトで temperature を無視するように。いくつかのモデル(例・Claude Opus/Sonnet)は温度を受け付けず、400エラーを返します。自動選択を含め、温度を無視するのがどのモデルでも安全です。どうしても必要な時だけ値を設定してください。
  • hamelp_ai_modelhamelp_ai_temperature フィルターでモデルとサンプリング温度を上書きできるように。
  • 引用元を改善:「関連するFAQ」をリネームし、 引用元 に見出しを変更。リストは順序付きリストにし、回答に含まれる参照符の (Ref. N) と番号が揃うように。

2.3.1

  • 参照元のプレフィックス (Ref. 1) を変更できるように。

2.3.0

  • 運営を Tarosky へ移管しました。
  • プラグイン名をPubPla AI Help Centerに変更しました。プラグインスラッグ、テキストドメイン、REST ルート、PHP API は後方互換のため hamelp のままです。そのため設定やコードの変更は不要です。
  • AI 要約がマルチターン会話に対応しました。フォローアップの質問は前回までのやり取りを文脈として保持し、回答は Q&A スレッドとして積み重なります。会話履歴はブラウザー側で保持され、リクエストごとに送信されるため、サーバーには何も保存されません。
  • LLM に送信する過去のメッセージ数を制限する hamelp_history_window フィルターを追加しました (デフォルト 10)。
  • 質問マイニングのために会話を保存できるようになりました (デフォルトはオフ)。設定画面で有効にすると、会話は管理画面で閲覧できる非公開の投稿タイプとして保存され、訪問者が実際に何を質問しているかを確認できます。会話を保存設定または hamelp_save_conversations フィルターで切り替えます。
  • 自動削除までの日数の保持設定を追加しました。毎日実行される cron が、設定した日数より古い匿名の会話を削除します (0 = 削除しない)。ログイン済みユーザーの会話は自動削除されません。
  • AI 要約のモード設定を追加: 会話 (マルチターン、デフォルト)、単発回答 (フォローアップなし、低コスト)、無効。コストを抑えたい場合やリクエスト殺到時に機能を止めたい場合は単発回答/無効を使用します。hamelp_ai_overview_mode フィルターでも利用できます。
  • フロントエンドがモードを反映するようになりました。単発回答では質問ごとに前の回答を置き換え、会話では「この会話を続ける」トグルが表示され、訪問者はフォローアップを続けるか、新しい会話を始める (スレッドをクリアする) かを選べます。

2.2.3

  • *--wp--preset--color--* を使用してテーマのデザインに合わせる CSS 構造の変更。bissy さんプルリクエストありがとうございます。

2.2.2

  • FAQ 検索ボックスブロック (hamelp/search-box) を追加。既存の [hamelp-search] ショートコードは引き続き機能し、同じレンダリングロジックを共有するようにしました。
  • hamelp_render_search_box() をパブリックなテンプレート関数として公開し、テーマがショートコードパーサーを通さずに検索ボックスをレンダリングできるようにしました。

2.2.0

  • 同梱の wp-ai-client Composer 依存関係を削除。AI オーバービューは WordPress コアに同梱されている wp-ai-client を使用するようにしました。WordPress 7.0以降が必要です。
  • WordPress 7.0 より古いバージョンでは、AI オーバービューブロックと検索フォームはレンダリングされますが、送信が失敗します (REST ルートなし)。FAQ カスタム投稿タイプ、インクリメンタル検索、その他の機能は引き続き正常に動作します。
  • プラグイン有効化時に FAQ カタログを自動再構築するようにしました。これにより、手動で wp hamelp rebuild を実行しなくても AI オーバービューがすぐに使えます。
  • 設定ページに手動でカタログを更新するための「今すぐカタログを再構築」ボタンを追加。

2.1.0

  • 返答をパーソナライズするために AI オーバービューにユーザーコンテキストを追加。
  • セキュリティのため、ホワイトリスト方式のユーザー役割フィルター (hamelp_allowed_user_roles filter) を追加。
  • カスタマイズ用に hamelp_user_contexthamelp_display_user_roles フィルターを追加。
  • ローカル環境でのテストのために開発用フックのサポートを追加。
  • GlotPress (WordPress.org) を優先するため、同梱の言語ファイルを削除。

2.0.0

  • AI オーバービュー機能を追加
  • 最小要件を引き上げ: PHP >=7.4, WordPress >= 6.6

1.0.4

1.0.3

  • バグフィックスとグローバル関数の変更。

1.0.2

  • Gutenberg でタクソノミーが表示されるように。

1.0.1

  • vendor ディレクトリが含まれないバグを修正。

1.0.0

  • 最初のリリース。