このガイドでは、Discourse AI プラグインの関連トピック機能を有効化し、設定する方法について説明します。
必要なユーザーレベル:管理者
関連トピックは、ユーザーが現在読んでいるトピックに基づいて意味的に類似したトピックを提案することで、関連コンテンツの発見を支援し、ユーザーエンゲージメントを高めます。
機能
セマンティックテキスト類似性:キーワードの一致を超えて、真に関連するコンテンツを見つけます
「提案」と「関連」トピックの切り替え
匿名ユーザーとログイン済みユーザーの両方で利用可能
関連トピックの有効化
関連トピックは、Discourse AI プラグインが有効になっているすべての Discourse ホスト顧客に対してデフォルトでオンになっています。
前提条件
関連トピックが機能するには、Embeddings が必要です。
ホスティングをご利用の場合、Embeddings はオープンソースモデルを使用して提供されます。追加の設定は不要です。
セルフホストインスタンスでは、サードパーティプロバイダーを通じて独自の Embeddings を提供する必要があります。
設定
管理 → 設定 → プラグイン に移動します。
「discourse-ai」を検索し、有効になっていることを確認します。
ai_embeddings_enabled を有効にして Embeddings をアクティブ化します。
ai_embeddings_semantic_related_topics_enabled を有効にして関連トピック機能をアクティブ化します。
追加設定
セットアップによっては、以下の設定を調整する必要がある場合があります。
英語以外のサイト(Discourse ホストまたは独自のモデルを使用するセルフホスト):
ai embeddings model を multilingual-e5-large に設定します。
Cloudflare Workers AI の場合:
ai embeddings model を bge-large-en に設定します。
OpenAI または Azure OpenAI の場合:
ai embeddings model を text-embedding-ada-002 に設定します。
技術 FAQ
関連トピックのアーキテクチャ図を表示するには展開
概要は、トピックが作成/更新されたときに発生することです。
sequenceDiagram
User->>Discourse: トピックを作成
Discourse-->>Embedding Microservice: Embeddings を生成
Embedding Microservice-->>Discourse:
Discourse-->>PostgreSQL: Embeddings を保存
トピック訪問中:
sequenceDiagram
User->>Discourse: トピックを訪問
Discourse-->>PostgreSQL: 最も近いトピックをクエリ
PostgreSQL-->>Discourse:
Discourse->>User: 関連トピックを表示
関連トピックはどのように機能しますか?
ユーザーがトピックを訪問すると、Discourse は埋め込み表現に基づいて最も意味的に類似したトピックをデータベースにクエリします。これらの関連トピックがユーザーに提示され、コミュニティのコンテンツのさらなる探索が促進されます。
トピック/投稿データはどのように処理されますか?
Discourse ホストサイトの場合、データは当社のセキュアな仮想プライベートデータセンター内で処理されます。セルフホストサイトの場合、データ処理は選択したサードパーティプロバイダーによって異なります。
Embeddings データはどこに保存されますか?
Embeddings データは、トピック、投稿、ユーザーなどの他のフォーラムデータと共に、Discourse データベースに保存されます。
どのセマンティックモデルが使用され、どのようにトレーニングされましたか?
Discourse ホストサイトでは、デフォルトで all-mpnet-base-v2 モデル が使用されます。このモデルは、ニッチなコミュニティと一般的なコミュニティの両方で良好なパフォーマンスを発揮します。セルフホストサイトでは、選択したプロバイダーによって異なるモデルが使用される場合があります。
「いいね!」 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 Lehtonen)
2024 年 3 月 9 日午前 11:03
17
Bathinda Helper:
ここには何を入力すればよいですか?
OpenAIを使用している場合は、何も入力する必要はありません。
「いいね!」 1
Bathinda
(Bathinda Helper)
2024 年 3 月 9 日午前 11:45
19
そして、この最初のオプション(Embeddings Module)が問題です。有効にできません。
Jagster
(Jakke Lehtonen)
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 Lehtonen)
2024 年 9 月 11 日午前 9:12
23
Embeddingsは非常に安価なので、価格は問題になりません。ただし、無数の投稿がある場合は、合計コストで0.01セントが重要になります。
しかし、正直なところ…違いは見られませんでした。そして私にとって、RAGと埋め込みを適切に使用できない可能性があるため、どちらも同様に役に立ちません。それが一般的な意見に反していることは承知していますが、私のサイトではそのシステムは何も有用なものを見つけて使用していません。
おそらくそれはOpenAIモデルに由来しますが、私はそれらのより専門的なソリューションを使用するのに十分なお金を持っていません。
「いいね!」 1
これを読むまで text-embedding-3-small モデルを使用していました。text-embedding-ada-002 はもっと優れていますか?