このSQLクエリは、Discourse AI - AI triage の自動化によって報告されたスパムフラグに関する統計情報を提供します。フラグの総数、承認または却下された数、および対応するパーセンテージを計算します。このレポートは、フォーラムでの自動スパム検出の効果を理解するのに役立ちます。
-- [params]
-- date :start_date = 2025-01-01
-- date :end_date = 2025-05-30
SELECT
COUNT(*) AS total_flags,
COUNT(*) FILTER (WHERE r.status = 1) AS approved_flags,
COUNT(*) FILTER (WHERE r.status = 2) AS rejected_flags,
ROUND(100.0 * COUNT(*) FILTER (WHERE r.status = 1) / COUNT(*), 2) AS approved_percentage,
ROUND(100.0 * COUNT(*) FILTER (WHERE r.status = 2) / COUNT(*), 2) AS rejected_percentage
FROM
reviewables r
JOIN
post_actions pa ON pa.post_id = r.target_id AND r.target_type = 'Post'
WHERE
pa.post_action_type_id = 8 -- スパムのID(スパムとしてフラグを立て、投稿を非表示にする)
AND r.created_at BETWEEN :start_date AND :end_date
AND r.status IN (1, 2) -- 承認および却下されたフラグ
AND r.created_by_id = -1 -- システムユーザーID
SQLクエリの説明
- パラメータ:
YYYY-MM-DD形式の:start_dateおよび:end_dateパラメータ。デフォルト値が含まれています。 - 結合:
reviewablesテーブルとpost_actionsテーブルを結合し、レビュープロセスを経たスパムフラグのみをカウントするようにします。 - フィルタリング:
post_action_type_id = 8: スパムフラグのみに制限します。- 指定されたパラメータによる日付範囲フィルタリング。
status IN (1, 2): 解決済み(承認または却下)のフラグのみを含めます。created_by_id = -1: システムユーザー(AIトリアージ)によって作成されたフラグのみを含めます。
- 集計:
total_flags: システムによるスパムフラグの総数。approved_flags: スタッフユーザーが承認したフラグの数(status = 1)。rejected_flags: スタッフユーザーが却下したフラグの数(status = 2)。approved_percentage: 承認されたフラグのパーセンテージ。rejected_percentage: 却下されたフラグのパーセンテージ。
結果例
| total_flags | approved_flags | rejected_flags | approved_percentage | rejected_percentage |
|---|---|---|---|---|
| 152 | 128 | 24 | 84.21 | 15.79 |