このガイドでは、Discourse AI プラグインの関連トピック機能を有効化して設定する方法について説明します。
必要なユーザーレベル: 管理者
関連トピック機能は、ユーザーが現在読んでいるトピックに基づいて意味的に類似したトピックを提案することで、関連コンテンツの発見を支援し、コンテンツの探索とユーザーエンゲージメントを高めます。
機能
意味的テキスト類似性: キーワードマッチングを超えて、真に類似したコンテンツを見つけます
「提案された」トピックと「関連」トピックの切り替え
匿名ユーザーとログイン済みユーザーの両方で利用可能
関連トピックの有効化
関連トピックは、Discourse AI プラグインが有効になっているすべての Discourse ホスト済みカスタマーに対してデフォルトでオンになっています
前提条件
関連トピックを機能させるには、Embeddings が必要です。
当社のホスティングを利用している場合、Embeddings はオープンソースモデルを使用して提供されます。追加の設定は必要ありません。
セルフホストインスタンスでは、サポートされているプロバイダーを通じて埋め込みモデルを設定する必要があります。
設定
管理 → プラグイン → Discourse AI → AI機能 に移動します
Embeddings モジュールを見つけて設定します:
ai_embeddings_selected_model を設定した埋め込み定義に設定します
ai_embeddings_enabled を有効にして Embeddings をアクティブ化します
ai_embeddings_semantic_related_topics_enabled を有効にして、関連トピック機能をアクティブ化します
埋め込みモデルの設定
Embeddings を有効にする前に、埋め込みモデルを設定する必要があります。管理 → プラグイン → Discourse AI → Embeddings に移動して、新しい埋め込み定義を作成します。いくつかのプリセットから選択できます。
Open AI : text-embedding-3-small または text-embedding-3-large (ほとんどのサイトに推奨)
Google : gemini-embedding-001
Hugging Face (セルフホスト推論): multilingual-e5-large (非英語または多言語サイトに推奨)、bge-large-en、または bge-m3
選択したプロバイダーの API キー (または AIシークレット) とエンドポイント URL を提供する必要があります。
追加設定
次の設定により、関連トピック機能を微調整できます。
ai_embeddings_semantic_related_topics: 関連トピックセクションに表示するトピックの最大数 (デフォルト: 5)
ai_embeddings_semantic_related_include_closed_topics: 終了したトピックを関連結果に含めるかどうか (デフォルト: true)
ai_embeddings_semantic_related_age_penalty: 古いトピックにペナルティを適用して、新しいコンテンツを優先します (デフォルト: 0.0、範囲: 0.0–2.0)
ai_embeddings_semantic_related_age_time_scale: 年齢ペナルティの時間スケール (日数) (デフォルト: 365)
技術的な FAQ
関連トピックのアーキテクチャの図を表示するために展開
概要は、トピックが作成/更新されるときに次のことが発生することです。
sequenceDiagram
User->>Discourse: トピックを作成
Discourse-->>Embedding Microservice: 埋め込みを生成
Embedding Microservice-->>Discourse:
Discourse-->>PostgreSQL: 埋め込みを保存
トピック訪問時:
sequenceDiagram
User->>Discourse: トピックを訪問
Discourse-->>PostgreSQL: 最も近いトピックを照会
PostgreSQL-->>Discourse:
Discourse->>User: 関連トピックを表示
関連トピックはどのように機能しますか?
ユーザーがトピックを訪問すると、Discourse は埋め込み表現に基づいて最も意味的に類似したトピックをデータベースに照会します。これらの関連トピックがユーザーに提示され、コミュニティのコンテンツのさらなる探索が促進されます。
トピック/投稿データはどのように処理されますか?
Discourse ホスト済みサイトの場合、データは安全な仮想プライベートデータセンター内で処理されます。セルフホストサイトの場合、データ処理は選択したサードパーティプロバイダーによって異なります。
埋め込みデータはどこに保存されますか?
埋め込みデータは、トピック、投稿、ユーザーなどの他のフォーラムデータと一緒に、Discourse データベースに保存されます。
利用可能な埋め込みモデルは何ですか?
Discourse AI は、OpenAI (text-embedding-3-small、text-embedding-3-large)、Google (gemini-embedding-001)、Hugging Face 互換エンドポイント (bge-large-en、bge-m3、multilingual-e5-large)、および Cloudflare Workers AI のモデルをサポートしています。管理 UI 経由でカスタム埋め込みモデルを設定することもできます。
「いいね!」 14
EricGT
(EricGT)
2023 年 12 月 16 日午後 3:04
9
注目に値することです。
英語サイト(OpenAI)の「関連トピック」の多くの投稿をレビューしていると、スペイン語のトピックがグループ化される傾向があることに気づき始めました。もしそれらが最初に英語に翻訳された場合、各投稿は異なるベクトルを持ち、それによって他の投稿とクラスタリングされるのではないかと疑っています。
この機能の副次的な利点は、モデレーターが「関連トピック」にリストされているトピックのカテゴリが正しいかどうかを確認できることです。
新しい投稿をレビューするたびに、「関連トピック」もチェックしています。これは、間違ったカテゴリで作成されたトピックを特定する効果的な方法になりつつあります。
参考情報 - 関連するアイデアがこの機能リクエストで言及されています。
Suggestion
Have the AI read the first post of a topic to make sure
It is coherent
The category and the tags agree. (I know this can be configured but why not let the AI do it)
The content of the post agrees with the category and tags.
The content of the post agrees with the title of the post.
It is relevant to the forum. (I know spam detectors will catch some of this but sometimes it is not spam and just doesn’t belong)
Users may not use the correct category and/or tags and then ask a quest…
このトピックは、しばしばリンクをたどる必要があるのに見つけにくいので、ここにメモしておきます。
「いいね!」 2
Falco
(Falco)
2023 年 12 月 17 日午後 4:52
10
その動作はモデルによって制御されており、既知の問題のようです。
We did a huge embedded database using French, English, German, Spanish and Portuguese for an academic research paper. The embedding worked well in multiple languages However, we kept track of the source language for each piece of text we...
多言語サイトに推奨しているOSSモデルはこの点でより良い仕事をしていると思いますが、検証のためにさらに多くのお客様に展開する必要があります。
「いいね!」 2
RBoy
(RBoy)
2024 年 2 月 13 日午後 4:06
13
Saif Murtaza :
関連トピック機能に必要な埋め込みモジュールの ai_embeddings_enabled を有効にする
このオプションを有効にできません。
何か見落としているか、Gemini だけでは不十分ですか?
更新:指示とエラーの説明を更新して、ai embeddings model もプロバイダーに合わせて更新する必要があることを追加する必要があるかもしれません。そうしないと、ai_embeddings_enabled を有効にできません。パラメータの説明には Gemini がオプションとしてありません。
「いいね!」 1
Falco
(Falco)
このトピックを分割しました:
2024 年 2 月 27 日午後 7:57
15
7件の投稿が新しいトピックに分割されました:「Net::HTTPBadResponse」Gemini Embeddingsのエラー](/t/net-httpbadresponse-errors-on-gemini-embeddings/296952)
Bathinda
(Bathinda Helper)
2024 年 3 月 9 日午前 10:49
16
ここに何を入力すればよいですか?
以下に示す4つのオプションのうち、最初のオプションを有効にしたいので、上記を入力したいです。
Jagster
(Jakke Flemming)
2024 年 3 月 9 日午前 11:03
17
Bathinda Helper:
ここには何を入力すればよいですか?
OpenAIを使用している場合は、何も入力する必要はありません。
「いいね!」 1
Bathinda
(Bathinda Helper)
2024 年 3 月 9 日午前 11:45
19
そして、この最初のオプション(Embeddings Module)が問題です。有効にできません。
Jagster
(Jakke Flemming)
2024 年 3 月 9 日午前 11:57
20
そのほとんどは空ですが、ai embeddings discourse service api key は OpenAI API であり、ai embeddings discourse service api endpoint は https://api.openai.com/v1/embeddings です。モデルは text-embedding-3-large であるべきです(もちろん small でも構いませんが、いくつかの問題があります)。
「いいね!」 1
small と large を比較した結果はどうでしたか?モデルの精度に影響する次元の違いがあることは承知しています。small バージョンは 5 倍安価です。トピックの類似性において、実世界で本当に使用不可能なのでしょうか?私たちのフォーラムは 99% が英語です。
ぜひ詳しくお聞きしたいです。英語のみのサイトにおいて、all-mpnet-base-v2 が OpenAI モデルと比較してどのような位置づけにあるのか、詳しく説明していただけますか?
Jagster
(Jakke Flemming)
2024 年 9 月 11 日午前 9:12
23
Embeddingsは非常に安価なので、価格は問題になりません。ただし、無数の投稿がある場合は、合計コストで0.01セントが重要になります。
しかし、正直なところ…違いは見られませんでした。そして私にとって、RAGと埋め込みを適切に使用できない可能性があるため、どちらも同様に役に立ちません。それが一般的な意見に反していることは承知していますが、私のサイトではそのシステムは何も有用なものを見つけて使用していません。
おそらくそれはOpenAIモデルに由来しますが、私はそれらのより専門的なソリューションを使用するのに十分なお金を持っていません。
「いいね!」 1
これを読むまで text-embedding-3-small モデルを使用していました。text-embedding-ada-002 はもっと優れていますか?
Falco
(Falco)
このトピックを分割しました:
2026 年 1 月 25 日午後 11:37
26