このガイドでは、Discourse AI プラグインの一部である AI 検索機能を有効化および設定する方法について説明します。
必要なユーザーレベル:管理者
関連トピックと同様に、AI 検索は、従来の検索で使用される厳密なキーワード一致を超えた、意味的なテキスト類似性を使用して最も関連性の高いトピックを見つけるのに役立ちます。これにより、厳密には一致しないが、元の検索に関連性のあるトピックを発見できます。探しているものが見つからない場合は、AI 検索がお手伝いします!
機能
- 意味的なテキスト類似性:キーワードの一致だけでなく、意味解析を使用してテキストの類似性を見つけます。
- AI クイック検索
- フルページ検索での AI 検索のオン/オフ切り替え
アイコンで示される結果- 匿名ユーザーとログイン済みユーザーの両方に適用可能
AI 検索の有効化
前提条件
AI 検索を使用するには、Embeddings と大規模言語モデル (LLM) が必要です。
Embeddings
ホスティングをご利用の場合、デフォルトのオプションを提供します。セルフホスティングの場合は、Discourse AI - Embeddings のガイドに従ってください。
大規模言語モデル (LLM)
Discourse ホスティングのお客様およびセルフホスティングのお客様は、プロバイダーから少なくとも 1 つの大規模言語モデル (LLM) を設定する必要があります。
開始するには、Discourse AI - Large Language Model (LLM) settings page から設定できます。
- OpenAI
- Anthropic
- Azure OpenAI
- Anthropic アクセスを備えた AWS Bedrock
- Llama2 ライクなモデルを備えた HuggingFace エンドポイント
- DiscourseAI 用の OpenSource LLM をセルフホスティング
- Google Gemini
設定
管理設定 →プラグインに移動し、discourse-aiを検索または見つけて、有効になっていることを確認します。- Embeddings の場合は
ai_embeddings_enabledを有効にします。 - AI 検索を有効にするには
ai_embeddings_semantic_search_enabledを有効にします。
技術 FAQ
[AI 検索ロジックの概要を展開 ]
mermaid height=255,auto
sequenceDiagram
User->>+Discourse: 「ゲーミフィケーション」を検索
Discourse->>+LLM: 「Discourse、オープンソースのインターネットフォーラムシステム」に関するフォーラムで「ゲーミフィケーション」の記事を作成
LLM->>+Discourse: ゲーミフィケーションには、ポイント、バッジ、レベル、リーダーボードなどのゲームデザイン要素を非ゲームコンテキストに適用することが含まれます...
Discourse->>+EmbeddingsAPI: 「ゲーミフィケーションには、ゲームデザインを適用することが含まれます...」の埋め込みを作成
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 検索はどのように機能しますか?
- 最初の検索クエリは LLM を介して実行され、仮説的なトピック/投稿が作成されます。その後、その投稿に対して Embeddings が実行され、検索クエリと類似した一致がサイト内で検索されます。最後に、Reciprocal Rank Fusion (RFF) を使用して、通常の検索と一致するように上位の結果を再ランク付けします。
トピック/投稿データはどのように処理されますか?
- LLM データはサードパーティプロバイダーによって処理されます。詳細については、特定のプロバイダーを参照してください。デフォルトでは、Embeddings マイクロサービスは、既存のフォーラムをホストする他のサーバーと並行して実行されます。ここにはサードパーティは関与せず、特定の情報は仮想プライベートデータセンター内の内部ネットワークから離れることはありません。
データはどこに保存されますか?
- LLM プロバイダーによって作成された仮説的なトピック/投稿は、そのドキュメントの Embeddings と共に一時的にキャッシュされます。Embeddings データは、トピック、投稿、ユーザーを保存しているのと同じデータベースに保存されます。そこにもう 1 つのデータテーブルがあります。
Embeddings の「セマンティックモデル」はどのようなものですか?どのように「トレーニング」されましたか?また、それが私たちの「専門的な」コミュニティのトピックに正確に適用できるかどうかをテストする方法はありますか?
- デフォルトでは、このようなオープンソースモデルなどの事前トレーニング済みモデルを使用します。多くの顧客に展開しており、ニッチなコミュニティと一般的なコミュニティの両方でうまく機能することがわかりました。パフォーマンスがユースケースに十分でない場合は、より複雑なモデルを用意していますが、経験上、デフォルトのオプションは堅実な選択です。