# Статистика по флагам спама, выявленным автоматизацией первичной обработки ИИ

**URL:** https://meta.discourse.org/t/statistics-on-spam-flags-reported-by-ai-triage-automation/368319
**Category:** Data & reporting
**Tags:** ai, sql-query, spam
**Created:** [31.Май.2025 02:25:31 UTC](https://meta.discourse.org/t/statistics-on-spam-flags-reported-by-ai-triage-automation/368319 "2025-05-31T02:25:31Z")
**Posts on this page:** 1
**Showing post:** 1

<div class="post-metadata">

### Author: ![pedro](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pedro/32/365099_2.png) [@pedro](https://meta.discourse.org/u/pedro)
#### Post date: [31.Май.2025 02:25:31 UTC](https://meta.discourse.org/t/statistics-on-spam-flags-reported-by-ai-triage-automation/368319/1 "2025-05-31T02:25:31Z")

</div>

Этот SQL-запрос предоставляет статистику по флагам спама, сгенерированным автоматизацией: [Discourse AI - AI triage](https://meta.discourse.org/t/discourse-ai-ai-triage/281227). Он вычисляет общее количество флагов, количество одобренных и отклоненных флагов, а также соответствующие проценты. Этот отчет полезен для понимания эффективности автоматического обнаружения спама на вашем форуме.

```sql
-- [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-запроса

- **Параметры** : Параметры `:start_date` и `:end_date` в формате `ГГГГ-ММ-ДД` со значениями по умолчанию.
- **Соединение (JOIN)**: Связывает таблицу `reviewables` с таблицей `post_actions`, чтобы учитывать только флаги спама, прошедшие процесс проверки.
- **Фильтрация** :
  - `post_action_type_id = 8`: Ограничивает выборку только флагами спама.
  - Фильтрация по диапазону дат с использованием указанных параметров.
  - `status IN (1, 2)`: Включает только флаги, которые были разрешены (одобрены или отклонены).
  - `created_by_id = -1`: Включает только флаги, созданные системным пользователем (AI triage).

- **Агрегация** :
  - `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 |

---

_[View the full topic](https://meta.discourse.org/t/statistics-on-spam-flags-reported-by-ai-triage-automation/368319)._
