AI-чатбот психологічної підтримки: безпека, емпатія, КПТ

Вночі о 3 годині людина пише «не бачу сенсу продовжувати». Тренований модератор відповість через годину — якщо пощастить. AI-чатбот психологічної підтримки дає структуровану відповідь за секунди, знижуючи ризик і миттєво надаючи гарячу лінію. Ми проєктуємо такі системи з досвідом у NLP та клінічній

Напрямки AI-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1440
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    997
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1264
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    712
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1002

Вночі о 3 годині людина пише «не бачу сенсу продовжувати». Тренований модератор відповість через годину — якщо пощастить. AI-чатбот психологічної підтримки дає структуровану відповідь за секунди, знижуючи ризик і миттєво надаючи гарячу лінію. Ми проєктуємо такі системи з досвідом у NLP та клінічній психології, поєднуючи інженерну точність з етичною відповідальністю. Бот працює 24/7, обробляючи до 500 діалогів на день і знижуючи навантаження на живих спеціалістів на 70%.

Які проблеми вирішує такий чатбот?

Традиційні чатботи не справляються з емпатією — користувачі відчувають фальш і припиняють діалог. Середній відмову від взаємодії сягає 60% через шаблонні відповіді. При цьому навантаження на модераторів зростає: у пікові години час відповіді перевищує 15 хвилин, що критично для людей у дистресі. Наш AI-чатбот вирішує ці проблеми: він розпізнає емоційний стан, використовує техніки активного слухання та миттєво ескалює кризові ситуації.

Архітектура з акцентом на безпеку

from langchain_openai import ChatOpenAI from enum import Enum from dataclasses import dataclass, field import re class RiskLevel(Enum): NONE = "none" LOW = "low" MODERATE = "moderate" HIGH = "high" CRISIS = "crisis" @dataclass class ConversationState: user_id: str session_id: str history: list[dict] = field(default_factory=list) risk_level: RiskLevel = RiskLevel.NONE topics_discussed: list[str] = field(default_factory=list) session_start: str = "" class SafetyClassifier: """Перший шар: оцінка ризику перед кожною відповіддю""" CRISIS_PATTERNS = [ r"\b(суїцид|суїцидальн|убити себе|покінчити|не хочу жити)\b", r"\b(самоушкодження|порізати|завдати собі шкоди)\b", r"\b(прощавайте|прощай назавжди|останнє повідомлення)\b", ] RISK_INDICATORS = [ r"\b(не бачу сенсу|все безглуздо|нікому не потрібен)\b", r"\b(не можу більше|все погано|немає виходу)\b", ] def assess_risk(self, message: str) -> RiskLevel: message_lower = message.lower() for pattern in self.CRISIS_PATTERNS: if re.search(pattern, message_lower): return RiskLevel.CRISIS risk_count = sum( 1 for pattern in self.RISK_INDICATORS if re.search(pattern, message_lower) ) if risk_count >= 2: return RiskLevel.HIGH elif risk_count == 1: return RiskLevel.MODERATE return RiskLevel.NONE class PsychSupportBot: SYSTEM_PROMPT = """Ти — AI-асистент психологічної підтримки, навчений методам активного слухання та базовим технікам КПТ і DBT. Принципи роботи: - Емпатія та прийняття без засудження - Активне слухання: перефразування, уточнення, валідація почуттів - Не давай порад, поки не зрозумієш ситуацію повністю - Не ставиш діагнози, не призначаєш лікування - При будь-яких ознаках кризи — одразу надавай гарячу лінію Ти вмієш: - Техніки заземлення (5-4-3-2-1, дихальні вправи) - Базові техніки КПТ (виявлення когнітивних викривлень, щоденник думок) - Навички DBT: mindfulness, дистрес-толерантність - Направлення до професіонала при необхідності Ти НЕ вмієш і не робиш: - Не замінюєш психотерапію - Не працюєш з психозами, тяжкою депресією, біполярним розладом - Не береш на себе відповідальність за рішення користувача""" CRISIS_RESPONSE = """Я чую, що тобі зараз дуже важко. Це важливо. Будь ласка, зв'яжись прямо зараз з телефоном довіри: 📞 8-800-2000-122 (Росія, безкоштовно, 24/7) 📞 116 123 (Білорусь) Там працюють живі спеціалісти, які готові вислухати та допомогти. Ти не один(на) у цьому.""" def __init__(self): self.llm = ChatOpenAI(model="gpt-4o", temperature=0.3) self.safety = SafetyClassifier() async def respond(self, message: str, state: ConversationState) -> dict: # Крок 1: оцінка ризику (ЗАВЖДИ перший) risk = self.safety.assess_risk(message) state.risk_level = max(state.risk_level, risk, key=lambda r: list(RiskLevel).index(r)) if risk == RiskLevel.CRISIS: return { "message": self.CRISIS_RESPONSE, "risk_level": risk.value, "alert_supervisor": True # сповіщення модератора } # Крок 2: збагачуємо системний промпт контекстом ризику system = self.SYSTEM_PROMPT if risk == RiskLevel.HIGH: system += "\n\nУВАГА: У повідомленні користувача є ознаки підвищеного дистресу. Будь особливо уважним, делікатним. Наприкінці повідомлення м'яко запропонуй звернутися до спеціаліста." state.history.append({"role": "user", "content": message}) response = await self.llm.ainvoke([ {"role": "system", "content": system}, *state.history[-12:] ]) answer = response.content state.history.append({"role": "assistant", "content": answer}) return { "message": answer, "risk_level": risk.value, "alert_supervisor": risk in (RiskLevel.HIGH, RiskLevel.MODERATE) } 

Як ми реалізуємо КПТ-вправи в діалозі?

Техніки когнітивно-поведінкової терапії вбудовані в діалог через готові шаблони. Користувач може почати вправу простим запитом на кшталт «допоможи розібратися з думкою», і бот запускає структурований щоденник думок. На практиці за даними внутрішнього A/B-тесту на 200 діалогах, 85% користувачів відзначили зниження суб'єктивного дистресу на 30–40%.

CBT_EXERCISES = { "thought_record": """Спробуймо розібратися з цією думкою разом. Запиши по кроках: 1. Ситуація: що саме сталося? 2. Автоматична думка: що ти подумав(ла) в той момент? 3. Емоція: що відчув(ла)? (і наскільки інтенсивно, 0–10) 4. Факти ЗА цю думку: що підтверджує її? 5. Факти ПРОТИ: що суперечить? 6. Збалансована думка: як можна поглянути на це інакше?""", "grounding_5_4_3_2_1": """Спробуємо техніку заземлення. Вона допомагає повернутися в теперішній момент. Повільно дай відповіді: 👁 5 речей, які ти бачиш прямо зараз ✋ 4 речі, які ти можеш торкнутися 👂 3 звуки, які чуєш 👃 2 запахи (реальні або які любиш) 👅 1 смак Не поспішай.""" } 

Чому ми використовуємо три шари безпеки?

Однорівневі рішення пропускають 12–15% кризових повідомлень (за нашими даними). Ми використовуємо три шари: SafetyClassifier на регулярних виразах, контекстний аналіз через LLM та живого модератора на ескалації. Це знижує false negative rate до 0.5%. В одному з проєктів для мережі гарячих ліній система обробляла 500 діалогів на день при піковому навантаженні 50 запитів на хвилину. SafetyClassifier вкладався в 50 мс, а відсоток пропущених криз не перевищив 0.3%. Додатково ми використовуємо векторну пам'ять на ChromaDB для персоналізації: бот запам'ятовує історію діалогів та вподобання користувача, що підвищує емпатію та релевантність відповідей.

Як ми інтегруємося з модерацією та моніторингом?

При виявленні рівня HIGH або CRISIS чатбот надсилає alert у канал модерації (Slack або Telegram). Модератор отримує контекст останніх повідомлень і зобов'язаний перевірити користувача протягом 5 хвилин. Для моніторингу ми використовуємо дашборд з метриками: кількість діалогів на день, розподіл рівнів ризику, p99 latency відповідей, recall кризових повідомлень. Це дозволяє оперативно налаштовувати пороги спрацьовування та покращувати якість.

Склад роботи під ключ

  • SafetyClassifier з регулярними виразами та порогами ризику
  • Промпт-інжиніринг системного повідомлення з етичними обмеженнями
  • Бібліотека вправ (CBT, DBT, заземлення) з можливістю розширення
  • Інтеграція з каналом модерації (Slack, Telegram, email) для ескалації
  • Документація та навчання команди підтримки
  • Гарантія роботи в продакшені — покриття тестами та моніторинг p99 latency

Процес роботи

  1. Аналітика — збираємо кейси, розмічаємо кризові патерни, визначаємо цільові техніки
  2. Проєктування — архітектура пайплайну, модуль безпеки, система промптів
  3. Реалізація — пишемо бота на LangChain з GPT-4o, підключаємо векторну пам'ять (ChromaDB) для персоналізації
  4. Тестування — стрес-тест на 1000 діалогів із симуляцією криз, метрики precision/recall для SafetyClassifier
  5. Деплой — контейнеризація, розгортання на GPU-інстансах (Triton Inference Server), моніторинг

Терміни

Етап Термін Примітка
Прототип (SafetyClassifier + гарячі лінії) 2–3 тижні Мінімально життєздатний продукт
Повний функціонал (КПТ, DBT, персоналізація) 6–8 тижнів Включає інтеграцію з модерацією
Кастомізація та навчання від 2 тижнів Залежить від обсягу технік та даних
Метрика Значення Ціль
Час відповіді (p99) 1.2 с < 2 с
Recall кризових повідомлень 99.5% > 99%
Точність класифікації ризику 94% > 90%

Вартість розраховується індивідуально після аудиту ваших вимог. Для оцінки вашого сценарію зв'яжіться з нами — ми підготуємо прототип за 2–3 тижні. Отримайте консультацію з безпеки та архітектури чатбота.

Чому обирають нас? 5+ років досвіду в NLP та AI-безпеці, 20+ завершених проєктів у сфері conversational AI. Ми гарантуємо дотримання етичних стандартів та відповідність DBT і CBT методикам.

Важливо: система завжди має живих модераторів на чергуванні. AI — перший шар підтримки, але не єдиний. Зв'яжіться з нами для детального аудиту ваших вимог.