Искусственный интеллект, Автоматизация | Даниил Шмитт, Алексей Коробов
Когда ресурсы подразделения на исходе, а нагрузка растёт, искусственный интеллект становится не просто инструментом, а спасательным кругом. Партнёр Школы Траблшутеров Даниил Шмитт и ученик Алексей Коробов раскрывают кейс: как создать сервис, который передаёт рутину алгоритмам и сохраняет теплоту общения, оставаясь инкогнито.

В декабре 2024 года ДаБанкрот.рф, федеральный лидер в сопровождении процедур банкротства, столкнулась с критической задачей: снизить нагрузку на подразделение сопровождения, сохранив уровень сервиса. Ежедневно служба поддержки обрабатывала 100–300 обращений в часы пик.
Увеличение штата или аутсорсинг задач, как неэффективные и дорогостоящие альтернативы, не рассматривались. Руководитель ИТ-департамента Александр поставил цель: внедрить виртуального помощника, который ускорит реакцию, сохранив человеческое тепло в общении.
Идеальный конечный результат (ИКР) сформулировали так: ускорить время реакции и снизить нагрузку на службу сервиса компании в ключевых процессах:
- Заключение договора на поддержку в прохождении процедуры банкротства.
- Юридическое сопровождение: подготовка к судебным заседаниям.
- Поддержка в процессе банкротства.
- Обработка лидов.
В результате создали ИИ-ассистента и назвали его – «Майя Аилова – помощник по сопровождению». Выполнили ключевые требования заказчика: сберегли тёплые человеческие отношения с клиентом и сохранили инкогнито виртуального ассистента.
Процессы первой линии поддержки передали ИИ:
Получили ожидаемый экономический эффект – внедрение ИИ оказалось сопоставимо с наймом четырех сотрудников технической поддержки, работающих 24 на 7 без праздников и выходных. Сотрудники компании признали Майю Аилову эталоном автоматизации в юриспруденции.
В начале проекта стояла задача обучить виртуального помощника, чтобы он релевантно и оперативно отвечал на вопросы о взаимодействии клиента и компании в рамках процедуры банкротства. Готовил ответы с опорой на контекст текущего процесса и данные в базе CRM.
Выработали решение и определили стек технологий:
- n8n.io – ИИ Агент с обучаемыми модулями – Retrieval-Augmented Generation (RAG).
- supabase.com – платформа запуска приложений на базе ИИ с открытым исходным кодом. Интеграция проектов ИИ с базами данных Postgres, аутентификации, мгновенных API, пограничных функций, подписок в реальном времени, хранилища и векторных внедрений.
- openai.com – ИИ. Выбор модели, распознавание текста, аудио, скриншоты с текстом. Имитация максимально приближенных к эксперту ответов.
- cloud.llamaindex.ai – сервис распознавания многостраничных документов.
На первом этапе собрали базу для обучения языковой модели:
- Cases.txt – пользовательские истории и сценарии общения с клиентом из реальной жизни. На их основе осуществляется тестирование на этапе разработка и принимается решение об успешности проекта.
- FAQ.txt – ответы на частые вопросы – накопленный опыт компании, собранный из статей сайта и транскрибации видео роликов с YouTube канала.
- Zakon.txt – гражданский кодекс РФ.
- Книга знаний – учебное пособие компании. Документ, созданный для адаптации новых специалистов поддержки.
На втором этапе провели разметку, преобразовав входные данные к приемлемому для ИИ виду:
- FAQ1 – сценарии процесса №14 в виде пользовательской таблицы.
- Сценарии с переменными из CRM – пользовательская таблица.
- n8n_chat_history – создаётся n8n при установке глубины контекста, системная таблица.
- people_history – определяет первое обращение за день, пользовательская таблица.
Три месяца разработки и тестирования закончилось созданием схемы ИИ с 175 узлами, из которых 23 уникальных типов:
Узлы:
- n8n-nodes-base.httpRequest (10) – выполняет HTTP-запросы (GET, POST и др.) к внешним API. Используется для отправки данных или получения информации, например, к https://bitrix.da-bankrot.ru или api.cloud.llamaindex.ai.
- n8n-nodes-base.webhook (2) – принимает входящие вебхуки, запуская рабочий процесс. Примеры: «файлы» и «текст» с уникальными webhookId для обработки разных типов данных.
- n8n-nodes-base.wait (2) – приостанавливает выполнение процесса на заданное время или до события. Используется для синхронизации, например, «Wait» перед проверкой статуса.
- n8n-nodes-base.switch (2) – условно разделяет поток данных на основе заданных правил. Например, «Switch1» проверяет статус (SUCCESS, ERROR) для маршрутизации.
- n8n-nodes-base.aggregate (7) – объединяет данные из нескольких элементов в один набор. Пример: «Aggregate1» собирает все данные для дальнейшей обработки.
- n8n-nodes-base.merge (18) – комбинирует данные из нескольких источников. Пример: «Merge» объединяет данные по позиции для передачи в следующий узел.
- n8n/n8n-nodes-langchain.agent (6) – выполняет сложные задачи с использованием ИИ-агента. Пример: «AI Agent» обрабатывает текст с подключением к векторному хранилищу и OpenAI.
- n8n/n8n-nodes-langchain.lmChatOpenAi (14) – интеграция с OpenAI для обработки текста (чат-модель). Пример: «OpenAI Chat Model» использует gpt-4o с настройками температуры и penalty.
- n8n/n8n-nodes-langchain.memoryPostgresChat (11) – управляет памятью чата, сохраняя контекст в PostgreSQL. Пример: «Postgres Chat Memory1» привязан к dialog_id для сохранения истории.
- n8n/n8n-nodes-langchain.embeddingsOpenAi (10) – создаёт векторные представления текста с помощью OpenAI. Пример: «Embeddings OpenAI1» использует модель text-embedding-3-large.
- n8n/n8n-nodes-langchain.toolVectorStore (3) – инструмент для работы с векторным хранилищем. Пример: «Vector Store Tool» извлекает данные о банкротстве из Supabase.
- n8n/n8n-nodes-langchain.vectorStoreSupabase (9) – хранит и извлекает векторные данные из Supabase. Пример: «Supabase Vector Store» подключен к таблице documents.
- n8n/n8n-nodes-langchain.openAi (5) – выполняет задачи анализа текста, изображений или аудио через OpenAI. Пример: «OpenAI_Photo1» анализирует изображения.
- n8n/n8n-nodes-langchain.textClassifier (5) – классифицирует текст по заданным категориям. Пример: «Text Classifier» определяет относится ли текст к office или Aggressive.
- n8n-nodes-base.postgres (13) – выполняет запросы к базе данных PostgreSQL. Пример: «Postgres» записывает данные в таблицу people_history.
- n8n-nodes-base.set (3) – устанавливает или изменяет значения полей в данных. Пример: «Edit Fields» задает параметры, такие как dialog_id, text1.
- n8n-nodes-base.if (17) – условное ветвление потока на основе заданных условий. Пример: «If» проверяет тип файла (image) для дальнейшей обработки.
- n8n/n8n-nodes-langchain.chainSummarization (1) – выполняет суммаризацию текста. Пример: «Summarization Chain» сокращает текст с помощью подключенной модели OpenAI.
- n8n-nodes-base.code (34) – выполняет пользовательский JavaScript-код для обработки данных. Пример: «Code3» может преобразовывать данные перед merge.
- n8n/n8n-nodes-langchain.chatMemoryManager (19) – управляет памятью чата, связывая данные с внешними запросами. Пример: «Chat Memory Manager» отправляет данные в HTTP-запрос.
- n8n-nodes-base.limit (1) – ограничивает количество элементов в потоке данных. Пример: «Limit1» ограничивает вывод из векторного хранилища.
- n8n/n8n-nodes-langchain.chainQuestionAnswering (2) – отвечает на вопросы, используя данные из векторного хранилища. Пример: «Question and Answer Chain» отвечает на запросы.
- n8n/n8n-nodes-langchain.vectorStoreRetriever (1) – извлекает данные из векторного хранилища для ответа на запросы. Пример: «Vector Store Retriever2» работает с Supabase.
Усовершенствовали блок CRM:
- Управление использованием ИИ в открытых линиях на двух уровнях:
- в коде указываем список идентификаторов открытых линий, в которых допустимо использовать ИИ
- на уровне сделок и лидов – управляем реквизитом UF_AIPermission, позволяя менеджерам отключать конкретных клиентов от общения с ИИ.
- Механика «delay» – задержка в 2 минуты: не посылаем ответ мгновенно. Так даём возможность перехватить ответ оператору и отвечать не построчно на каждое предложение, а подкопить обращения и направить ответ на группу запросов.
- Если менеджер ответил в течение дня – ИИ перестаёт отвечать, очередной ответ будет на следующий день. За исключением случаев, когда будет новый запрос или если менеджер не ответит до конца предыдущего дня.
- Добавлять сотрудников в диалог открытых линий и обратно – иначе ИИ забирает диалог на себя.
- Ограничение использования ИИ по открытым линиям на период тестирования.
- Отдельные чаты с уведомлениями об отладке контура ИИ.
- ИИ подключен как чат-бот.
Обучили RAG LLM отвечать на общие вопросы, несколько примеров:
Что такое банкротство физических лиц?
Это юридическая процедура, позволяющая списать долги, если человек признан неплатежеспособным. Позволяет освободиться от задолженности и начать финансовую жизнь с чистого листа. Юридическая процедура регулируется Федеральным законом № 127-ФЗ «О несостоятельности (банкротстве)».
Признает ли суд банкротом, если у меня высокая зарплата?
Да, суд может признать вас банкротом, но процедура будет проходить с особенностями. В случае высокой зарплаты может быть введен этап реструктуризации долгов – кредиторы предложат условия по погашению займов. Если согласитесь на условия, имущество продавать не нужно.
Что такое план реструктуризации долгов, как он работает?
Это соглашение с кредиторами о новых условиях погашения долгов. Он должен быть экономически обоснованным и исполнимым. Если вы согласитесь на план, долги могут быть уменьшены, а имущество не будет продано. План должен быть согласован с кредиторами и одобрен судом.
Ответы на основе данных из CRM:
Куда перечислить разницу в конкурсную массу?
Карта финансового управляющего для перечисления разницы в конкурсную массу [2202 0700 1234 5678] [Иванов Иван Иванович]. В сообщении получателю ОБЯЗАТЕЛЬНО укажите «Разница ФИО».
Когда со мной свяжется мой персональный менеджер?
Ваш персональный менеджер [Федор Алексеевич Белых] свяжется с вами в течение 10–15 минут, спасибо за понимание.
Распознавание аудиофайлов и картинок с классификацией:
- Платежные документы – чеки, квитанции.
- Обращения в суд.
- Решение суда о банкротстве.
- Письма от кредиторов.
- Заявление от кредиторов.
В ходе реализации проекта возникали проблемы:
- Вопросы идентичные по содержанию – ответ зависит от этапа внутри текущего процесса поддержки.
- Агрессия со стороны клиента – создали «заглушки». При достижении определенного уровня агрессии ИИ перестает отвечать, обращение переводится на оператора.
- Несколько приветствий в течение дня со стороны клиента – обучили систему реагировать первый раз, повторно здоровается.