Discourse AI - 感情分析

:bookmark: このガイドでは、Discourse AI で感情分析と感情分類を設定し、レポートを利用してコミュニティの投稿を検証する方法について説明します。

:person_raising_hand: 必要なユーザーレベル:設定には管理者権限が必要です。レポートの閲覧には管理者またはモデレーター権限が必要です。

感情分析と感情分類により、コミュニティの議論におけるパターンを検証できます:

  • 感情分析は、投稿を「肯定的」「中立的」「否定的」に分類します。
  • 感情分類は、感謝、好奇心、怒り、悲しみなど、28種類のラベルに対するスコアを割り当てます。

これらは別々の機能です。いずれか一方または両方を有効にし、それぞれ異なる分類バックエンドを選択できます。レポートは分類された投稿数をカウントし、固有の人物やパーソナリティタイプをカウントしません。読む価値のある議論を見つけるために利用し、その文脈の理解の代替手段として使用しないでください。

開始前に

discourse_ai_enabled 経由で Discourse AI を有効にし、分類バックエンドを設定する必要があります。

Discourse がホストしている場合? サイトにはすでに専用の分類エンドポイントがプロビジョニングされている可能性があります。設定を変更する前に既存の構成を確認してください。可用性、エンドポイントの設定、バックフィルの制限についてサポートが必要な場合は、team@discourse.org までお問い合わせください。

セルフホストの場合? 互換性のある専用エンドポイント、言語モデルを持つ AI エージェント、または決定モデルを設定します。機能を有効にするだけでは推論サービスは提供されません。

自動処理を有効にする前に、プロバイダーのプライバシーポリシー、保持ルール、コストを確認してください。分類処理により、投稿テキストが選択されたバックエンドに送信されます。以下のスクリーンショットでは、テストサイトで作成した架空の投稿と決定モデルを使用していますが、これはプライベートなコミュニティコンテンツに対してそのプロバイダーを推奨するものではありません。

感情分析と感情分類の設定

  1. 管理 → プラグイン → AI → 機能 を開きます。
  2. 「感情分析と感情分類」を開きます。
  3. 「感情分析」の下で、肯定的、中立的、否定的な分類を行う場合は「有効」を選択します。これは ai_sentiment_enabled を制御します。
  4. 該当するエンドポイント、エージェント、またはモデルを選択し、以下に説明する手順で設定します。
  5. 「感情分類」の下で、感情分類を行う場合は「有効」を選択します。これは ai_sentiment_emotion_enabled を制御します。
  6. バックエンドを選択し、独立して設定します。
  7. 次のセクションで説明するバックグラウンド処理の制限を設定します。
  8. 「送信」をクリックし、選択内容が保存されたことを確認します。

この例では、両機能に決定モデルを使用しています。「1時間あたりの投稿数」は、テスト中に自動スキャンを一時的に停止するために、意図的に 0 に設定されています。新しい投稿と履歴のある投稿を自動的に処理するには、正の値を使用してください。

専用分類エンドポイントを使用する

専用モデルで実行したい各機能ごとに「専用分類エンドポイント」を選択します。「専用分類エンドポイントの設定」に従い、ai_sentiment_model_configs 設定にアクセスします。

参照用の専用モデルは以下の通りです:

機能 モデル
感情分析 cardiffnlp/twitter-roberta-base-sentiment-latest
感情分類 SamLowe/roberta-base-go_emotions

各設定エントリは、その classification_type(sentiment または emotion)、model_name、endpoint、および api_key を識別します。使用する専用分類器ごとに別々のエントリを提供してください。認証情報(資格情報)は秘密にしておき、サポート投稿やスクリーンショットに含めないでください。

推論サーバーのデプロイについては、Discourse AI 用の感情分析と感情分類のセルフホスティングを参照してください。上記のコントロールを使用して、各機能を個別に有効化し、選択します。

専用バックエンドは互換性のある分類 API を想定しています。Anthropic、OpenAI チャット、または Azure Language のエンドポイントをこの設定にコピーしても、互換性は得られません。Discourse の他の場所にある言語モデルの接続テストが成功しても、専用感情エンドポイントがテストされているわけではありません。

AI エージェントまたは決定モデルを使用する

「LLM エージェント」の場合、設定された言語モデルを持つ適切な分類エージェントを選択します。Discourse には感情分析および感情分類エージェントが含まれています。一般的な会話型エージェントは、期待されるラベルのスコアを返すように設定されたエージェントの代わりにはなりません。

「決定モデル」の場合、まず互換性のある決定モデルを設定してテストし、有効にされた各機能に対してそれを選択します。決定モデルは、この分類処理には別の会話型言語モデルを必要としません。

エージェントおよび決定モデルの要求には、プロバイダーへの料金が課されたり、クレジットが消費されたりする場合があります。自動的に処理される機能に割り当てる前に、選択したモデルのデータ取り扱いルールを確認してください。

処理と履歴カバレッジの制御

定期的なジョブは、分類が欠落している投稿を確認するために、5分ごとに実行されます。新しい投稿と履歴のある投稿はこのスキャンを共有しており、結果は投稿直後に表示されるとは限りません。データが表示されるまでに最低限必要な投稿数や日数はなく、1つの成功した分類投稿でも貢献できます。

コントロール サイト設定 デフォルト 効果
1時間あたりの投稿数 ai_sentiment_backfill_maximum_posts_per_hour 240 1時間あたりに処理されるおおよその投稿数。0 に設定すると、新しい投稿を含めたスケジュールされたスキャンが停止します。
投稿の経過日数制限 ai_sentiment_backfill_post_max_age_days 60 この期間内に作成された投稿をスキャンします。0 は「無制限」ではなく「今日」を意味します。

より古い投稿を含めるために、経過日数制限を増やします。スケジュールされたジョブは、欠落している結果を時間経過とともに処理します。レポートの古い日付範囲を選択しても、その履歴が自動的に分類されるわけではありません。

レートはおおよその値であり、正確なリクエスト数や支出上限ではありません。両方の分類器を有効にすると、1投稿あたり2つのリクエストが発生する場合があります。失敗したリクエストや拒否されたリクエストは再試行されることがあります。編集された投稿は個別にチェックされ、スケジュールされたスキャンのレートや経過日数制限の影響を受けません。

プライベートメッセージ、削除された投稿、削除されたトピック、および通常以外の投稿タイプは、スケジュールされたバックフィルスキャンから除外されます。スキャンナーおよびレポートにおける PM の除外は、すべての分類パスに関する保証ではありません。編集された投稿のジョブでは同じ PM フィルターが適用されません。外部プロバイダーを設定する前に、この点を考慮してください。

カテゴリまたはタグ別で感情を検索する

  1. 管理 → レポート → 感情分析 を開くか、サイトで /admin/reports/sentiment_analysis にアクセスします。
  2. 開始日と終了日を選択します。
  3. 結果をグループ化するために「カテゴリ」または「タグ」を選択します。
  4. 対応するカテゴリまたはタグフィルターを使用して結果を絞り込みます。カテゴリフィルターでは、サブカテゴリを含めるオプションも提供されます。
  5. 各グループの合計と、肯定的、否定的、中立的な内訳を確認します。
  6. グループの行をクリックして、そのチャートと基になる投稿を調べます。

この例には9件の分類済み投稿が含まれています:3件が肯定的、3件が否定的、3件が中立的です。中立的な投稿もこのレポートに含まれます。

詳細ビューでは:

  • 「すべて」「肯定的」「中立的」「否定的」を選択して、読み込まれた投稿をフィルターできます。
  • 投稿のトピックを開いて、周囲の議論を確認します。
  • チャートの横にあるリンクアイコンを使用して、そのレポートビューの URL をコピーします。受信者にはスタッフへのアクセス権限が必要です。
  • 「戻る」をクリックして、グループ化された結果に戻ります。

レポートの日付は、分類が実行された時点ではなく、投稿が作成された時点に基づいています。トピックに複数のタグがある場合、1つの投稿が複数のタググループに寄与する可能性があるため、タグの合計を加算すると同じ投稿が複数回数カウントされることがあります。

全体的な感情トレンドを確認する

管理 → レポートから「全体的な感情」レポートを開くか、/admin/reports/overall_sentiment にアクセスします。

スコアは以下のように計算されます:

肯定的な投稿の数 − 否定的な投稿の数

ある投稿がそのグループとしてカウントされるには、肯定的または否定的なスコアが 0.6 より大きい必要があります。どちらもしきい値を超えない場合、グループ化レポートはその投稿を中立的として扱います。しきい値は固定されており、変更するためのサイト設定はありません。

全体的な感情は正味の投稿数であり、平均確率や幸福度のパーセンテージではありません。肯定的な投稿が3件、否定的な投稿が3件ある場合、中立的な投稿が何件あっても、全体的なスコアは 0 になります。平坦なトレンドを強い意見の欠如として解釈する前に、グループ化された内訳と基になる議論を確認してください。

感情を検索する

各感情には 管理 → レポート 配下にレポートがあります。例えば、「怒り」については /admin/reports/emotion_anger、「好奇心」については /admin/reports/emotion_curiosity にアクセスします。日付範囲を選択し、日次、週次、月次のグループ化を選択してトレンドを検索します。

感情レポートでは、そのラベルのスコアが 0.1 より大きい 投稿がカウントされます。このしきい値も固定されています。1つの投稿に対して複数の感情が該当する可能性があるため、感情の合計値は排他的ではありません。

トピックを感情でフィルタリングすることもできます。/filter?q=order:emotion_anger にアクセスして、該当するトピックを探します。これは平均的な感情スコアではなく、条件を満たす怒りの分類投稿の数によって順位付けされます。順序を反転させるには order:emotion_anger-asc を使用します。activity-after: フィルターがない場合、この順序付けは過去1年間の条件を満たす投稿をカウントします。通常のトピックリストのアクセス権限が適用されます。

利用可能な感情ラベル

尊敬、面白さ、怒り、苛立ち、承認、思いやり、混乱、好奇心、欲望、失望、不承認、嫌悪、恥、興奮、恐怖、感謝、悲嘆、喜び、愛、神経質さ、中立、楽観、誇り、理解、安堵、悔い、悲しみ、驚き。

制限事項を理解する

  • 分類はモデル依存です。 皮肉、引用テキスト、専門用語、多言語の議論は誤って解釈される可能性があります。言語カバレッジと精度は、選択したモデルに依存します。異なるバックエンドからのスコアは、必ずしも同じように校准(キャリブレーション)されているわけではありません。
  • レポートは保存された結果のみを対象とします。 バックエンドが動作しない有効な機能、停止中の処理、履歴カバレッジが不十分等情况では、空または不完全なレポートが生成されることがあります。
  • 既存の分類は再利用されます。 分類済み投稿を編集しても、結果は自動的に置き換えられません。同じバックエンド内で選択したエージェントまたは決定モデルを変更しても、既存の結果は再分類されません。
  • バックエンドを変更すると、レポートの結果ソースも変更されます。 古い結果は、選択したバックエンドに转换(変換)されません。欠落している分類が処理される間、レポートが空のように表示されることがあります。
  • レポートはプライベートメッセージを除外します。 このレポート除外は、上記のデータ処理制限とは別物です。

欠落または予期しない結果のトラブルシューティング

問題 確認すること
有効化後に結果がない 該当する機能が有効になっているか、バックエンドが設定されているか、「1時間あたりの投稿数」が正の値になっているか、バックグラウンドジョブが実行されているかを確認してください。5分ごとのスキャンと処理キューには時間がかかります。
感情分析は動作するが、感情分類は空 「感情分類」を別途有効化し、設定してください。感情分析専用のエンドポイントでは、感情分類は提供されません。
以前の日付に結果がない 投稿の経過日数制限を増やし、処理時間を待ってから、レポート範囲が投稿の作成日付を含んでいるか確認してください。
専用エンドポイントがエラーを返す URL、認証情報、モデル、応答形式を確認してください。アダプターは、ラベルとスコアのフラットな配列(感情分析なら positive、neutral、negative などのラベル)を想定しており、任意のチャット応答や LABEL_0 スタイルのラベルではありません。
内部ネットワークのエンドポイントに到達できない 接続性を確認し、必要に応じて、信頼できる推論エンドポイントのホスト名または IP のみを allowed_internal_hosts に追加してください。サーバー側リクエスト偽装(SSRF)保護を広く無効化しないでください。
編集またはモデル選択後も結果が変わらない 既存の結果が再利用されています。コンテンツの編集や他のモデルの保存で、完全な再分類がスケジュールされると仮定しないでください。
フィルターが表示する投稿数がカウント数より少ない カウントはグループ全体を表しており、感情タブは読み込まれた投稿をフィルターしています。さらに結果を読み込む必要があるか確認し、不一致を調査する際に元のトピックを開いてください。

管理者は、管理 → プラグイン → AI → ログ でエージェントおよび決定モデルの要求レコードを確認できます。/logs でバックグラウンド分類エラー(専用エンドポイントの失敗など)を確認してください。ログコンテンツは機密情報として扱ってください。投稿テキストやモデル応答が含まれる場合があります。診断情報を共有する前に、認証情報とプライベートコンテンツを削除してください。

追加リソース

「いいね!」 10

投稿が既存のトピックにマージされました: Problems with Sentiment Backfill

投稿が既存のトピックにマージされました: Problems with Sentiment Backfill

OPは、感情の更新された機能を紹介する新しいビデオで更新されました。これには、さらに多くの感情と、各感情に関連付けられているトピック/投稿の理解が含まれています。

センチメントモデルの設定で、LLM設定からコピーした model_name、endpoint、api_key を使用して設定しましたが、テストはパスするものの、/logs で以下のエラーが発生します。

(しかし、センチメントが設定済みのLLMのいずれかを使用しないのは、私の理解が正しくないからかもしれませんが。)

claude-3-5-sonnet を使用しています。


{"type":"error","error":{"type":"invalid_request_error","message":"anthropic-version: header is required"}} (Net::HTTPBadResponse)
/var/www/discourse/plugins/discourse-ai/lib/inference/hugging_face_text_embeddings.rb:71:in `classify'
/var/www/discourse/plugins/discourse-ai/lib/sentiment/post_classification.rb:142:in `request_with'
/var/www/discourse/plugins/discourse-ai/lib/sentiment/post_classification.rb:78:in `block (4 levels) in bulk_classify!'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/promises.rb:1593:in `evaluate_to'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/promises.rb:1776:in `block in on_resolvable'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:359:in `run_task'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:350:in `block (3 levels) in create_worker'

internal:kernel:187:in `loop'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:341:in `block (2 levels) in create_worker'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:340:in `catch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:340:in `block in create_worker'
Status: 400

{"type":"error","error":{"type":"invalid_request_error","message":"anthropic-version: header is required"}} (Net::HTTPBadResponse)
/var/www/discourse/plugins/discourse-ai/lib/inference/hugging_face_text_embeddings.rb:71:in `classify'
/var/www/discourse/plugins/discourse-ai/lib/sentiment/post_classification.rb:142:in `request_wit...

センチメントモジュールは、一般的なLLMではなく、センチメント分類に特化してファインチューニングされたモデルを使用します。これらのモデルを自分で実行したい場合は、DiscourseAIのセンチメントと感情のセルフホスティングで文書化されています。

「いいね!」 3

@Falco 気づいたのですが、2025年1月以降、感情分析が動かなくなっています。推測では、新しい設定のai_sentiment_modelがあるようで、上のリンクが説明しているように、独自の専用感情モデル/画像を実行するためのものです。ディスコースを更新した後、ai_sentiment_model_configsがすべて空白になっているのに気づきました(空白のはずですか?)。バックフィルの rake を実行しようとするとエラーが発生します:

rake ai:sentiment:backfill
rake aborted!
ActiveRecord::StatementInvalid: PG::SyntaxError: ERROR:  構文エラーです、 near ")" (ActiveRecord::StatementInvalid)
LINE 1: ...e_upload_id", "posts"."outbound_message_id" FROM () as posts..

プラグインは、テストを容易にするために私がセットアップしたDigitalOceanにあるサーバーにデフォルトで設定されていました。

その後、プラグインのデフォルトをクリーンな状態に変更しました。AI分類が必要な場合は、Metaのドキュメントに従ってサーバーを実行する必要があります。

確かに、しかし私たちはテスト目的でそのコストを支払っていました。すべてのセルフホスティングユーザーにそれを提供するというのは持続可能ではありません。

GPUアクセラレーテッドサーバーでこの分類サービスを提供していることは、私たちのホスティングサービスの一部として言及する価値があります。

「いいね!」 2

Discourse AI 感情分析の問題:Hugging Face モデルの形式と Azure エンドポイントの障害


Discourse コミュニティおよび開発者の皆様、

フォーラム内の Discourse AI プラグインで感情分析機能を設定および使用しようとすると、重大な問題に直面しています。正しく機能しないようにしている問題が 2 つあるようです。


問題 1:Hugging Face モデルの応答形式の不一致

Hugging Face の cardiffnlp/twitter-roberta-base-sentiment モデルを感情分析用に設定しました。API キーは有効で、Discourse インスタンスから curl を使用して API を正常に呼び出すことができますが、Discourse AI プラグインは、Hugging Face モデルの出力形式の変更により、応答を正しく解析していないようです。

私の curl コマンド(有効な API キーと新しい形式を確認):

Bashcurl -X POST https://api-inference.huggingface.co/models/cardiffnlp/twitter-roberta-base-sentiment \ -H "Authorization: Bearer hf_xxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d "{\"inputs\": \"I love Discourse!\"}"

curl からの出力(新しいネストされた配列形式を示しています):

[[{\"label\":\"LABEL_2\",\"score\":0.9891520738601685},{\"label\":\"LABEL_1\",\"score\":0.009014752693474293},{\"label\":\"LABEL_0\",\"score\":0.0018332178005948663}]]

問題: twitter-roberta-base-sentiment モデルは、以前は ラベルとスコアのハッシュの単一の配列を返していました:[{\"label\": \"LABEL_2\", \"score\": 0.98}, ...]. しかし、現在はネストされた配列 [[{\"label\": \"LABEL_2\", \"score\": 0.98}, ...]] を返します。

Discourse AI プラグインのハードコードされた解析ロジック(具体的には、バックトレースで示されている classification[\"label\"][/\\d+/].to_i)は、この外側の配列レイヤーを考慮していません。これにより、シンボルを整数としてアクセスしようとすると TypeError が発生します。

エラーメッセージ(ジョブ例外から):

シンボルから整数への暗黙の変換はありません (TypeError)
/var/www/discourse/plugins/discourse-ai/lib/sentiment/post_classification.rb:163:in transform_result' の block/var/www/discourse/plugins/discourse-ai/lib/sentiment/post_classification.rb:163:ineach’
/var/www/discourse/plugin…`

Hugging Face 問題の完全なバックトレース:

/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/promises.rb:1268:in `raise'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/promises.rb:1268:in `wait_until_resolved!'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/promises.rb:998:in `value!'
/var/www/discourse/plugins/discourse-ai/lib/sentiment/post_classification.rb:93:in `bulk_classify!'
/var/www/discourse/plugins/discourse-ai/app/jobs/scheduled/sentiment_backfill.rb:27:in `execute'
/var/www/discourse/app/jobs/base.rb:316:in `block (2 levels) in perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:21:in `with_connection'
/var/www/discourse/app/jobs/base.rb:303:in `block in perform'
/var/www/discourse/app/jobs/base.rb:299:in `each'
/var/www/discourse/app/jobs/base.rb:299:in `perform'
/var/www/discourse/app/jobs/base.rb:379:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:137:in `process_queue'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:77:in `worker_loop'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:63:in `block (2 levels) in ensure_worker_threads'
internal:kernel:187:in `loop'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:341:in `block (2 levels) in create_worker'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:340:in `catch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:340:in `block in create_worker'
シンボルから整数への暗黙の変換はありません (TypeError)
/var/www/discourse/plugins/discourse-ai/lib/sentiment/post_classification.rb:163:in `block in transform_result'
/var/www/discourse/plugins/discourse-ai/lib/sentiment/post_classification.rb:163:in `each'
/var/www/discourse/plugin...

問題 2:Microsoft Azure モデルの設定が Hugging Face エラーを引き起こす

Discourse AI 設定内で Microsoft Text Analytics モデルに切り替えようとしたところ、404 Resource not found エラーが発生し、驚くべきことに、バックトレースは依然として hugging_face_text_embeddings.rb を指していました。

エラーメッセージ(ジョブ例外から):

Job exception: 416 errors
{"error":{"code":"404","message": "Resource not found"}} (Net::HTTPBadResponse)

関連するバックトレーススニペット(Microsoft モデルが選択されているにもかかわらず Hugging Face を指しています):

/var/www/discourse/plugins/discourse-ai/lib/inference/hugging_face_text_embeddings.rb:76:in `do_request!'
/var/www/discourse/plugins/discourse-ai/lib/inference/hugging_face_text_embeddings.rb:51:in `classify_by_sentiment!'
/var/www/discourse/plugins/discourse-ai/lib/sentiment/post_classification.rb:156:in `request_with'

観察: これは、Microsoft モデルのエンドポイントと API キーを選択して設定した場合でも、Discourse AI プラグインが、異なる感情分析プロバイダーが設定されている場合に、感情分析リクエストを Hugging Face 固有のロジックまたはエンドポイントを介してハードコードまたは誤ってルーティングしているように見えることを示しています。これにより、Microsoft モデルがまったく使用できなくなります。


設定スクリーンショット:

設定を示すために Discourse AI 設定のスクリーンショットを添付しました。

  • AI 感情分析モデルの詳細な設定(Hugging Face と Microsoft の両方のモデルが表示されています)- Hugging Face または Microsoft モデルのみの設定でテストしましたが、結果は同じでした。

これらの問題により、感情分析機能は事実上使用できなくなっています。プラグインは、新しい Hugging Face 応答形式を処理し、異なる感情分析プロバイダーが設定されている場合にリクエストを正しくルーティングするために更新が必要なようです。

これらの問題に関する支援やガイダンスをいただければ幸いです。

ありがとうございます!

「いいね!」 2

センチメントレポートが他のユーザーでも機能しているのか、それとも私が何かを誤って設定したのか気になっています。センチメントレポートを有効にするために他に確認または設定する必要があることがあれば知りたいです。まだ同じ問題が発生しています。

「いいね!」 1

Azure AI Language (セルフホストの Discourse インスタンスから) を使用してこの機能を利用しようとしています。すでに Azure サブスクリプションを使用して、GPT-4.5 を Discourse (要約およびチャットボット機能用) に統合しているためです。

しかし、センチメントダッシュボードにデータが表示されず、ログに次のエラーが表示されています。

Discourse AI: バルク分類中のエラー: 208 件の投稿を分類できませんでした (例: ID: 2256, 909, 2270, 2260, 2797): JSON::ParserError : 空文字列は有効な JSON 文字列ではありません。

バックトレースは、Discourse が HuggingFace を使用しようとしている可能性を示しています。現時点では、これらが唯一サポートされているモデルですか?

よろしくお願いします。

N

「いいね!」 1

それで、この機能を使用する唯一の方法は、モデルのインスタンスを自分でセットアップすることですか(これはリソースを大量に消費するGPUインスタンスを必要とし、コストがかかります)。この機能は非常に便利そうですが、実際のDiscourseホスティングよりもセットアップに費用がかかるようです。

はい、サポートされているモデルは OP に記載されているものです。

将来的には、コストを気にしないユーザー向けに LLM を使用した分類のサポートを追加する予定です。

ええと、この機能全体は ML モデルを使用した投稿の分類を中心に構築されているため、はい、それらを実行する場所が必要です。

そして、Discourse は最も安価な VPS でも実行できるため、ML モデルの実行は確かに高価です。可能な限り安価に機能を持たせたい場合は、モデルをロードするのに十分な RAM があれば、CPU コアが数個しかないサーバーで実行することも可能です。

「いいね!」 1

以前に尋ねられた質問かもしれませんが、閾値スコアをどこで設定できるか正確に見つけられませんでした😅

「いいね!」 1

残念ながら、しきい値スコアはユーザーまたは管理者によって設定できるものではありません。コードベースで設定された特定の値です。

「いいね!」 1