AI-система КПТ: автоматизация протоколов и трекинг прогресса

Ручное ведение протоколов КПТ разрывает поддержку между сессиями: дневники заполняются нерегулярно, а часть деталей теряется. Мы автоматизируем этот процесс, превращая упражнения в управляемый AI-процесс с трекингом прогресса. Наша команда реализует систему под ключ — от настройки ABC-модели до сопровождения, обеспечивая надёжную работу и последующую поддержку.
Часто задаваемые вопросы

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

Процесс внедрения

  1. Аналитика: изучаем текущие протоколы клиента, определяем приоритетные модули.
  2. Проектирование: адаптируем промпты, дизайн диалога, векторную базу.
  3. Реализация: пишем код, интегрируем с корпоративными системами (Bitrix24, Slack) для корпоративных программ ментального здоровья.
  4. Тестирование: QA с реальными пользователями, A/B-тесты точности выявления искажений.
  5. Деплой: установка на защищённые серверы, настройка мониторинга.

Что входит в работу и сроки

  • Готовые модули (дневник мыслей, поведенческая активация, экспозиция).
  • Интеграция с HR-платформами (Bitrix24, Slack) для корпоративных клиентов.
  • Мониторинг логов и качества ответов (W&B, MLflow).
  • Документация API и инструкции для пользователей.
  • Сопровождение в течение месяца после деплоя.

Сроки ориентировочно:

  • Базовые модули (дневник + поведенческая активация): 4–6 недель.
  • Полная платформа с трекингом и аналитикой: 10–14 недель.
  • Интеграция с существующими системами: +2 недели.

Этические ограничения и конфиденциальность

Система не работает с тяжёлой депрессией, суицидальными мыслями, психозами. Все эти случаи автоматически перенаправляются к специалисту. Мы гарантируем конфиденциальность данных: шифрование end-to-end, локальное хранение на серверах клиента. Опыт нашей команды — 5+ лет в AI/ML, более 10 проектов в сфере digital health.

Хотите оценить, как AI-система КПТ впишется в ваш продукт или корпоративную программу? Свяжитесь с нами — обсудим задачи и подготовим демо. Или закажите пилотный проект для вашей компании — мы предоставим доступ к демо-версии на 14 дней. Получите консультацию по внедрению AI-КПТ.

Направления AI-разработки

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1543
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1394
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1369
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    816
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1142