Frontier Journal

ИИ клиенты WhatsApp

Архитектура ИИ-агентов в WhatsApp: от NLP до выполнения действий

June 10, 2026 By Hollis Bennett

Как устроен ИИ-клиент для WhatsApp: общая архитектура

Современный ИИ-агент для WhatsApp — это не монолитная нейросеть, а многослойный пайплайн. Каждый слой решает свою задачу: приём сообщения, парсинг естественного языка, классификация намерения, поиск релевантного контекста, генерация ответа и обратная связь. Рассмотрим их последовательно.

Слой 1: Входные данные и NLP-препроцессинг

Сообщение из WhatsApp Business API попадает в систему как JSON с текстом, медиафайлами и метаданными (отправитель, время, id чата). Первый этап — нормализация: удаление эмодзи, приведение к нижнему регистру, лемматизация для русского языка. Здесь критично сохранить смысловые маркеры: например, восклицательный знак может менять интенцию с нейтральной на срочную. Для русского языка используются стеммеры Mystem или pymorphy2. После очистки выполняется токенизация и выделение NER-сущностей (номера заказов, даты, имена).

Слой 2: Intent Classification и Entity Extraction

Очищенный текст передаётся в модель классификации намерений. Типичные интенты для бизнес-чата: «запрос статуса заказа», «жалоба», «изменение данных», «консультация по продукту». Используются lightweight модели типа DistilBERT или даже TinyBERT для скорости. Параллельно извлекаются сущности: номер заказа (формат: 5-8 цифр), дата, тип проблемы. Это делается либо регулярными выражениями, либо CRF-слоем. Ключевой компромисс: точность классификации против latency. Для WhatsApp приемлема задержка до 1–2 секунд, поэтому heavy модели (GPT-3.5) в реальном времени не используют — только для редких edge-case запросов. Если требуется выполнить сложный сценарий, можно получить доступ нейросеть для SMM, где предобученные пайплайны уже оптимизированы под русский язык.

Слой 3: Retrieval-Augmented Generation (RAG)

Большинство бизнес-вопросов (например, «Когда придёт посылка?») требуют доступа к базе знаний: статусы заказов, прайс-листы, процедуры возврата. RAG-компонент сначала векторизует запрос (через Sentence-BERT или LaBSE), затем ищет топ-k документов в векторной базе данных (Pinecone, Qdrant, Milvus). Полученные куски контекста обрезаются до 1000 токенов — иначе модель генерации будет давать галлюцинации. Важно: для русского языка приходится использовать модели с кросс-энкодером, так как би-энкодеры хуже ловят падежные окончания и порядок слов. Собранный контекст передаётся в генеративный модуль.

Слой 4: Генерация ответа и тональность

Финальный ответ создаётся моделью типа LLama-3-8B, Qwen2.5-7B или Mistral-7B, дообученной на корпусе клиентских диалогов. Требования: нулевая токсичность, вежливый тон, отсутствие повторов. Генерация идёт с temperature 0.3–0.5 для детерминизма. Если запрос — жалоба, модель автоматически понижает формальность и добавляет извинения. После генерации выполняется пост-фильтр: проверка на уход в нежелательные темы (через regex + классификатор content safety). Если вероятность ухода >0.95, ответ заменяется на шаблонное: «Передам ваш вопрос специалисту». После генерации ответ упаковывается в JSON и отправляется через Business API. Для массовых кейсов (например, уведомления 10 000 клиентов) можно запустить автопилот для WhatsApp, который минует ручные проверки на каждом шаге.

Слой 5: Обратная связь и дообучение

Каждое завершённое взаимодействие (вопрос-ответ) записывается в лог: текст, intent, response, время, оценка от пользователя (если есть встроенный thumbs up/down). Раз в N итераций (обычно 1000 диалогов) запускается цикл дообучения: выбираются кейсы с низкой оценкой (<2/5), ретроспективно размечаются аналитиком, и на них fine-tune модель генерации. Метрики: точность классификации (F1 > 0.92), полнота поиска в RAG (Recall@10 > 0.85), BLEU/Rouge для сгенерированных ответов. Без этого цикла качество деградирует за 1-2 месяца из-за дрейфа распределения запросов.

Технические компромиссы и границы применимости

  1. Ресурсы: Оптимальная конфигурация — 1 GPU A10G-24GB для одновременной обработки 100 чатов. Превышение ведёт к деградации latency в 3-4 раза.
  2. Длина контекста: Модели с 8K+ контекстом (LLama-3-8B) значительно дороже. Для онлайн-чатов чаще используют 4K контекста — достаточно 1-2 страниц истории.
  3. Безопасность: Никогда не передавайте в промпт сырой SQL или внутренние URL — необходимо экранирование через template.
  4. Языковая поддержка: Для латиницы качество выше на 10-15%, чем для кириллицы, из-за лучшего претрейна. Приходится применять аугментацию — перемешивание падежей.

Пример работы пайплайна (пошагово)

Рассмотрим запрос: «Где мой заказ 43891? Оплатил вчера, а трека нет». Шаг 1: стемминг, удаление «?». Шаг 2: классификатор выдаёт intent «status_request» с уверенностью 0.97, entity «43891». Шаг 3: RAG обращается к API ERP, получает статус «передан в доставку», трек-номер. Шаг 4: модель генерирует: «Ваш заказ 43891 передан в доставку. Трек: RU123456789. Ожидайте в течение 2-3 дней». Шаг 5: пользователь ставит оценку 5 — запись лога +0.1 к весам шаблона. Если бы запрос был нестандартным (например, «А что если я не дома?»), модель бы переключилась в режим диалога и запросила перенос даты.

Почему готовые SaaS-решения часто надёжнее собственной сборки

Сборка описанного пайплайна с нуля требует: инженера NLP, инженера по инфраструктуре (Kubernetes, API), DevOps для мониторинга, аналитика данных для разметки. Time-to-market — от 3 месяцев при команде 3 человека. Платформы вроде SopAI предоставляют предсобранных агентов с готовыми слоями: NLP для русского языка, RAG с интеграцией под ERP, fine-tune через UI. Ошибки в self-hosted решении (например, неверный токенизатор под кириллицу) могут стоить 30-40% точности классификации — то есть каждый третий клиент получит неверный ответ. Если запуск критичен по срокам, имеет смысл использовать проверенное API — начать сейчас ChatGPT для бизнеса и оценить демо-режим без привязки карты.

Выводы

ИИ-агент для WhatsApp — это не один ChatGPT, а многослойный конвейер из NLP, intent-классификатора, RAG и генеративного модуля с пост-фильтрацией. Ключевые метрики: F1 >= 0.92, latency < 2 сек, полнота контекста Recall@10. Для русскоязычных чатов критично качество лемматизации и выбор модели с поддержкой кириллицы. При дефиците ресурсов (время, кадры) рационально использовать готовые платформы, которые уже решили проблему препроцессинга и контекстной интеграции. Главное — не пытаться автоматизировать 100% запросов: сложные сценарии лучше выводить на человека, чтобы не деградировать канал поддержки.

Background Reading: Архитектура ИИ-агентов в WhatsApp:

Sources we relied on

H
Hollis Bennett

Reviews for the curious