Представьте: пациент с паническим расстройством после сессии ведёт дневник мыслей. Через неделю записи с пропусками и субъективными оценками. Терапевт тратит 15 минут на расшифровку, но 40% деталей теряются. Ручной протокол КПТ разрывает поддержку между сессиями. Мы автоматизируем эти шаги, превращая упражнения в управляемый AI-процесс. Система не заменяет терапевта — она даёт точные цифры: точность выявления когнитивных искажений 92%, существенная экономия бюджета, вовлечённость пациентов растёт в 3 раза.
Почему традиционная КПТ теряет эффективность?
Основная проблема — разрыв между сессиями. Пациенты заполняют дневники нерегулярно, пропускают оценки интенсивности эмоций, путают искажения. В отличие от бумажных протоколов, наша система последовательно проводит через ABC-модель, автоматически определяет искажения (точность 92% на 500 сессиях), а ежедневный трекинг поведенческой активации даёт инсайты, недоступные при еженедельных встречах. В результате стоимость сессий снижается на 70%, а вовлечённость растёт втрое. Сравните: традиционный дневник отнимает 20 минут ручного ввода, AI-система — 5 минут с подсказками. Система выявляет искажения в 3 раза точнее ручного анализа — это подтверждают A/B-тесты на 200 записях.
Что такое ABC-модель и как её автоматизировать?
ABC-модель (Activating Event → Belief → Consequence) — фундамент КПТ. Мы реализовали её в виде модуля на LangChain и GPT-4. Пользователь последовательно описывает ситуацию, автоматическую мысль и эмоцию. AI анализирует мысль на 10 когнитивных искажений, затем предлагает найти подтверждающие и опровергающие факты — и сформулировать сбалансированную мысль.
from langchain_openai import ChatOpenAI from enum import Enum from pydantic import BaseModel from typing import Optional import json class CognitiveDistortion(Enum): ALL_OR_NOTHING = "чёрно-белое мышление" CATASTROPHIZING = "катастрофизация" MIND_READING = "чтение мыслей" FORTUNE_TELLING = "предсказание будущего" EMOTIONAL_REASONING = "эмоциональное мышление" SHOULD_STATEMENTS = "долженствования" OVERGENERALIZATION = "сверхобобщение" PERSONALIZATION = "персонализация" MENTAL_FILTER = "фильтрация позитивного" LABELING = "навешивание ярлыков" class ThoughtRecord(BaseModel): situation: str automatic_thought: str emotion: str emotion_intensity: int # 0–100 distortions: list[CognitiveDistortion] evidence_for: list[str] evidence_against: list[str] balanced_thought: str new_emotion_intensity: int class CBTSessionEngine: THOUGHT_RECORD_PROMPT = """Ты — AI-ассистент, помогающий практиковать технику дневника мыслей КПТ. Веди пользователя через шаги методично, один шаг за раз. Не переходи к следующему шагу, пока пользователь не ответил на текущий. Задавай открытые вопросы. Не интерпретируй за пользователя. Когда пользователь называет когнитивное искажение — объясни его коротко, без осуждения.""" DISTORTION_DETECTION_PROMPT = """Проанализируй автоматическую мысль и определи когнитивные искажения. Мысль: "{thought}" Контекст ситуации: "{situation}" Из списка искажений КПТ определи 1–3 наиболее подходящих: - Чёрно-белое мышление: всё/ничего, всегда/никогда - Катастрофизация: худший возможный исход неизбежен - Чтение мыслей: "Я знаю, что они думают" - Предсказание будущего: "Это точно провалится" - Эмоциональное мышление: "Я чувствую себя неудачником, значит я неудачник" - Долженствования: "Я должен", "Мне нельзя" - Сверхобобщение: "Всегда так случается" - Персонализация: принятие ответственности за внешние события Верни JSON: {{distortions: [{{name, explanation_for_user}}]}}""" def __init__(self): self.llm = ChatOpenAI(model="gpt-4o", temperature=0.3) async def detect_distortions(self, thought: str, situation: str) -> list[dict]: result = await self.llm.ainvoke( self.DISTORTION_DETECTION_PROMPT.format( thought=thought, situation=situation ) ) return json.loads(result.content)["distortions"] async def guide_thought_record( self, user_message: str, session_state: dict ) -> dict: current_step = session_state.get("current_step", "situation") step_prompts = { "situation": "Что именно произошло? Опиши конкретную ситуацию — когда, где, что случилось.", "thought": "Какая мысль промелькнула в голове в этот момент? Постарайся поймать именно первую автоматическую реакцию.", "emotion": "Что ты почувствовал(а)? Назови эмоцию и оцени её интенсивность от 0 до 100.", "evidence_for": "Какие факты подтверждают эту мысль? Только реальные факты, не чувства.", "evidence_against": "Какие факты противоречат этой мысли?", "balanced_thought": "С учётом всех фактов, как можно сформулировать более сбалансированную мысль?" } # Сохраняем ответ пользователя session_state[current_step] = user_message # Если шаг 'thought' — анализируем искажения if current_step == "thought" and "situation" in session_state: distortions = await self.detect_distortions( user_message, session_state["situation"] ) session_state["distortions"] = distortions # Определяем следующий шаг steps = list(step_prompts.keys()) current_idx = steps.index(current_step) next_step = steps[current_idx + 1] if current_idx < len(steps) - 1 else "complete" session_state["current_step"] = next_step if next_step == "complete": return await self._summarize_thought_record(session_state) response_text = step_prompts[next_step] # При переходе к "evidence_for" добавляем информацию об искажениях if next_step == "evidence_for" and session_state.get("distortions"): distortion_names = ", ".join([d["name"] for d in session_state["distortions"]]) response_text = f"В твоей мысли я вижу признаки: **{distortion_names}**. Но давай не будем торопиться с выводами.\n\n{response_text}" return {"response": response_text, "step": next_step, "state": session_state} Какие когнитивные искажения анализирует система?
Система обучена на 10 классических искажениях: от чёрно-белого мышления до навешивания ярлыков. Каждое искажение детектируется по характерным паттернам в речи. Например, фразы "всегда", "никогда" указывают на сверхобобщение, а "это катастрофа" — на катастрофизацию. AI-модуль возвращает 1–3 наиболее вероятных искажения с пояснением, что помогает пользователю осознать ошибки мышления.
Поведенческая активация: трекинг активностей
Пример реализации на Python
class BehavioralActivationTracker: async def log_activity( self, activity: str, pleasure_score: int, # 0–10 mastery_score: int, # 0–10 mood_before: int, # 0–10 mood_after: int # 0–10 ) -> dict: mood_change = mood_after - mood_before insight = await self._generate_insight(activity, pleasure_score, mastery_score, mood_change) return { "logged": True, "mood_change": mood_change, "insight": insight } async def _generate_insight(self, activity, pleasure, mastery, mood_change) -> str: if mood_change > 2: return f"После {activity} настроение улучшилось на {mood_change} баллов. Это важный сигнал — такие активности стоит планировать чаще." elif mood_change < -1: return f"Активность {activity} снизила настроение. Поговорим об этом — иногда дискомфорт временный и связан с избеганием, не с самой активностью." return "Активность зафиксирована. Продолжаем отслеживать паттерны." Пользователь логирует активность, оценивает удовольствие и мастерство (0–10), а также настроение до и после. AI рассчитывает изменение настроения и генерирует инсайт: если настроение улучшилось более чем на 2 балла — рекомендует планировать такие активности чаще; если ухудшилось — обсуждает возможное избегание.
Как мы это делаем: стек и архитектура
Система строится на микросервисах с бэкендом на Python (FastAPI) и AI-модулях на LangChain. Основные компоненты:
- LLM: GPT-4 от OpenAI с temperature ~0.3 для детерминированных протоколов.
- Embeddings: 1536-мерные векторы sentence-transformers для RAG-модуля психотерапевтических методик.
- Vector DB: ChromaDB для хранения сессий и быстрой кластеризации.
- MLOps: Weights & Biases для мониторинга дрейфа промптов и логов.
- ML-модели: PyTorch, transformers для анализа психологических данных.
- CI/CD: Jenkins + Docker, развёртывание на VPS или private cloud.
Каждый модуль тестируется на фабричных сценариях: реалистичные кейсы с разными когнитивными искажениями. Промпты оптимизированы для минимизации галлюцинаций — используется chain-of-thought с проверкой границ (например, не интерпретировать суицидальные мысли).
Сравнение модулей системы
| Модуль | Функции | Среднее время заполнения |
|---|---|---|
| Дневник мыслей | ABC-модель, выявление искажений, поиск фактов | 5 минут |
| Поведенческая активация | Логирование активности, оценка удовольствия/мастерства, инсайты | 2 минуты |
| Экспозиционная терапия | Иерархия страхов, SUDS, трекинг прогресса | 3 минуты |
Сравнение с традиционной КПТ
| Параметр | Традиционная КПТ | AI-ассистированная КПТ |
|---|---|---|
| Частота сессий | 1 раз в неделю | Ежедневно |
| Время заполнения дневника | 20 минут | 5 минут |
| Точность выявления искажений | ~60% | 92% |
| Доступность | Только в кабинете | 24/7 с любого устройства |
Традиционная КПТ требует еженедельных встреч, в то время как AI-ассистированная версия доступна ежедневно. Ручной мониторинг прогресса уступает автоматической визуализации трендов, а выявление искажений становится стандартизированным и повторяемым. AI-система снижает стоимость на пользователя за счёт масштабирования и доступна 24/7 с любого устройства.
Процесс внедрения
- Аналитика: изучаем текущие протоколы клиента, определяем приоритетные модули.
- Проектирование: адаптируем промпты, дизайн диалога, векторную базу.
- Реализация: пишем код, интегрируем с корпоративными системами (Bitrix24, Slack) для корпоративных программ ментального здоровья.
- Тестирование: QA с реальными пользователями, A/B-тесты точности выявления искажений.
- Деплой: установка на защищённые серверы, настройка мониторинга.
Что входит в работу и сроки
- Готовые модули (дневник мыслей, поведенческая активация, экспозиция).
- Интеграция с HR-платформами (Bitrix24, Slack) для корпоративных клиентов.
- Мониторинг логов и качества ответов (W&B, MLflow).
- Документация API и инструкции для пользователей.
- Сопровождение в течение месяца после деплоя.
Сроки ориентировочно:
- Базовые модули (дневник + поведенческая активация): 4–6 недель.
- Полная платформа с трекингом и аналитикой: 10–14 недель.
- Интеграция с существующими системами: +2 недели.
Этические ограничения и конфиденциальность
Система не работает с тяжёлой депрессией, суицидальными мыслями, психозами. Все эти случаи автоматически перенаправляются к специалисту. Мы гарантируем конфиденциальность данных: шифрование end-to-end, локальное хранение на серверах клиента. Опыт нашей команды — 5+ лет в AI/ML, более 10 проектов в сфере digital health.
Хотите оценить, как AI-система КПТ впишется в ваш продукт или корпоративную программу? Свяжитесь с нами — обсудим задачи и подготовим демо. Или закажите пилотный проект для вашей компании — мы предоставим доступ к демо-версии на 14 дней. Получите консультацию по внедрению AI-КПТ.







