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

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

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

LLM та генеративний AIСкладний~2-4 тижні
Часті запитання

Уявіть: пацієнт з панічним розладом після сесії веде щоденник думок. Через тиждень записи з пропусками та суб’єктивними оцінками. Терапевт витрачає 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
    1374
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142