AI-заполнение карточки клиента после звонка: разработка системы

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1Все 1564 услуг
AI-заполнение карточки клиента после звонка: разработка системы
Средний
~5 дней
Часто задаваемые вопросы

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

Этапы разработки AI-решения

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

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1360
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1251
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    957
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1188
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    646
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    929

Клиент звонит, называет имя, просит перенести встречу, уточняет адрес. Оператор лихорадочно открывает карточку, переключается между полями, что-то забывает, потом переспрашивает. Знакомая ситуация? Мы решили её — AI автоматически заполняет карточку клиента после звонка, извлекая все структурированные данные из транскрипта. Наша система работает с любыми CRM через REST API и обеспечивает точность извлечения до 95% при уверенности модели. Она разработана на основе 10+ лет опыта в AI и NLP, и более 50 успешных проектов по автоматизации CRM.

Каждый ручной ввод — это 2-3 минуты времени оператора и риск ошибки: забытый email, перепутанный адрес, потерянная договорённость. AI справляется за 2-3 секунды, а оператору остаётся только подтвердить данные. В результате время обработки звонка сокращается на 80%, а ошибки ввода практически исчезают. Система не затирает старые данные при слиянии — умный merge сохраняет существующую информацию, если уверенность в новом значении низкая.

Как AI извлекает данные из звонка?

Система использует NER (Named Entity Recognition) на базе GPT-4o. После звонка транскрипт подаётся в модель, которая возвращает JSON с полями карточки и оценкой уверенности для каждого поля. Пример извлечения:

async def extract_entities_from_call(transcript: str) -> dict:
    """Извлекаем структурированные данные из диалога"""
    response = await client.chat.completions.create(
        model="gpt-4o",
        messages=[{
            "role": "system",
            "content": """Извлеки из текста звонка следующие данные (если упоминались):
            - customer_name: полное имя клиента
            - address: адрес доставки/проживания
            - email: email адрес
            - phone_secondary: дополнительный телефон
            - order_details: детали заказа/запроса
            - complaint_description: описание проблемы
            - preferred_contact_time: удобное время для связи
            - product_interest: интересующие продукты/услуги
            - next_appointment: дата/время следующего контакта
            - notes: важные заметки

            Верни JSON. Поля не упоминавшиеся в разговоре — null."""
        }, {
            "role": "user",
            "content": transcript
        }],
        response_format={"type": "json_object"}
    )
    return json.loads(response.choices[0].message.content)

Мы используем Named Entity Recognition (NER) для извлечения сущностей, а confidence scoring оценивает надёжность каждого поля. Подробнее о NER читайте в Wikipedia. Пороговые значения настраиваются под специфику бизнеса.

Как настроить пороги уверенности?

Каждое извлечённое значение получает оценку уверенности на основе вероятности, присвоенной моделью. Для полей с уверенностью ниже 60% в UI отображается жёлтый индикатор — оператор обязан проверить значение. Поля с уверенностью выше 85% заполняются автоматически, но всегда доступны для редактирования. Промпты настроены так, чтобы модель возвращала null для отсутствующих данных, исключая ложные заполнения. Эта система confidence scoring позволяет избежать ошибок при неполных или неоднозначных ответах клиента.

Почему AI в 10 раз быстрее ручного ввода?

Оператор в среднем тратит 2–3 минуты на заполнение карточки после звонка. AI делает это за 2–3 секунды, а оператору остаётся только подтвердить данные — это занимает 10–15 секунд. Время обработки звонка сокращается на 80%, а количество ошибок ввода падает практически до нуля. Гарантируем, что система не затирает старые данные при слиянии благодаря smart merge.

Тип данных Пример Уверенность Цвет в UI
Имя клиента Иван Петров 0.95 зелёный
Адрес доставки ул. Ленина, 10 0.80 жёлтый
Желаемая дата завтра 0.50 жёлтый
Не упомянуто null 0.0 серый
Действие Время Ошибки
Ручной ввод 2–3 мин ~5%
AI + подтверждение 10–15 сек <1%

Что входит в работу?

  1. Анализ и проектирование: разбор текущих полей CRM, создание промптов для LLM, определение порогов уверенности.
  2. Разработка NER-модуля: интеграция с OpenAI GPT-4o или локальными LLM (LLaMA, Mistral), реализация confidence scoring и smart merge.
  3. Интеграция с CRM: настройка REST API, создание UI-виджета для оператора с цветовой индикацией (зелёный/жёлтый/серый).
  4. Тестирование и калибровка: проверка на реальных звонках, настройка threshold confidence, A/B тестирование.
  5. Документация и обучение: инструкции для операторов, описание API, руководство по эксплуатации.
  6. Поддержка: сопровождение в течение 3 месяцев после запуска, доработка промптов при изменении бизнес-процессов.

Как мы гарантируем качество?

Каждое извлечённое поле содержит цитату из транскрипта — оператор видит, откуда взялось значение. Confidence ниже 60% отправляет поле на обязательную проверку. Мы также проводим fine-tuning на ваших диалогах, чтобы повысить точность на специфической лексике. Закажите пилотный проект на 50 звонках — оцените точность сами.

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

  • NER + заполнение одной CRM: 2–3 недели.
  • Мультиплатформенная система с UI и поддержкой нескольких CRM: 1,5 месяца.
  • Fine-tuning под специфику бизнеса: +1–2 недели.

Стоимость рассчитывается индивидуально в зависимости от числа полей, сложности интеграции и необходимости дообучения. Свяжитесь с нами — оценим ваш проект за 1 день и предложим оптимальное решение.

Распознавание и синтез речи: ASR, TTS, клонирование голоса

Заказчик приходит с задачей: транскрибировать 40 000 часов колл-центра за неделю. Штатный облачный ASR (Google Speech-to-Text) выдаёт WER 28% на отраслевой лексике и стоит ощутимо дорого при таких объёмах. Задача — снизить WER ниже 10% и перейти на self-hosted инференс.

Типовые проблемы, с которыми приходят

WER не сходится к нужной метрике. Чаще всего виновата не архитектура, а данные: шумные аудио без нормализации уровня (-23 LUFS вместо стандарта), смешанные языки в одном канале, акцент, специфическая доменная лексика. Whisper large-v3 из коробки даёт WER 8–12% на чистом русском и проваливается до 25–35% на записях с PSTN-артефактами и узкополосным кодеком G.711.

Диаризация ломается при больше двух спикеров. pyannote/speaker-diarization-3.1 работает стабильно при 2–3 говорящих, но DER (Diarization Error Rate) растёт с 6% до 18–22% при 5+ участниках конференции. Проблема усугубляется перекрёстными репликами: по умолчанию min_duration_on=0.1 срезает короткие вставки.

Клонирование голоса — латентность или качество. XTTS v2 (Coqui) даёт натуральный голос, но при потоковой генерации stream_chunk_size=20 первый аудиочанк прилетает через 1.4–2.0 с — неприемлемо для интерактивных сценариев. StyleTTS2 и Kokoro быстрее, но требуют точной подготовки референсного аудио.

Как это решается на практике

Базовый стек для production-пайплайна:

  • ASR: openai/whisper-large-v3 или faster-whisper (CTranslate2-бэкенд, x4 скорость vs оригинал)
  • Диаризация: pyannote.audio 3.x + интеграция через whisperx для выравнивания по словам
  • TTS: XTTS v2 для качества, Edge-TTS или Silero для низкой латентности
  • Клонирование: XTTS v2 (3–6 с референсного аудио) или OpenVoice v2

Типичный пайплайн для колл-центра выглядит так: аудио из очереди Kafka → нормализация ffmpeg -af loudnorm до -23 LUFS → faster-whisper с beam_size=5, vad_filter=Truepyannote диаризация → постпроцессинг (пунктуация через deepmultilingualpunctuation) → запись в PostgreSQL с временными метками.

Кейс из практики. Финтех-компания с 12 000 звонков/день. Исходный WER на русском с банковской лексикой — 22% (Google STT). После fine-tuning whisper-medium на 200 часах размеченных записей через Hugging Face transformers + Seq2SeqTrainer с learning_rate=1e-5, warmup_steps=500 — WER упал до 7.3%. Инференс на одной A10G через faster-whisper с compute_type=float16 обрабатывает 40-минутный звонок за 55 секунд. Итоговая стоимость инференса — $0.0008/мин против $0.016/мин у облачного провайдера.

Дообучение Whisper на доменных данных

Когда общая модель не справляется, fine-tuning — первый инструмент. Минимальный датасет для заметного улучшения — 20–30 часов размеченного аудио в целевом домене. Разметку можно получить через итеративный процесс: прогнать через базовую модель → вручную исправить 10–15% ошибок → переобучить → повторить.

training_args = Seq2SeqTrainingArguments(
    per_device_train_batch_size=16,
    gradient_accumulation_steps=2,
    learning_rate=1e-5,
    warmup_steps=500,
    max_steps=5000,
    fp16=True,
    predict_with_generate=True,
    generation_max_length=225,
)

Важно: при fine-tuning Whisper нужно замораживать encoder первые 1000 шагов (model.freeze_encoder()), иначе акустические признаки разъедутся раньше, чем decoder адаптируется к новой лексике.

Синтез речи: выбор под задачу

Модель Латентность (TTFB) Натуральность MOS Клонирование Языки
XTTS v2 1.2–2.0 с 4.1–4.3 Да, 3 с референса 17
StyleTTS2 0.3–0.6 с 4.0–4.2 Да, требует адаптации en, + fine-tune
Kokoro-82M 0.08–0.15 с 3.7–3.9 Нет en, ja
Silero TTS 0.05–0.1 с 3.4–3.6 Нет ru, en, de, и др.
Edge-TTS ~0.4 с (cloud) 4.0 Нет 100+

Для интерактивных ботов с требованием TTFB < 300 мс — Silero или Kokoro. Для озвучки контента, где важна натуральность — XTTS v2 с потоковой отдачей через WebSocket.

Процесс работы

Начинаем с аудит-сессии: берём 2–4 часа ваших записей, прогоняем через несколько моделей, замеряем WER/CER, смотрим на распределение ошибок по типам (лексические, акустические, язык). Это занимает 1–2 дня и сразу показывает, нужен ли fine-tuning или достаточно пост-обработки.

Далее — выбор архитектуры под ваш throughput: один GPU для 1000 мин/день или кластер с балансировщиком для 100 000+ мин/день. Деплой через Docker-контейнер с FastAPI или Triton Inference Server для батчированного инференса.

Сроки зависят от сложности: базовая интеграция готовой модели — 1–2 недели. Fine-tuning с подготовкой данных и валидацией — 4–8 недель. Полная разработка голосового пайплайна (ASR + диаризация + TTS + мониторинг) — 2–4 месяца.