Discourse AI - 関連トピック

:bookmark: このガイドでは、Discourse AI プラグインの関連トピック機能を有効化して設定する方法について説明します。

:person_raising_hand: 必要なユーザーレベル: 管理者

関連トピック機能は、ユーザーが現在読んでいるトピックに基づいて意味的に類似したトピックを提案することで、関連コンテンツの発見を支援し、コンテンツの探索とユーザーエンゲージメントを高めます。

機能

  • 意味的テキスト類似性: キーワードマッチングを超えて、真に類似したコンテンツを見つけます
  • 「提案された」トピックと「関連」トピックの切り替え
  • 匿名ユーザーとログイン済みユーザーの両方で利用可能

関連トピックの有効化

:information_source: 関連トピックは、Discourse AI プラグインが有効になっているすべての Discourse ホスト済みカスタマーに対してデフォルトでオンになっています

前提条件

関連トピックを機能させるには、Embeddings が必要です。

当社のホスティングを利用している場合、Embeddings はオープンソースモデルを使用して提供されます。追加の設定は必要ありません。

セルフホストインスタンスでは、サポートされているプロバイダーを通じて埋め込みモデルを設定する必要があります。

設定

  1. 管理 → プラグイン → Discourse AI → AI機能 に移動します
  2. Embeddings モジュールを見つけて設定します:
    • ai_embeddings_selected_model を設定した埋め込み定義に設定します
    • ai_embeddings_enabled を有効にして Embeddings をアクティブ化します
  3. 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-smalltext-embedding-3-large)、Google (gemini-embedding-001)、Hugging Face 互換エンドポイント (bge-large-enbge-m3multilingual-e5-large)、および Cloudflare Workers AI のモデルをサポートしています。管理 UI 経由でカスタム埋め込みモデルを設定することもできます。
「いいね!」 14

注目に値することです。

英語サイト(OpenAI)の「関連トピック」の多くの投稿をレビューしていると、スペイン語のトピックがグループ化される傾向があることに気づき始めました。もしそれらが最初に英語に翻訳された場合、各投稿は異なるベクトルを持ち、それによって他の投稿とクラスタリングされるのではないかと疑っています。:slightly_smiling_face:



この機能の副次的な利点は、モデレーターが「関連トピック」にリストされているトピックのカテゴリが正しいかどうかを確認できることです。

新しい投稿をレビューするたびに、「関連トピック」もチェックしています。これは、間違ったカテゴリで作成されたトピックを特定する効果的な方法になりつつあります。

参考情報 - 関連するアイデアがこの機能リクエストで言及されています。



このトピックは、しばしばリンクをたどる必要があるのに見つけにくいので、ここにメモしておきます。

「いいね!」 2

その動作はモデルによって制御されており、既知の問題のようです。

多言語サイトに推奨しているOSSモデルはこの点でより良い仕事をしていると思いますが、検証のためにさらに多くのお客様に展開する必要があります。

「いいね!」 2

このオプションを有効にできません。

何か見落としているか、Gemini だけでは不十分ですか?

更新:指示とエラーの説明を更新して、ai embeddings model もプロバイダーに合わせて更新する必要があることを追加する必要があるかもしれません。そうしないと、ai_embeddings_enabled を有効にできません。パラメータの説明には Gemini がオプションとしてありません。

「いいね!」 1

7件の投稿が新しいトピックに分割されました:「Net::HTTPBadResponse」Gemini Embeddingsのエラー](/t/net-httpbadresponse-errors-on-gemini-embeddings/296952)

ここに何を入力すればよいですか?

以下に示す4つのオプションのうち、最初のオプションを有効にしたいので、上記を入力したいです。

OpenAIを使用している場合は、何も入力する必要はありません。

「いいね!」 1

そして、この最初のオプション(Embeddings Module)が問題です。有効にできません。

そのほとんどは空ですが、ai embeddings discourse service api key は OpenAI API であり、ai embeddings discourse service api endpointhttps://api.openai.com/v1/embeddings です。モデルは text-embedding-3-large であるべきです(もちろん small でも構いませんが、いくつかの問題があります)。

「いいね!」 1

3件の投稿が新しいトピックに分割されました: SuggestedとRelatedの両方のトピックを表示する方法

smalllarge を比較した結果はどうでしたか?モデルの精度に影響する次元の違いがあることは承知しています。small バージョンは 5 倍安価です。トピックの類似性において、実世界で本当に使用不可能なのでしょうか?私たちのフォーラムは 99% が英語です。

ぜひ詳しくお聞きしたいです。英語のみのサイトにおいて、all-mpnet-base-v2 が OpenAI モデルと比較してどのような位置づけにあるのか、詳しく説明していただけますか?

Embeddingsは非常に安価なので、価格は問題になりません。ただし、無数の投稿がある場合は、合計コストで0.01セントが重要になります。

しかし、正直なところ…違いは見られませんでした。そして私にとって、RAGと埋め込みを適切に使用できない可能性があるため、どちらも同様に役に立ちません。それが一般的な意見に反していることは承知していますが、私のサイトではそのシステムは何も有用なものを見つけて使用していません。

おそらくそれはOpenAIモデルに由来しますが、私はそれらのより専門的なソリューションを使用するのに十分なお金を持っていません。

「いいね!」 1

これを読むまで text-embedding-3-small モデルを使用していました。text-embedding-ada-002 はもっと優れていますか?

Adaは以前の世代です

「いいね!」 1

投稿が新しいトピックに分割されました: Related Topics not translated