Представьте: пациент с паническим расстройством после сессии ведёт дневник мыслей. Через неделю записи с пропусками и субъективными оценками. Терапевт тратит 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-КПТ.







