このガイドでは、Discourse AI プラグインの一部である AI 検索機能を有効化し、設定する方法について説明します。
必要なユーザーレベル: 管理者
Related topicsと似ていますが、AI 検索は、従来の検索が使用する厳密なキーワード一致を超える、セマンティックなテキスト類似性を使用して最も関連性の高いトピックを見つけるのに役立ちます。これにより、厳密には一致しないものの、最初の検索に対して依然として関連性のあるトピックが発見されます。探しているものが見つからない場合は、AI 検索がお役に立ちます!
機能
- セマンティックテキスト類似性: 単なるキーワード一致を超えて、セマンティック分析を使用してテキストの類似性を探します
- AI クイック検索: 通常の結果がほとんど見つからない場合に、検索メニューのポップアップに AI 結果を自動的に追加します(
ai_embeddings_semantic_quick_search_enabledで有効化) - フルページ検索での AI 検索のオン/オフ切り替え
- オプションの HyDE (Hypothetical Document Embeddings): LLM を使用してクエリを拡張し、結果を改善します
アイコンで示される結果- 匿名ユーザーとログインユーザーの両方に適用可能
AI 検索の有効化
前提条件
AI 検索を使用するには、Embeddings が設定されている必要があります。HyDE (Hypothetical Document Embeddings) を有効にして検索品質を向上させる場合は、大規模言語モデル (LLM) がオプションで必要になります。
Embeddings
ホスティングをご利用の場合は、デフォルトのオプションを提供します。セルフホストの場合は、Discourse AI - Embeddings のガイドに従ってください。
大規模言語モデル (LLM) (オプション — HyDE用)
LLM が必要なのは、ai_embeddings_semantic_search_use_hyde 設定を有効にした場合のみです。これは、LLM を使用して検索クエリから仮のドキュメントを作成してから埋め込みを行うものです。これにより結果の品質が向上する可能性がありますが、遅延とコストが増加します。
開始するには、Discourse AI - Large Language Model (LLM) settings page から設定できます。
- OpenAI
- Anthropic
- Azure OpenAI
- AWS Bedrock (Anthropic アクセス付き)
- Self-Hosting an OpenSource LLM for DiscourseAI
- Google Gemini
設定
管理者→プラグイン→Discourse AI→機能→Embeddingsに移動して、すべての AI 検索設定を見つけます- Embeddings のために
ai_embeddings_enabledを有効にします - フルページ検索で AI 検索をアクティブ化するために
ai_embeddings_semantic_search_enabledを有効にします - 検索メニューのポップアップに AI 結果を追加するために、オプションで
ai_embeddings_semantic_quick_search_enabledを有効にします - 結果を改善するために HyDE を使用するには、オプションで
ai_embeddings_semantic_search_use_hydeを有効にします (LLM が必要)
技術的な FAQ
AI 検索ロジックの概要 (HyDE 有効時) を展開
mermaid height=255,auto
sequenceDiagram
User->>+Discourse: "gamification"で検索
Discourse->>+LLM: "Discourse、オープンソースのインターネットフォーラムシステム"に関する"gamification"の記事を作成<br> "Discourse、オープンソースのインターネットフォーラムシステム。"について
LLM->>+Discourse: Gamificationには、ポイント、バッジ、レベル、リーダーボードなどのゲームデザイン要素を非ゲームコンテキストに適用することが含まれます...
Discourse->>+EmbeddingsAPI: "Gamificationには、ゲームデザインに関わる..."の埋め込みを生成
EmbeddingsAPI->>+Discourse: [0.123, -0.321...]
Discourse->>+PostgreSQL: [0.123, -0.321...]に最も近いトピックを教えてください
PostgreSQL->>+Discourse: トピック: [1, 5, 10, 50]
Discourse->>+User: トピック: [1, 5, 10, 50]
AI 検索はどのように機能しますか?
- HyDE が有効な場合 (
ai_embeddings_semantic_search_use_hyde)、検索クエリは LLM を介して実行され、LLM が仮のトピック/投稿を作成します。その後、その仮の投稿から埋め込みが生成され、サイト内で類似のものを検索するために使用されます。HyDE が無効な場合 (デフォルト)、検索クエリは直接埋め込まれ、類似性のマッチングに使用されます。どちらの場合も、結果は Reciprocal Rank Fusion (RRF) を使用して通常の検索結果とマージされ、上位の結果が再ランク付けされます。
トピック/投稿データはどのように処理されますか?
- HyDE が有効な場合、LLM プロバイダーによって作成された LLM データはサードパーティプロバイダーによって処理されます。詳細については、特定のプロバイダーを参照してください。デフォルトでは、Embeddings マイクロサービスは、既存のフォーラムをホストする他のサーバーと並行して実行されます。ここにはサードパーティは関与せず、その特定の情報はプライベートクラウド内の内部ネットワークから決して外部に出ることはありません。
データはどこに保存されますか?
- HyDE が有効な場合、LLM プロバイダーによって作成された仮のトピック/投稿は、そのドキュメントの Embeddings と並行して一時的にキャッシュされます。Embeddings データは、トピック、投稿、ユーザーを保存するのと同じデータベースに保存されます。それはその中の別のデータテーブルです。
Embeddings の「セマンティックモデル」とはどのようなものですか? どのように「トレーニング」されたのですか、そしてそれが私たちの「専門的な」コミュニティのトピックに正確に適用できることをテストする方法はありますか?
- デフォルトでは、このようなものを含む事前学習済みのオープンソースモデルを使用します。私たちは多くの顧客に導入し、ニッチなコミュニティと一般的なコミュニティの両方でうまく機能することを確認しました。ユースケースに対してパフォーマンスが不十分な場合は、より複雑なモデルも用意していますが、私たちの経験では、デフォルトのオプションは堅実な選択肢です。