Если вы читаете эту статью спустя год после её написания, смело закрывайте и не тратьте своё время, актуальность потеряна. Всё самое интересное поместил в третью часть, доскроллы наше все. И да, статья написана не без помощи AI.
Увлекательные истории происходят сегодня на IT ландшафте повседневности и быта бизнеса. Рябь сменилась крупными волнами, и открылось окно возможностей даже для небольших компаний, чтобы оседлать волну, догнать или даже перегнать лидеров рынка – конкурентов в своём отраслевом водоёме, не без помощи AI, конечно. Давайте порассуждаем, отметим тенденции текущего этапа развития индустрии с AI, не вдаваясь в разбор мелких деталей. Хотите узнать чем занимаются ваши конкуренты прямо сейчас, в это время, что внедряют и какие для этого сценарии используют?
Что происходит прямо сейчас? Все, что перед нами разворачивается именно в эти дни, напоминает сцену из фильма “Голодные игры”, тот момент, когда люди выбирают инвентарь и оружие, предназначенное для выживания и взаимного уничтожения. Под оружием и инвентарем я подразумеваю AI в виде LLM доступных и эффективных. И вот представьте себе, что все компании получили безвозмездно кольт с неограниченным запасом патронов. При этом, часть компаний до этого момента уже закупилась в кредит по рынку винчестерами с боекомплектом для целенаправленного отстрела конкурентов. А сейчас оружие в руках у всех, даже у тех, кто его не желал. И кто-то такой из толпы, — “Смотрите как удобно рукояткой кольта колоть грецкие орехи!” А другой, в это же время, молча зарядив кольт начинает целиться ему в голову. И то как наша история имеет временной раздел до нашей эры и после, так и приход LLM проводит жирную временную черту бизнесу до и после. И уже слышны звуки первых выстрелов.
Оставим лирику и перейдем к конкретике. Как у себя в бизнесе применить LLM, повысив свою конкурентоспособность? Рассмотрим рецепты приготовления LLM, один простой, другой посложнее, третий — интересный. Мы делаем акцент на open source для развертывания у себя в компании своими силами.
Первая смесь OCR+LLM = умный документооборот
Для этого нам понадобится “старая” и как бритва отточенная технология OCR. Берем на свое усмотрение и производительность любой популярный open source, да хоть PaddleOCR или DocTR, добавляем LLM, взять хотя бы Mistral 7B или Llama 3 8B или Phi-3. Получаем умный документооборот в компании.
Как это работает? На первом шаге, все бумажные документы прогоняются через сканер в картинку (сканирование в сетевую папку – “одно” нажатие кнопки). Если документы уже в электронном виде, сразу направляем их на OCR агента. На втором шаге, OCR агент перегоняет их в форматированный текст. На третьем этапе LLM агент вытряхивает из текста все важные метрики. Результаты такой работы в примерах ниже.
json для счёта (Invoice)
{ "document_type": "Счет на оплату", "document_number": "INV-2023-01789", "document_date": "2025-07-15", "seller": { "name": "ООО 'ТехноПоставка'", "inn": "7701123456", "kpp": "770101001", "address": "г. Москва, ул. Промышленная, д. 42" }, "buyer": { "name": "АО 'РозничнаяСеть'", "inn": "7706987654", "kpp": "770601001" }, "total_amount": 125450.00, "currency": "RUB", "vat_rate": 20.0, "vat_amount": 20908.33, "amount_without_vat": 104541.67, "payment_due_date": "2025-08-05", "items": [ { "name": "Сетевое оборудование L3-коммутатор", "quantity": 2, "unit": "шт.", "unit_price": 45200.00 }, { "name": "Монтажные работы", "quantity": 1, "unit": "усл.", "unit_price": 35050.00 } ], "metadata": { "confidence": 0.96, "source_file": "scan_inv_20230715.jpg", "processing_time": "2025-06-11T14:22:18Z" } }
json для договора (Contract)
{ "document_type": "Договор поставки", "document_number": "Д-45/2025-П", "document_date": "2025-06-01", "effective_date": "2025-06-10", "expiration_date": "2026-06-09", "parties": [ { "name": "ООО 'ПоставщикПлюс'", "role": "Поставщик", "signatory": "Петров Иван Сергеевич" }, { "name": "ЗАО 'ПромПокупатель'", "role": "Покупатель", "signatory": "Сидорова Мария Владимировна" } ], "contract_subject": "Поставка промышленных подшипников", "total_amount": 875000.00, "currency": "RUB", "payment_terms": "30% аванс, 70% в течение 10 дней после поставки", "delivery_terms": "DDP склад покупателя (г. Екатеринбург)", "special_conditions": "Гарантийный срок - 18 месяцев", "attachments": ["Спецификация №1 от 01.06.2025"], "metadata": { "confidence": 0.93, "pages": 8, "source_file": "contract_2025-45_signed.pdf" } }
json для накладной (Waybill)
{ "document_type": "Товарная накладная (ТОРГ-12)", "document_number": "ТН-0003782", "document_date": "2025-06-10", "sender": { "name": "ООО 'Складские Решения'", "address": "Московская обл., г. Люберцы, промзона Юго-Восточная" }, "receiver": { "name": "ИП Смирнов А.В.", "address": "г. Москва, ул. Торговая, д. 15, павильон 42" }, "goods": [ { "product_id": "PK-7842", "name": "Кресло офисное Ergoline Comfort", "quantity": 3, "unit": "шт.", "weight": 18.7, "gross_weight": 22.5 }, { "product_id": "DS-9015", "name": "Стол письменный Executive 160x80", "quantity": 2, "unit": "шт.", "weight": 32.4, "gross_weight": 35.8 } ], "total_items": 5, "total_weight": 145.2, "vehicle_info": "ГАЗель NEXT (гос. номер А123БВ777)", "driver": "Иванов Сергей Петрович", "metadata": { "confidence": 0.98, "source_file": "waybill_10062025_scan.tiff" } }
json для письма (Official Letter)
{ "document_type": "Официальное письмо", "outgoing_number": "Исх-05/2025", "date": "2025-06-05", "sender": { "organization": "Департамент городского хозяйства", "department": "Отдел инфраструктурных проектов", "contact_person": "Козлов А.Д." }, "receiver": { "organization": "ООО 'Городские Сети'", "contact_person": "Генеральному директору Новикову П.Р." }, "subject": "О согласовании сроков ремонтных работ", "reference_number": "Вх-247/2025 от 28.05.2025", "key_content": "Согласование переноса сроков реконструкции тепловых сетей на ул. Центральной с 15.06.2025 на 05.07.2025", "action_required": "Подписание доп. соглашения до 12.06.2025", "attachments": ["Проект доп. соглашения №3", "График работ"], "metadata": { "confidence": 0.91, "letterhead_detected": true, "stamp_detected": true, "signature_detected": true } }
Ключевые особенности структуры:
-
Типизация документов
Полеdocument_typeявно указывает тип документа (счёт, договор и т.д.) -
Иерархические сущности
Вложенные объекты для sender/receiver, товарных позиций -
Нормализация форматов
-
Даты в ISO 8601 (
YYYY-MM-DD) -
Суммы как числа (не строки)
-
Коды валют по стандарту ISO 4217
-
-
Контекстные поля
-
contract_subjectдля договоров -
key_contentдля писем -
special_conditionsдля особых условий
-
-
Метаданные обработки
-
Уровень распознавания (confidence)
-
Исходный файл
-
Технические детали обработки
-
-
Обработка списков
Массивы для товарных позиций, приложений, сторон договора -
Опциональные поля
Поля могут отсутствовать, если информация не найдена в документе
Чтобы называть документооборот умным, возьмём из текста ещё дополнительные метрики
дополнительно к счету (Invoice)
{ ... (основные поля) ..., "analytics": { "payment_risk_score": 0.65, // Вероятность просрочки платежа (0-1) "anomalies": [ "vat_mismatch", // Расхождение в расчетах НДС "duplicate_charges" // Дублирующиеся позиции ], "sentiment": { "urgency": "high", // Срочность оплаты "late_fee_mentioned": true // Упоминание штрафов }, "vendor_relationship": "recurring" // recurring/new/terminating } }
дополнительно к договору (Contract)
{ ... (основные поля) ..., "analytics": { "risk_assessment": { "unbalanced_liabilities": true, // Дисбаланс обязательств "penalty_clauses": 3, // Количество штрафных пунктов "termination_risk": "medium" // Риск расторжения }, "compliance_issues": [ "missing_force_majeure", // Отсутствие форс-мажора "ambiguous_terms" // Неоднозначные формулировки ], "financial_impact": { "potential_penalties": 250000, // Возможные штрафы "renewal_obligations": true // Автопродление } } }
дополнительно к письму (Letter)
{ ... (основные поля) ..., "analytics": { "sentiment_analysis": { "tone": "negative", // Тон письма "urgency_level": "high", // Уровень срочности "complaint_type": "service_quality" // Тип претензии }, "relationship_indicators": { "escalation_risk": 0.8, // Риск эскалации "loyalty_threat": true // Угроза прекращения отношений }, "action_priority": "critical", // Приоритет обработки "legal_threat_indicators": [ "contract_breach_mentioned", // Упоминание нарушения "litigation_hinted" // Намек на судебное разбирательство ] } }
дополнительно к накладной (Waybill)
{ ... (основные поля) ..., "analytics": { "discrepancy_flags": { "quantity_mismatch": true, // Расхождение количеств "damage_reported": false // Повреждения товара }, "logistics_risk": { "delivery_delay": "significant", // Задержка доставки "storage_requirements": "violated" // Нарушение условий хранения }, "completeness_score": 0.92 // Полнота данных (0-1) } }
дополнительно к претензии (Complaint)
{ "document_type": "Рекламация", "reference_number": "COMP-2025-089", "date": "2025-06-08", "complainant": "ООО 'ТехноСервис'", "respondent": "ЗАО 'ПромКомплект'", "incident_date": "2025-05-25", "nature_of_complaint": "Несоответствие качества товара", "requested_resolution": "Возврат средств", "deadline_response": "2025-06-15", "analytics": { "severity_level": "high", // Серьезность претензии "financial_impact": 120700.00, // Сумма ущерба "repetitive_issue": true, // Повторяющаяся проблема "evidence_strength": "strong", // Качество доказательств "reputation_risk": "critical" // Риск для репутации } }
дополнительные аналитические метрики для всех документов
{ "compliance_metadata": { "gdpr_risks": ["personal_data_exposed"], // Риски GDPR "retention_requirements": "3 years" // Срок хранения }, "linguistic_analysis": { "ambiguity_score": 0.35, // Уровень неоднозначности (0-1) "complexity_level": "high" // Сложность языка }, "version_control": { "is_amendment": true, // Является изменением "base_document": "Д-45/2025-П" // Основной документ }, "negotiation_insights": { "concession_indicators": ["price_adjustment"], // Уступки "pressure_tactics": ["deadline_threat"] // Тактики давления } }
Пояснение к метрикам:
-
Риск-ориентированные:
-
payment_risk_score— прогноз просрочки платежа -
termination_risk— вероятность расторжения договора -
escalation_risk— риск перехода конфликта на новый уровень
-
-
Семантические:
-
tone— эмоциональная окраска (negative/neutral/positive) -
urgency_level— срочность реакции (low/medium/high/critical) -
complaint_type— классификация претензии
-
-
Юридические:
-
compliance_issues— отсутствие обязательных пунктов -
legal_threat_indicators— признаки возможного судебного спора -
penalty_clauses— количество упоминаний санкций
-
-
Операционные:
-
discrepancy_flags— расхождения в данных -
completeness_score— полнота информации -
repetitive_issue— повторяющаяся проблема
-
-
Бизнес-отношения:
-
vendor_relationship— статус отношений с контрагентом -
loyalty_threat— признаки возможного разрыва отношений -
negotiation_insights— анализ переговорной тактики
-
Такие метрики превращают простое извлечение данных в мощный инструмент аналитики, позволяя:
-
Автоматически приоритизировать обработку документов
-
Выявлять скрытые риски и возможности
-
Прогнозировать поведение контрагентов
-
Оптимизировать юридические и финансовые процессы
-
Анализировать тональность коммуникаций
Осталось загнать документы и метрики в базу данных документооборота компании. На основании умных метрик создаем, по необходимости, задачи для связанных с документами сотрудников. И отправляем аналитику в виде отчёта по умным метрикам и задачам, связанных с ними, главному документооборотчику всея департаментов вашей корпорации или выводим статистику на dashboard.
Второй рецепт STT+LLM
Здесь мы будем перегонять записи всех телефонных разговоров наших сотрудников с клиентами и контрагентами в форматированный текст (по ролям как в сценарии) и прокачивать CRM, SRM, HelpDesk, ServiceDesk или ещё какие мышцы вашей компании, использующие голосовые данные.
Вот как могла бы работать система Real-Time LLM Coach для менеджеров с применением live-анализ диалога. Технологический стек: ASR (Whisper) → Streaming NLP-пайплайн → RAG (база знаний) → Генерация подсказок → UI-интерфейс менеджера.
Интерфейс менеджера во время звонка
[КЛИЕНТ]: "Я подумываю перейти в MegaSignal из-за их безлимита..." ┌──────────────────────────────────────────────────────┐ │ **СИСТЕМА ПОДСКАЗОК (Live AI)** ├──────────────────────────────────────────────────────┤ │ ⚠️ Обнаружена угроза оттока! │ │ 🔎 **Конкурент:** MegaSignal │ ▪️ Их безлимит: 40 ГБ за 1200₽/мес │ ▪️ Наш аналог: "Без границ" (60 ГБ за 1100₽) │ ▪️ Слабые стороны конкурента: Роуминг +30% цены │ │ 💡 **Скрипт ответа:** │ "Понимаю ваш интерес! У нас тоже есть безлимит, │ но с роумингом в 20 странах без доплат. Кстати, │ если расскажете, что для вас важнее - объем или │ покрытие, подберу персональный вариант..." │ │ ❗ **Уточните:** │ "Какие страны посещаете чаще?" └──────────────────────────────────────────────────────┘
Как это работает технически
-
Live-транскрипция
-
Whisper обрабатывает аудио поток с задержкой <1.5 сек
-
Текст сегментируется по говорящим (по раздельным каналам диаризация на лету)
-
-
Контекстный анализ
# Псевдокод обработки if detect_keywords("конкурент, перейти, MegaSignal"): trigger_competitive_response() if client_sentiment == "FRUSTRATED" and duration > 120s: suggest_escalation_protocol() -
Поиск в RAG (Retrieval-Augmented Generation)
-
Векторный поиск по:
• Историческим диалогам с этим клиентом
• Успешным кейсам удержания
• Базе знаний о конкурентах -
Пример запроса:
«Аналогичные случаи оттока + позиционирование против MegaSignal»
-
-
Генерация подсказок
LLM создает советы в формате:{ "priority": "CRITICAL", "type": "competitive_response", "advice": "Акцентировать преимущество в роуминге", "verbatim_suggestions": ["Фраза 1", "Фраза 2"] }
Ключевые типы подсказок
-
Стратегия перехвата инициативы
-
Триггер: Клиент упоминает конкурента
-
Действие: Показ сравнения + генерация УТП
-
Данные: Цены/условия 10+ операторов из базы
-
-
Детектор скрытых возражений
Клиент: "Мне нужно подумать..." ──────────────────────────────── AI: ❗ Анализ тональности: 87% неуверенность 💡 Предложите тестовый период! -
Персонализация на лету
-
Пример:
«Клиент в 2023 жаловался на связь в поездках →
Предложить пакет «Европа Плюс» со скидкой 20%»
-
-
Эмоциональный навигатор
-
Шкала настроения клиента в реальном времени:
[😠 ███▁▁▁▁▁ 30%] → [😐 █████▁▁ 60%] после предложения -
Рекомендации: «Снизить темп речи», «Использовать эмпатийные формулы»
-
-
Технический ассистент
-
Авто-проверка анкетных данных:
«У клиента неактуальный email → Уточните для отправки офера»
-
Дополнительные возможности
-
Голосовые подсказки: Шепот в гарнитуру менеджера через TTS
-
Авто-документирование: Формирование итогов разговора в CRM по окончании звонка
-
Прогностика следующего шага:
AI: «Через 2 мин клиент спросит о гарантиях → Готовьте слайд №7»
Такая система превращает каждого менеджера в «супер-агента» с коллективным опытом всей компании, снижая зависимость от человеческого фактора и ускоряя принятие решений. Есть реализованные подобные кейсы, например Deutsche Telekom и Cognigy AI.
Голосовые агенты TTS+LLM
На мой взгляд, тема CRM, SRM в купе с LLM уже заезжена, перешагиваем и переходим прямо к голосовым агентам.
Сразу хочу обозначить свою морально-этическую позицию. Если клиент не заказывал и не ждёт от вас звонка, значит не нужно его беспокоить звонком, спамом, СМС. Другое дело, если клиент звонит вам сам. Но я не считаю аморальным звонить своим конкурентам, проверять их уровень сервиса, цен, загруженности, акции и прочие открытые всем данные и сравнивать со своими возможностями. Вот для этих целей, неплохо бы иметь голосового агента, который может с утра до вечера мониторить конкурентную обстановку в заданном сегменте рынка. И, если подобный голосовой агент конкурентов позвонит нам, не плохо было бы его встретить своим голосовым агентом с «полезной» для него информацией.
Вы замечали, с голосовыми агентами что-то не так? Это связано с тем, что голосовые движки созрели, а вот мозги отстают. Алгоритмы ведения разговора это слабое звено технологии. И вот тут у нас с вами самое настоящие окно возможностей, есть месяцев двенадцать до того как рынок наводнят предложениями крупных IT рыб и телеком-компаний. Попробуем сами прикрутить LLM к голосовому движку. Внутренний голос мне подсказывает, что в связке LLM+TTS не хватает внутреннего голоса (простите за тавтологию). Предлагаю решение с внутренним голосом — с двумя LLM в тандеме, где одна выступает как «стратег», а вторая как «тактик». Это создаст более естественные и адаптивные диалоги.
1. LLM Стратег (Аналитик-контроллер)
-
Роль: Следит за глобальной целью, анализирует прогресс
-
Модель: Llama 3 70B + Russian fine-tuning
-
Функции:
-
Отслеживание ключевых параметров (цена, сроки, условия)
-
Анализ эмоционального тона собеседника
-
Генерация тактических подсказок для «тактика»
-
Принятие решений о завершении диалога
-
-
Пример промпта:
"Ты стратег call-центра. Цель: узнать цену доставки воды. Текущий статус: клиент упомянул '300 руб' но не уточнил объем. Сгенерируй 1-2 ключевых пункта для тактика на основе: {history}, {emotion_score}, {missing_data}"
2. LLM Тактик (Диалоговый агент)
-
Роль: Ведение естественной беседы
-
Модель: Mistral 7B + Russian conversational fine-tuning
-
Функции:
-
Генерация человеческих ответов
-
Обработка неожиданных реплик
-
Создание естественных пауз и междометий
-
Адаптация под стиль собеседника
-
-
Пример промпта:
"Ты оператор 'АкваСервис'. Веди диалог естественно. Ключевые пункты от стратега: {strategy_points}. История: {history}. Реплика клиента: {input}"
3. Система мониторинга (Memory Manager)
-
Хранит структурированные данные в формате:
{ "competitor": "Вода+", "parameters": { "price": null, "delivery_time": "утром", "discount": "нет" }, "conversation_score": 0.82, "emotional_tone": "раздраженный" } -
Использует векторные базы (ChromaDB) для сравнения диалогов
Рабочий процесс в реальности
Сценарий звонка в офис конкурента:
[Звонок соединяется] LLM Тактик: "Добрый день! Беспокоит Ирина из логистического отдела. Подскажите, а вы осуществляете срочную доставку воды сегодня вечером?" Менеджер: "Да, но только по предоплате" [LLM Стратег анализирует: подтверждена доставка, но нет цены. Генерирует тактическую подсказку: "Уточнить стоимость 5 бутылей"] LLM Тактик: "Отлично! А если мне нужно 5 бутылей по 19л к 18:00, это сколько будет стоить с учетом доставки?" Менеджер: "Эээ... посчитаю... 2500 рублей" [LLM Стратег фиксирует цену, обнаруживает колебание в голосе, предлагает: "Спросить про скидки на следующий заказ"] LLM Тактик: "Спасибо! А если я буду заказывать регулярно, у вас есть система скидок?"
Ключевые преимущества системы
-
Естественность диалога:
-
Тактик генерирует паузы («эээ», «ммм»)
-
Адаптирует темп речи под собеседника
-
Использует разговорные конструкции
-
-
Контроль сценария:
-
Стратег блокирует уход от темы
-
Автоматическое возвращение к ключевым вопросам
-
Эскалация при агрессии («Переключи на вежливый шаблон №3»)
-
-
Аналитика в реальном времени:
# Пример кода анализа тональности def analyze_emotion(text): return llm_strateg(f"Оцени тон 0-1: {text}").emotion_score if analyze_emotion(last_response) > 0.8: llm_tactic.apply_template("calming_response")
Техническая реализация
Стек технологий:
-
Оркестрация: LangChain + Celery
-
Модели:
-
Стратег: Llama 3 70B (4-bit квантование)
-
Тактик: Mistral 7B (8-bit)
-
-
Кеширование: Redis для хранения состояний диалогов
-
Аналитика: реальные дашборды в Grafana
Пример кода взаимодействия:
from langchain_core.prompts import ChatPromptTemplate strateg_prompt = ChatPromptTemplate.from_template( "Анализируй диалог: {history}. Цель: {goal}. " "Сгенерируй 3 тактические рекомендации" ) tactic_prompt = ChatPromptTemplate.from_template( "Веди диалог естественно. Рекомендации: {advice}. " "Речь клиента: {input}. Ответь кратко (до 15 слов)" ) def generate_response(user_input, history, goal): advice = llm_strateg.invoke(strateg_prompt.format(history=history, goal=goal)) return llm_tactic.invoke(tactic_prompt.format(advice=advice, input=user_input))
Риски и решения
-
Задержки ответа:
-
Кеширование частых реплик
-
Оптимизация через TensorRT-LLM
-
Локальные маленькие модели для простых ответов
-
-
Обнаружение ботами:
-
Добавление фонового шума
-
Переменная скорость речи
-
«Ошибки» произношения (RHVoice с настройкой RandomPitch)
-
Такая система требует больше ресурсов, но дает качественно новый уровень взаимодействия. Для старта можно использовать quantized-модели на CPU. Alibaba’s Tongyi (2024):Обрабатывает 50M+ звонков/месяц. Особенность: Иерархия моделей, где «супервайзер» (Qwen-72B) корректирует ответы мелких моделей в реальном времени.
Ограничения и барьеры внедрения
-
Задержки:
Ответы >3 сек. убивают диалог. Решение:-
Квантование моделей (GGUF 5-bit)
-
Предгенерация шаблонных ответов
-
Детский фокус с угадыванием серии карточек.
-
-
Обнаружение:
Конкуренты используют детекторы ботов (например, Pindrop). Обход:-
Вставка «естественного» дыхания в аудиопоток
-
Рандомизация интонаций через Silero TTS
-
Перспектива
Такие системы появятся массово в самое ближайшее время. Этот стек немного опережает рынок, и требуется его доработка:
-
Заменить Vosk на Stormer-CTC для точности 98%
-
Добавить фильтр ложных срабатываний через MiniCPM (2B параметров)
-
Внедрить «этический слой»: автоматическую проверку ответов на соответствие ФЗ
Для старта MVP на базе Mistral 7B + Whisper.cpp — можно достичь результата за пару, тройку недель разработки.
ссылка на оригинал статьи https://habr.com/ru/articles/917788/
Добавить комментарий