Ты — эксперт по NLP и модерации контента. Выполни задачу в двух независимых частях: детекция токсичных паттернов в сообщениях и проектирование практической ChatGPT-интеграции для масштабной обработки корпуса.
## Входные данные
- `messages` — массив объектов:
- `message_id`
- `timestamp` в ISO 8601
- `sender_id`
- `receiver_id`
- `text`
- `language` — если отсутствует, определи сам
- Объём — до `N` сообщений; решение должно масштабироваться до пакетной или потоковой обработки.
## Категории для детекции
- `condescension`
- `bullying`
- `age_discrimination`
## Жёсткие правила
- Не выводи необработанные персональные данные.
- Анонимизируй идентификаторы отправителей и получателей.
- Не публикуй полные номера, адреса и имена: замени их на маркеры вроде `[NAME]` и `[PHONE]`.
- Поддерживай мультиязычную классификацию.
- Не предлагай автоматические санкции при сомнительных случаях без `human review`.
## Часть A. Классификация сообщений
Для каждого сообщения верни объект с точной схемой:
```json
{
"message_id": "...",
"timestamp": "...",
"sender_hash": "...",
"labels": {
"condescension": {"label": 0, "score": 0.0, "spans": ["..."], "explanation": "..."},
"bullying": {"label": 0, "score": 0.0, "spans": ["..."], "explanation": "..."},
"age_discrimination": {"label": 0, "score": 0.0, "spans": ["..."], "explanation": "..."}
},
"recommended_action": "none",
"language": "ru",
"metadata": {"original_length": 0, "anonymized": true}
}
```
Для каждой категории обязательно укажи:
- бинарную метку;
- score 0.0–1.0;
- spans или фрагменты, на которых основан вывод;
- короткое объяснение;
- рекомендованное действие `none | review_by_human | warn_user | suspend | escalate`.
Отдельно собери агрегированную сводку:
```json
{
"time_range": {"start": "...", "end": "..."},
"total_messages": 0,
"total_flagged": {"condescension": 0, "bullying": 0, "age_discrimination": 0},
"top_senders_by_flags": [{"sender_hash": "...", "flags_count": 0}],
"monthly_trend": [{"month": "YYYY-MM", "condescension": 0, "bullying": 0, "age_discrimination": 0}],
"precision_estimate": {"condescension": 0.0, "bullying": 0.0, "age_discrimination": 0.0},
"recall_estimate": {"condescension": 0.0, "bullying": 0.0, "age_discrimination": 0.0},
"notes": "..."
}
```
Учитывай контекст цепочек: если `conversation_id` отсутствует, используй скользящее окно по времени и паре `sender / receiver`.
## Часть B. Практическая интеграция с ChatGPT
Опиши реализуемую систему обработки корпуса:
1. Предобработка: Unicode-нормализация, обработка emoji, URL, токенизация, язык.
2. Правила и лексиконы: триггеры, негативные конструкции, эвфемизмы.
3. Гибридный ML-пайплайн: rules → embeddings / semantic search → classifier → rationale / spans.
4. Сбор разметки, active learning и human-in-the-loop.
5. Batch / streaming-инфраструктура, очередь на ручную проверку, векторное хранилище, база меток.
6. Временной и пользовательский контекст: кластеры инцидентов и тренды.
7. Объяснимость, уменьшение ложных срабатываний, аудит и bias-check.
Обязательно предложи минимум 5 конкретных функций или шаблонов:
- `rapid_classify_batch(messages_chunk)`
- `extract_rationale(message, label)`
- `summarize_user_history(sender_hash, timespan)`
- `detect_trending_incidents(time_window)`
- `generate_review_queue(threshold_low, threshold_high)`
Для каждой функции дай:
- ожидаемый вход;
- ожидаемый выход;
- JSON-схему;
- пример вызова;
- пример ответа.
## Метрики и валидация
- precision / recall / F1 по каждой категории;
- confusion matrix;
- ROC AUC, где уместно;
- оценка качества span extraction;
- A/B-тестирование и непрерывное улучшение через human review.
## Формат итогового ответа
1. Полный JSON с метками по сообщениям.
2. Отдельный JSON-объект со сводкой.
3. Документ с методами внедрения, порогами, шаблонами промптов и планом валидации.
Если корпус слишком велик для одного запроса, сначала выдай практическую схему пакетной обработки и пример псевдокода сборки результатов.