<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>FriendlyAI</title>
    <link>https://friendlyai.ru/</link>
    <atom:link href="https://friendlyai.ru/rss.xml" rel="self" type="application/rss+xml"/>
    <description>ИИ в рабочих процессах компании: агенты, RAG по базе знаний, голосовые роботы, автоматизация на n8n.</description>
    <language>ru</language>
    <lastBuildDate>Tue, 13 Oct 2026 22:40:04 +0500</lastBuildDate>
    <item>
      <title>Сколько стоит свой сервер для ИИ: железо, аренда, электричество</title>
      <link>https://friendlyai.ru/news/articles/skolko-stoit-svoy-server-dlya-ii.html</link>
      <guid isPermaLink="true">https://friendlyai.ru/news/articles/skolko-stoit-svoy-server-dlya-ii.html</guid>
      <pubDate>Tue, 01 Sep 2026 09:00:00 +0500</pubDate>
      <author>bimaip@yandex.ru (FriendlyAI)</author>
      <description>Считаем свой сервер под ИИ: аренда GPU в России, покупка видеокарты, электричество и вариант без GPU. При каком потоке запросов своё железо дешевле облачного API.</description>
      <enclosure url="https://friendlyai.ru/assets/og-cover.png" type="image/png" length="0"/>
      <content:encoded><![CDATA[<p>Разговор про своё железо почти всегда начинается с одной суммы: «карта стоит двести тысяч». Дальше выясняется, что карта это меньше половины расходов, а решает вообще не она.</p>
    <p>Разложу три варианта по деньгам, посчитаю электричество на калькуляторе и покажу формулу, по которой видно, при каком потоке запросов своё железо начинает выигрывать у облачного API. Числа ниже это ориентиры рынка на лето 2026 года, тарифы проверяйте перед покупкой: они двигаются быстро.</p>
    <h2>Вариант первый: арендовать GPU</h2>
    <p>Самый быстрый способ проверить гипотезу, не влезая в закупку.</p>
    <p>Ориентиры рынка по России: помесячная аренда сервера с картой уровня RTX 3090 или 4090 идёт в коридоре 25-60 тысяч рублей, почасовая на той же карте 50-130 рублей в час. Серверные ускорители с 40-80 гигабайтами памяти начинаются от 120 тысяч в месяц и малому бизнесу не нужны почти никогда.</p>
    <p>Почасовая схема выгодна там, где нагрузка неровная. Ночная пакетная обработка документов, разовая переиндексация базы, эксперимент с новой моделью на выходных: включили, отработали, выключили. Два часа в сутки по 90 рублей это 5,4 тысячи в месяц, что дешевле любой покупки.</p>
    <p>Помесячная имеет смысл, когда сервис должен отвечать круглосуточно и мгновенно. Держать модель загруженной в память постоянно на почасовом тарифе выйдет дороже аренды на месяц.</p>
    <p>Минус у аренды один, зато существенный: ваши данные лежат на чужой машине. Для требований безопасности, ради которых обычно и затевается локальный запуск, это может оказаться неприемлемым. Границу «что можно отдавать наружу» разбирал <a href="https://friendlyai.ru/news/articles/chto-nelzya-otdavat-neyroseti.html">отдельно</a>.</p>
    <h2>Вариант второй: купить свою машину</h2>
    <p>Смета собирается из двух частей, и вторая обычно недооценена.</p>
    <div class="table-wrap"><table><thead><tr><th>Компонент</th><th>Ориентир рынка</th></tr></thead><tbody><tr><td>RTX 3060 12 ГБ</td><td>30-40 тыс. ₽</td></tr><tr><td>RTX 4060 Ti 16 ГБ</td><td>50-65 тыс. ₽</td></tr><tr><td>RTX 3090 24 ГБ, б/у</td><td>70-100 тыс. ₽</td></tr><tr><td>RTX 4090 24 ГБ</td><td>200-260 тыс. ₽</td></tr><tr><td>Платформа: процессор, плата, 64 ГБ ОЗУ, NVMe 2 ТБ, БП 850 Вт, корпус</td><td>80-130 тыс. ₽</td></tr></tbody></table></div>
    <p>Три сборки, которые встречаются на практике. Бюджетная под классификацию и извлечение полей на модели в 8 миллиардов параметров: 120-170 тысяч. Средняя под 14B и базу знаний: 180-230 тысяч. Сильная с 24 гигабайтами видеопамяти под модели на 32 миллиарда: 300-380 тысяч рублей.</p>
    <p>Про диск скажу отдельно, потому что на нём спотыкаются регулярно. Веса весят от 2 до 40 гигабайт, на пробу скачивается три-четыре штуки, удалять их забывают. У нас забитый диск дважды ронял выкладку невнятной ошибкой: час на диагностику, две минуты на лечение. Два терабайта NVMe и чистка старых весов по расписанию закрывают вопрос.</p>
    <h2>Электричество: считаем, а не пугаем</h2>
    <p>Видеокарта под полной нагрузкой ест 350-450 ватт, вся машина около 550. В простое с загруженной в память моделью около 100-120 ватт.</p>
    <p>Реальный профиль малого бизнеса это не круглосуточный расчёт, а два-три часа фактической генерации в сутки и всё остальное время простой.</p>
    <ul><li>нагрузка: 0,55 кВт × 2 ч × 30 дней = 33 кВт·ч</li><li>простой: 0,11 кВт × 22 ч × 30 дней = 72,6 кВт·ч</li><li>итого около 106 кВт·ч в месяц, по тарифу 6 рублей это <strong>640 рублей</strong></li></ul>
    <p>Даже при круглосуточной полной загрузке выходит 396 кВт·ч и около 2,4 тысячи рублей. Электричество не главная строка, хотя пугают им чаще всего. Главные строки другие.</p>
    <h2>Строки, которые забывают</h2>
    <p><strong>Администрирование.</strong> Драйверы, обновления, мониторинг температуры, перезапуск упавшего сервиса, чистка диска. На устоявшейся системе это 3-6 часов в месяц. По консервативной ставке 900 рублей за час полной стоимости сотрудника выходит 2,7-5,4 тысячи рублей ежемесячно.</p>
    <p><strong>Простой.</strong> Карта сгорела, и вы неделю без сервиса, потому что запасной нет. У облака эта проблема закрыта чужими руками.</p>
    <p><strong>Место и шум.</strong> Машина с 4090 под нагрузкой греется и гудит. В переговорной её не поставить, нужна хотя бы кладовка с вентиляцией.</p>
    <p><strong>Срок жизни.</strong> Амортизацию на 5 лет считать оптимистично: за три года выходят новые карты и модели, которым нужно больше памяти. Мы считаем на 36 месяцев.</p>
    <h2>Вариант третий: без видеокарты вообще</h2>
    <p>Недооценённый путь. Обычный сервер с 16-20 ядрами и 32 гигабайтами памяти стоит в аренде 4-9 тысяч рублей в месяц, а купить такую машину можно за 60-90 тысяч.</p>
    <p>Наш замер на своём внутреннем сервере: 20 ядер, 31 гигабайт памяти, GPU нет. Модель Qwen3-4B в четырёхбитном квантовании отвечает на рабочий вопрос за 11 секунд, короткий вопрос закрывает за секунду. Девятимиллиардная GLM на том же железе даёт 17 секунд и заметно более точные формулировки по отраслевой терминологии.</p>
    <p>Я перед запуском прогнозировал 30-90 секунд и ошибся втрое в худшую сторону. Урок простой: не отговаривать по прикидкам, а мерить на живом железе.</p>
    <p>Для внутреннего ассистента, ночной обработки почты, классификации заявок и разбора документов такой скорости достаточно. Для чата с клиентом на сайте нет. Какие модели влезают в какое железо, разобрано в статье про <a href="https://friendlyai.ru/news/articles/kakuyu-model-vybrat-dlya-servera.html">выбор модели под задачу</a>.</p>
    <h2>Формула окупаемости</h2>
    <p>Считаем две величины в месяц и сравниваем.</p>
    <pre><code>Своё железо = цена сборки / 36 месяцев + электричество + часы админа × ставка
Облако      = обращений в месяц × токенов на обращение / 1 000 000 × цена за миллион</code></pre>
    <p>Подставим среднюю сборку за 220 тысяч рублей:</p>
    <ul><li>амортизация: 220 000 / 36 = <strong>6 100 ₽</strong></li><li>электричество: <strong>640 ₽</strong></li><li>админ, 4 часа по 900: <strong>3 600 ₽</strong></li><li>итого около <strong>10 300 ₽ в месяц</strong></li></ul>
    <p>Теперь облако. Одно обращение к базе знаний вместе с подложенными фрагментами съедает 5-15 тысяч токенов, возьмём 10 тысяч. У экономичных моделей вроде DeepSeek стоимость миллиона токенов держится в районе сотни рублей с учётом входа и выхода.</p>
    <p>10 300 рублей делим на 100 рублей за миллион, получаем 103 миллиона токенов в месяц. Делим на 10 тысяч токенов на обращение: <strong>порядка 10 тысяч обращений в месяц, то есть около 340 в день</strong>. Ниже этого потока своё железо проигрывает по деньгам, выше начинает выигрывать.</p>
    <p>С топовой зарубежной моделью, где миллион токенов стоит в десять-тридцать раз дороже, порог падает до 400-1000 обращений в месяц.</p>
    <p>Здесь и прячется подвох, из-за которого расчёт часто врёт. Локальная модель на 8-14 миллиардов параметров не равна топовой облачной по качеству, и сравнивать их ценники некорректно. Честная арифметика получается только против сопоставимой по классу облачной модели, и тогда порог держится в районе нескольких сотен обращений в день. В статье про <a href="https://friendlyai.ru/news/articles/lokalnaya-llm-na-svoem-servere.html">локальную LLM</a> я писал про сотни тысяч запросов в месяц: это порог против дешёвой облачной модели, и он никуда не делся.</p>
    <h2>Три варианта в одной таблице</h2>
    <div class="table-wrap"><table><thead><tr><th>Вариант</th><th>Разово</th><th>В месяц</th><th>Кому подходит</th></tr></thead><tbody><tr><td>Аренда GPU почасово</td><td>0</td><td>3-10 тыс. ₽ при 2 ч в сутки</td><td>пилот, ночная пакетная обработка, эксперименты</td></tr><tr><td>Аренда GPU помесячно</td><td>0</td><td>25-60 тыс. ₽</td><td>круглосуточный сервис без своей серверной</td></tr><tr><td>Своя машина с картой</td><td>120-380 тыс. ₽</td><td>8-15 тыс. ₽ с админом</td><td>постоянный поток и требования по данным</td></tr><tr><td>Сервер без GPU</td><td>60-90 тыс. ₽ или аренда</td><td>4-9 тыс. ₽</td><td>внутренние задачи, где 10-20 секунд ожидания норма</td></tr></tbody></table></div>
    <p>Отдельное сравнение аренды и покупки. Сборка за 220 тысяч отбивает помесячную аренду за 35 тысяч примерно за полгода круглосуточной работы. При использовании два часа в сутки почасовая аренда обойдётся в 5,4 тысячи в месяц против 10,3 тысячи у своей машины, и покупка не окупится никогда.</p>
    <h2>Когда своё железо не нужно</h2>
    <p><strong>Поток меньше сотни обращений в день.</strong> Токены на таком объёме стоят единицы тысяч рублей в месяц. Покупка карты здесь это покупка спокойствия, а не экономия, и называть вещи стоит своими именами.</p>
    <p><strong>Пилот ещё не собран.</strong> Пока нет замеров качества на своих данных, непонятно, какого размера модель вам нужна, а значит непонятно, какую карту брать. Мы видели компании, которые купили железо и полгода искали ему задачу.</p>
    <p><strong>Некому обслуживать.</strong> Нет системного администратора с временем на это, нет и локального контура. Через два месяца он превратится в выключенную машину под столом.</p>
    <p><strong>Задачи требуют качества топовой модели.</strong> Юридический разбор, длинная многошаговая логика, сложные инструкции. Тут своё железо не экономия, а понижение качества за свои же деньги.</p>
    <p><strong>Нагрузка сезонная.</strong> Раз в квартал разобрать архив документов проще на почасовой аренде, чем держать простаивающую карту.</p>
    <p><strong>Требование звучит как «данные должны остаться в России».</strong> Это закрывается российским облаком, а не своей стойкой. Локальный контур нужен, когда формулировка другая: данные не должны покидать наш контур.</p>
    <h2>Короткие ответы на частые вопросы</h2>
    <p><strong>Подойдёт ли игровой ноутбук вместо сервера?</strong> Для проверки гипотезы да, для эксплуатации нет. Ноутбучные карты режут частоты под нагрузкой, память обычно 8 гигабайт, а круглосуточная работа убивает охлаждение за несколько месяцев.</p>
    <p><strong>Есть ли смысл брать 3090 с рук?</strong> Часто да: 24 гигабайта видеопамяти за 70-100 тысяч это лучшее соотношение цены и памяти на рынке. Риск в состоянии карты после майнинга, поэтому берите с проверкой под нагрузкой и закладывайте, что гарантии нет.</p>
    <p><strong>Сколько проживёт карта под ИИ-нагрузкой?</strong> При нормальном охлаждении три-четыре года без драмы. Убивает не нагрузка, а перегрев в тесном корпусе и пыль. Термопрокладки и чистка раз в год стоят копейки и продлевают жизнь заметно.</p>
    <p><strong>Считать ли зарплату админа, если он и так в штате?</strong> Считать. Часы, которые он тратит на модель, он не тратит на другое. Иначе экономия в расчёте появляется из воздуха, а потом внезапно кончается вместе с админом.</p>
    <p><strong>Можно ли начать с аренды и переехать на своё?</strong> Да, и это разумный порядок. Слой модели в приложении меняется тремя переменными окружения: адрес, ключ, название модели. Переезд занимает дни, а не переписывание системы.</p>
    <h2>Что посчитать до покупки</h2>
    <p>Три цифры закрывают вопрос. Сколько обращений в месяц реально придёт. Сколько токенов съедает одно обращение (замеряется за час на пилоте). Какой класс модели вам нужен по качеству.</p>
    <p>Дальше подставьте их в формулу выше и сравните с ценой сборки, поделённой на 36. Если разница меньше двух раз, берите аренду: гибкость дороже экономии в десять процентов.</p>
    <p>Приходите на <a href="https://friendlyai.ru/audit.html">AI-аудит</a> с этими тремя цифрами: посчитаем вместе и скажем прямо, если в вашем случае видеокарта не нужна. Из чего складывается весь бюджет внедрения, кроме железа, разобрано в статье <a href="https://friendlyai.ru/news/articles/skolko-stoit-vnedrit-ii.html">сколько стоит внедрить ИИ</a>, а что мы собираем на этой инфраструктуре, показано на странице <a href="https://friendlyai.ru/services/razrabotka-ii-agentov.html">разработка ИИ-агентов</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Какую модель поставить на свой сервер: разбор по задачам</title>
      <link>https://friendlyai.ru/news/articles/kakuyu-model-vybrat-dlya-servera.html</link>
      <guid isPermaLink="true">https://friendlyai.ru/news/articles/kakuyu-model-vybrat-dlya-servera.html</guid>
      <pubDate>Sun, 30 Aug 2026 09:00:00 +0500</pubDate>
      <author>bimaip@yandex.ru (FriendlyAI)</author>
      <description>Как выбрать локальную LLM под задачу и железо: сколько VRAM нужно моделям на 7, 14 и 32 миллиарда, что отнимает квантизация Q4 и где хватает маленькой модели.</description>
      <enclosure url="https://friendlyai.ru/assets/og-cover.png" type="image/png" length="0"/>
      <content:encoded><![CDATA[<p>Типовая история: компания купила карту на 24 гигабайта, поставила на неё самую большую модель, которая влезла, и подключила к внутреннему чату. Через две недели чатом перестали пользоваться. Ответ приходил через сорок секунд, а сотруднику быстрее было спросить коллегу.</p>
    <p>Модель выбирают не по рейтингу на сайте с бенчмарками. Выбирают по трём числам: сколько у вас видеопамяти, какого качества требует задача и сколько секунд человек готов ждать. Разберу каждое, с замерами на нашем железе.</p>
    <h2>Сколько памяти реально съедает модель</h2>
    <p>Считать надо не «размер модели в миллиардах», а вес файла плюс место под контекст. Порядки такие: в восьмибитном виде модель занимает примерно один байт на параметр, в четырёхбитном Q4_K_M около 0,6 байта. Восьмимиллиардная модель это 8 гигабайт в Q8 и 4,7 гигабайта в Q4.</p>
    <p>Дальше сверху ложится KV-кэш, то есть память под сам диалог и подложенные документы. Считайте, что контекст добавит от 15 до 30 процентов, а на длинных запросах в 32 тысячи токенов и больше он способен съесть несколько гигабайт.</p>
    <div class="table-wrap"><table><thead><tr><th>Размер</th><th>Файл в Q4_K_M</th><th>Нужно VRAM (контекст 8k)</th><th>Типичная карта</th></tr></thead><tbody><tr><td>3-4B</td><td>2-2,5 ГБ</td><td>4-5 ГБ</td><td>любая игровая от 6 ГБ</td></tr><tr><td>7-8B</td><td>4,5-5 ГБ</td><td>7-8 ГБ</td><td>RTX 3060 12 ГБ</td></tr><tr><td>12-14B</td><td>8-9 ГБ</td><td>11-13 ГБ</td><td>RTX 4070 Ti / 4060 Ti 16 ГБ</td></tr><tr><td>27-32B</td><td>18-20 ГБ</td><td>22-24 ГБ</td><td>RTX 3090 или 4090 24 ГБ</td></tr><tr><td>70B</td><td>40-42 ГБ</td><td>46-50 ГБ</td><td>две карты по 24 ГБ или серверный ускоритель</td></tr></tbody></table></div>
    <p>Практический вывод из таблицы неприятный для владельцев карт на 8 гигабайт. В такую карту нормально влезает восьмимиллиардная модель с коротким контекстом, и всё. Хотите работать с документами на десяток страниц, планируйте 16 гигабайт. Базовые требования к контуру я разбирал в статье про <a href="https://friendlyai.ru/news/articles/lokalnaya-llm-na-svoem-servere.html">локальную LLM на своём сервере</a>, здесь речь именно про выбор весов.</p>
    <h2>Что отнимает квантизация</h2>
    <p>Квантизация это сжатие весов: числа хранятся грубее, файл становится меньше, память экономится в разы. Платите вы точностью, и платите неравномерно.</p>
    <p>Q8 от исходной модели на глаз почти неотличим. Q4_K_M теряет заметно, но терпимо: страдают длинные цепочки рассуждений, устойчивость строгого формата вроде JSON по схеме из пятнадцати полей и редкая терминология. Q3 и ниже я в работу не беру, там модель начинает путать смысл, а не только формулировки.</p>
    <p>Главное правило звучит контринтуитивно. <strong>При одинаковом объёме памяти берите модель побольше в Q4, а не поменьше в Q8.</strong> Четырнадцать миллиардов в четырёх битах на тех же 12 гигабайтах обыгрывают восемь миллиардов в восьми битах почти на любой содержательной задаче. Исключение одно: сценарии, где важен строгий машинный формат ответа, там мельче квантование бьёт по дисциплине вывода сильнее, чем помогает лишний размер.</p>
    <h2>Русский язык: чем модели отличаются</h2>
    <p>Разница между моделями на русском больше, чем разница на английском, и в бенчмарках она почти не видна.</p>
    <p>Qwen последних версий сейчас рабочая база для малых размеров: 4B и 8B пишут по-русски связно, падежи держат. Llama и Mistral на английском сильны, на русском отвечают с акцентом: канцелярит, кривое согласование, иногда сваливаются в английский посреди абзаца. Gemma посередине. Отдельно стоят русские дообучения открытых моделей, вроде линейки T-lite и T-pro от Т-Банка или проекта Vikhr, они собраны поверх Qwen и Mistral и на деловой переписке ведут себя аккуратнее базовых версий.</p>
    <p>Про GigaChat и YandexGPT надо сказать прямо, потому что их регулярно предлагают «поставить на сервер». Это API в облаке провайдера, весов вы не получаете. Требование «данные не покидают Россию» они закрывают, требование «данные не покидают наш контур» нет. Разница принципиальная, и её стоит проговорить с безопасностью до закупки железа. Что имеет смысл держать у себя, а что спокойно уходит наружу, разобрано <a href="https://friendlyai.ru/news/articles/chto-nelzya-otdavat-neyroseti.html">здесь</a>.</p>
    <h2>Замер на процессоре, без видеокарты</h2>
    <p>На своём внутреннем сервере (20 ядер, 31 гигабайт памяти, GPU нет и не предвидится) мы запускали две модели через llama.cpp. Вопрос задавали рабочий, про приёмку монолитных работ, длиной около 150 токенов.</p>
    <div class="table-wrap"><table><thead><tr><th>Модель</th><th>Вес Q4_K_M</th><th>Скорость</th><th>Время ответа</th></tr></thead><tbody><tr><td>Qwen3-4B</td><td>2,4 ГБ</td><td>13,2 ток/с</td><td>11 секунд</td></tr><tr><td>GLM-4-9B</td><td>5,8 ГБ</td><td>5,9 ток/с</td><td>17 секунд</td></tr></tbody></table></div>
    <p>Я обещал владельцу «от тридцати до девяноста секунд» и ошибся втрое. Двадцать ядер тянут четырёхмиллиардную модель нормально: короткий вопрос закрывается за секунду.</p>
    <p>Качество развело модели сильнее, чем скорость. GLM выдал строительную конкретику: геодезический контроль, марка бетона по прочности, шаг арматуры и сварные швы. Qwen отвечал обобщённо и разок промахнулся мимо темы. Мы оставили обе кнопки в интерфейсе: быстрая на каждый день, медленная когда надо подумать.</p>
    <p>Экстраполяция по тем же ядрам: 14B выдаст около 4 токенов в секунду, 32B около 1,7. Тридцать вторую на процессоре ставить бессмысленно, ответ будет собираться минуту с лишним.</p>
    <h2>Где хватает маленькой модели</h2>
    <p>Список задач, которые 4-8B закрывают уверенно и без видеокарты за сотни тысяч:</p>
    <ul><li>разбор обращения по 5-10 категориям и маршрутизация в нужный отдел;</li><li>извлечение полей: телефон, ИНН, сумма, срок поставки, номер договора;</li><li>проставление тегов и рубрик, нормализация названий;</li><li>короткий пересказ письма или расшифровки звонка;</li><li>черновик типового ответа, который человек правит перед отправкой.</li></ul>
    <p>Отдельная мысль, которая экономит больше всего денег: под узкую задачу специализированная модель почти всегда обгоняет универсальную. На разборе нашего фотоархива замена языковой модели зрения на CLIP ускорила обработку кадра с 85 секунд до 57 миллисекунд без потери качества поиска. Выигрыш дала не покупка железа, а суженная постановка задачи.</p>
    <h2>Где нужна большая, и где локальная проигрывает всегда</h2>
    <p>Начинают сыпаться модели поменьше на предсказуемых вещах: инструкция с десятком условий и исключений, сведение противоречий из трёх документов, работа с текстом на 50 страниц целиком, устойчивый JSON строго по схеме, отраслевые термины, которых мало в обучающих данных.</p>
    <p>И честное, ради чего стоит читать этот раздел. <strong>Локальная модель на 8-14 миллиардов не догоняет топовую облачную на сложных рассуждениях.</strong> Разрыв не в проценты, он в другом классе задач. Юридический анализ договора, разбор нестандартной претензии, длинная многошаговая логика: тридцатидвухмиллиардная модель подойдёт близко, восьмимиллиардная не подойдёт никогда. Если пилот собирался на облаке и всех устроил, перенос на локальную восьмёрку почти наверняка разочарует.</p>
    <h2>Таблица: задача, размер, железо, цена вопроса</h2>
    <div class="table-wrap"><table><thead><tr><th>Задача</th><th>Размер модели</th><th>Железо</th><th>Чем платите</th></tr></thead><tbody><tr><td>Классификация, теги, маршрутизация</td><td>3-8B Q4</td><td>8 ГБ VRAM или 16-20 ядер CPU</td><td>практически ничем</td></tr><tr><td>Извлечение полей из документов</td><td>7-14B Q4</td><td>12-16 ГБ VRAM</td><td>брак 3-7%, нужен валидатор схемы</td></tr><tr><td>Ответы по базе знаний с поиском</td><td>8-14B Q4</td><td>12-16 ГБ VRAM</td><td>формулировки суше облачных</td></tr><tr><td>Тексты и письма на русском</td><td>14-32B Q4</td><td>24 ГБ VRAM</td><td>скоростью, 15-25 токенов в секунду</td></tr><tr><td>Разбор договоров, длинная логика</td><td>32B+ либо облако</td><td>24-48 ГБ VRAM</td><td>здесь локальная проигрывает облаку</td></tr><tr><td>Фото, сканы, распознавание</td><td>специализированные модели</td><td>8-12 ГБ VRAM</td><td>рукопись не читается вообще</td></tr></tbody></table></div>
    <h2>Как выбрать за один вечер</h2>
    <p>Возьмите 20 своих реальных примеров: обращения клиентов, куски документов, письма. Не придуманные, а такие, какие приходят на самом деле.</p>
    <p>Прогоните три кандидата разного размера через Ollama, хоть на рабочем ноутбуке с игровой картой. Ответы сложите в таблицу без подписей, кто где, и дайте оценить сотруднику, который эту работу делает руками. Слепая оценка нужна не для строгости, а потому что название модели влияет на мнение сильнее, чем её ответ.</p>
    <p>Рядом запишите время ответа. Модель, которая думает 40 секунд, проиграет более глупой и быстрой на любой живой задаче с человеком на другом конце.</p>
    <p>Час работы, зато решение будет принято по своим текстам, а не по чужому рейтингу.</p>
    <h2>Где это не работает</h2>
    <p>Нет эталона, нет выбора. Пока никто не сказал, какой ответ считается правильным, сравнение моделей превращается в спор о вкусах, а победит та, чей стиль понравился начальнику.</p>
    <p>Одновременность ломает расчёт. Модель, которая отвечает за 5 секунд одному человеку, при пяти запросах в одну секунду выстроит очередь. Лечится это vLLM с пакетной обработкой или второй картой, но не выбором другой модели.</p>
    <p>Обновление версии не бесплатно. Свежая модель отвечает лучше на бенчмарках и иногда хуже на ваших задачах, а промпты под неё придётся переписывать. Прогоняйте тот же набор из 20 примеров перед каждой сменой весов.</p>
    <p>Дообучение под себя это не «поставить модель». Fine-tune требует размеченных данных, отдельного железа и человека, который умеет. В девяти случаях из десяти нормальный поиск по документам и внятный промпт дают больше при несопоставимо меньших затратах.</p>
    <h2>Короткие ответы на частые вопросы</h2>
    <p><strong>Стоит ли брать 70B, если бюджет позволяет?</strong> Только если задача действительно про рассуждения и вы уже упёрлись в потолок тридцатидвухмиллиардной. Две карты по 24 гигабайта плюс сборка это разовые сотни тысяч рублей, а прирост качества на классификации и извлечении полей вы не заметите.</p>
    <p><strong>Какая модель лучше для русского прямо сейчас?</strong> Универсального ответа нет, и любой конкретный обесценится за пару месяцев. Рабочая процедура: берите свежий Qwen нужного размера как базу, добавьте одно русское дообучение поверх той же архитектуры и сравните на своих 20 примерах.</p>
    <p><strong>Можно ли держать несколько моделей одновременно?</strong> Да, если суммарно влезают в память. У нас на одном сервере живут четырёхмиллиардная и девятимиллиардная, вместе занимают 15 гигабайт из 31, переключение идёт кнопкой в интерфейсе. Схема удобная: быстрая для потока, тяжёлая для сложных вопросов.</p>
    <p><strong>Сколько места на диске закладывать?</strong> Считайте от 100 гигабайт с запасом. Веса весят от 2 до 40 гигабайт, а на пробу вы скачаете три-четыре штуки и забудете удалить. Мы так один раз уронили деплой на забитом диске, диагностика заняла час, лечение две минуты.</p>
    <p><strong>Модель поменьше плюс база знаний обгонит модель побольше?</strong> На фактических вопросах по вашим документам почти всегда да. Основную работу делает поиск, модель только формулирует найденное. На вопросах, требующих рассуждения, размер снова решает.</p>
    <h2>Что сделать дальше</h2>
    <p>Определитесь с задачей до похода в магазин за картой. Классификация и извлечение полей закрываются восьмимиллиардной моделью на 12 гигабайтах, а иногда и процессором. Всё, что похоже на «пусть подумает», требует либо 24 гигабайт, либо облака.</p>
    <p>Если хотите пройти этот выбор не вслепую, приходите на <a href="https://friendlyai.ru/audit.html">AI-аудит</a>: посмотрим на ваши тексты и поток запросов и скажем, какого размера модели вам хватит. Как считается общий бюджет внедрения, разобрано в статье <a href="https://friendlyai.ru/news/articles/skolko-stoit-vnedrit-ii.html">сколько стоит внедрить ИИ</a>, а что мы собираем на локальных моделях, показано на странице <a href="https://friendlyai.ru/services/razrabotka-ii-agentov.html">разработка ИИ-агентов</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Сколько стоит внедрить ИИ в компанию: из чего складывается счёт</title>
      <link>https://friendlyai.ru/news/articles/skolko-stoit-vnedrit-ii.html</link>
      <guid isPermaLink="true">https://friendlyai.ru/news/articles/skolko-stoit-vnedrit-ii.html</guid>
      <pubDate>Mon, 17 Aug 2026 09:00:00 +0500</pubDate>
      <author>bimaip@yandex.ru (FriendlyAI)</author>
      <description>Разбор расходов на внедрение ИИ: разработка, токены, сервер, поддержка. Как посчитать окупаемость в часах сотрудников и почему «бот за 15 тысяч» не взлетает.</description>
      <enclosure url="https://friendlyai.ru/assets/og-cover.png" type="image/png" length="0"/>
      <content:encoded><![CDATA[<p>Вопрос «сколько это стоит» на первой встрече звучит всегда. Честный ответ звучит скучно: зависит от того, сколько систем придётся вскрывать и в каком состоянии ваши файлы. Такой ответ никого не устраивает, и правильно.</p>
    <p>Поэтому разложу счёт на четыре части. Дальше вы сможете прикинуть порядок сами, ещё до разговора с подрядчиком.</p>
    <h2>Часть первая: разработка</h2>
    <p>Разовые деньги за то, чтобы система появилась. Внутри обычно четыре вещи:</p>
    <ul><li>разбор процесса и описание того, как он должен работать после;</li><li>сборка логики: промпты, правила, роли, сценарии отказа;</li><li>интеграции с CRM, сайтом, мессенджером, учётной системой;</li><li>тестирование на живых обращениях и правки по итогам.</li></ul>
    <p><strong>Дороже всего почти всегда обходятся интеграции.</strong> Подключить модель к боту это работа на дни. Связать бота с 1С, где номенклатура ведётся тремя менеджерами по трём правилам, работа на недели. Мы ловили в справочнике позицию «Сгон» с латинской буквой C в начале: глазами не отличишь, а поиск её не находит. Пока такие вещи не вычищены, любая автоматизация будет работать наполовину.</p>
    <p>Второй пожиратель бюджета это состояние документов. Прайсы в сканах, три редакции одного регламента, договоры только в бумаге. Про то, как это бьёт по качеству ответов, писал в разборе <a href="https://friendlyai.ru/news/articles/rag-prostymi-slovami.html">про RAG</a>.</p>
    <p>Рыночные ориентиры по России на середину 2026 года выглядят так: пилот одного модуля 80-250 тысяч рублей, коробочная база знаний 150-300 тысяч. Вилка широкая, потому что за одним и тем же словом продают очень разное. Это ориентир рынка, а не прайс, конкретная сумма считается после разбора процесса.</p>
    <h2>Часть вторая: токены</h2>
    <p>Ежемесячный расход, который пугает заранее и почти никогда не оказывается главной строкой.</p>
    <p>Считается он предсказуемо. Один разбор заявки съедает 2-4 тысячи токенов вместе с промптом. Ответ в режиме базы знаний тяжелее, 5-15 тысяч, потому что в запрос подкладываются найденные фрагменты. Диалог из десяти реплик набирает 20-40 тысяч.</p>
    <p>Дальше умножаете на поток. Три тысячи обращений в месяц по 10 тысяч токенов дают 30 миллионов токенов. У экономичных моделей вроде DeepSeek это порядок нескольких тысяч рублей в месяц. У топовых зарубежных моделей та же нагрузка выйдет в разы дороже.</p>
    <p><strong>Практический вывод: на токенах экономят не торгом, а архитектурой.</strong> Простые операции вроде классификации обращения не нужно гонять через самую умную модель. Кэшируйте повторяющиеся куски промпта. Не подкладывайте в контекст двадцать фрагментов, когда хватает пяти.</p>
    <h2>Часть третья: инфраструктура</h2>
    <p>Сервер, домен, бэкапы, мониторинг. Для типового контура с ботом, базой знаний и n8n хватает VPS на 8 гигабайт памяти, это порядка 2-4 тысяч рублей в месяц.</p>
    <p>Домен и сертификат почти бесплатны: HTTPS от Let's Encrypt продлевается сам, покупать SSL у хостера не нужно.</p>
    <p>Отдельная строка возникает, если вы решили держать модель у себя. Тогда речь про видеокарту или аренду GPU, и цифры меняются принципиально. Когда это оправдано, разбирал в статье про <a href="https://friendlyai.ru/news/articles/lokalnaya-llm-na-svoem-servere.html">локальную LLM</a>.</p>
    <p>Сюда же относится скучное: место на диске. Наш прод на сервере в гигабайт памяти пару раз упирался в забитый диск, и деплой падал на ровном месте. Мелочь, а простой реальный.</p>
    <h2>Часть четвёртая: поддержка</h2>
    <p>Строка, которую в коммерческих предложениях любят прятать. А работы тут постоянно.</p>
    <p>Поменялся прайс, надо переиндексировать базу. Обновился API мессенджера, поехала интеграция. Компания завела новую услугу, промпт агента о ней не знает. Менеджеры нашли способ обойти сценарий, и статистика перестала сходиться.</p>
    <p>Рабочий ориентир: 10-20% от стоимости разработки ежемесячно за сопровождение живой системы. Рынок сопровождения в России сейчас держится в коридоре 15-50 тысяч рублей в месяц, и это самая недооценённая часть счёта.</p>
    <p>Систему без поддержки видно за версту. Она отвечает по прайсу, который отменили полгода назад.</p>
    <h2>Таблица: что за что платим</h2>
    <div class="table-wrap"><table><thead><tr><th>Статья</th><th>Когда платим</th><th>От чего зависит сумма</th></tr></thead><tbody><tr><td>Разработка</td><td>разово</td><td>число интеграций, состояние справочников и документов</td></tr><tr><td>Токены</td><td>ежемесячно</td><td>поток обращений, выбор модели, длина контекста</td></tr><tr><td>Сервер и домен</td><td>ежемесячно</td><td>нужен ли GPU, объём базы, требования к отказоустойчивости</td></tr><tr><td>Поддержка</td><td>ежемесячно</td><td>как часто меняются прайсы, регламенты и процессы</td></tr><tr><td>Скрытое: время ваших людей</td><td>в период внедрения</td><td>кто собирает файлы и отвечает на вопросы подрядчика</td></tr></tbody></table></div>
    <p>Последняя строка удивляет чаще всего. Пилот требует одного ответственного человека со стороны заказчика, примерно на 2-4 часа в неделю. Без него проект встаёт, а деньги уже потрачены.</p>
    <h2>Как считать окупаемость</h2>
    <p>Мы считаем по часам, потому что это единственная величина, которую можно проверить.</p>
    <p>Берём консервативную ставку часа сотрудника. В нашей методике аудита стоит 900 рублей: это не зарплата в чистом виде, а полная стоимость часа с налогами, рабочим местом и накладными. Для Москвы цифра выше, для регионов близка к правде.</p>
    <p>Дальше арифметика на салфетке. Три менеджера тратят по полтора часа в день на разбор входящих заявок. Это 4,5 часа в день, около 94 часов в месяц, примерно 85 тысяч рублей. Автоматизация снимает не всё, реалистично 50-60%. Получаем экономию около 45-50 тысяч рублей ежемесячно.</p>
    <p>Теперь сравниваем. Пилот за 150 тысяч при такой экономии окупается за 3-4 месяца, дальше работает в плюс за вычетом поддержки и токенов.</p>
    <p>Три правила, чтобы счёт не оказался фантазией:</p>
    <ol><li>Считайте по факту, а не по ощущениям. Неделя замеров: сколько обращений, сколько минут на каждое.</li><li>Закладывайте, что автоматизация снимет часть работы, а не всю.</li><li>Учитывайте эффекты помимо часов: ответ ночью вместо утра, потерянные заявки, ошибки в отчётах. Их сложнее оцифровать, но иногда они и есть основная выгода.</li></ol>
    <h2>Почему «бот за 15 тысяч» заканчивается ничем</h2>
    <p>Такие предложения существуют, и формально они честные. За 15 тысяч вам соберут бота с деревом из трёх сценариев на конструкторе.</p>
    <p>Дальше происходит одно и то же. В CRM он не пишет, потому что интеграция стоит отдельно и дороже самого бота. По вашим документам не отвечает, потому что базы знаний нет. Половина клиентских вопросов не попадает в сценарии, и бот отвечает «свяжитесь с менеджером». Через месяц его выключают, а в компании поселяется уверенность, что ИИ не работает.</p>
    <p><strong>Платить надо не за бота, а за изменение процесса.</strong> Разница видна по вопросам подрядчика на первой встрече. Спрашивают про кнопки и дизайн, это конструктор. Спрашивают, сколько заявок в неделю, кто их сейчас разбирает и куда попадает результат, разговор про процесс.</p>
    <p>Мы для себя закрыли этот вопрос принципом переиспользования. Пилоты собираются из уже работающих движков портфеля, а не пишутся с нуля: лидогенерация из радара заказов, разбор прайсов из сервиса снабжения, база знаний из готовой RAG-платформы. Поэтому 2-4 недели до работающего результата, а не полгода. Написать всё заново под каждого клиента стоило бы неприлично дорого, и никакая окупаемость бы не сошлась.</p>
    <h2>Две ошибки в наших собственных оценках</h2>
    <p>Раз уж речь про честный счёт, расскажу, где мы сами промахивались.</p>
    <p><strong>Недооценили выгрузку из учётной системы.</strong> По плану на подключение справочника закладывалась неделя. По факту ушло почти три. Выгрузка отдавала номенклатуру с дублями и разными написаниями одной позиции, часть строк приходила с латинскими буквами внутри русских слов. Пока это не вычистили, сравнение работало через раз. С тех пор в оценку любого проекта с 1С входит отдельная строка на приведение справочников в порядок, и заказчику мы говорим об этом до подписания.</p>
    <p><strong>Не заложили время заказчика.</strong> Технически всё было готово, а пилот стоял три недели: ждали файлы и ответы на вопросы от единственного человека, который знал процесс, а он ушёл в отпуск. Деньги за разработку уже потрачены, эффекта нет, у обеих сторон ощущение провала. Теперь в плане пилота прямо написано, сколько часов в неделю нужен ответственный со стороны клиента и кто его подменяет.</p>
    <p>Обе истории про одно: в счёт входит не только работа подрядчика. Внедрение это совместный проект, и вторая половина расходов живёт у вас внутри.</p>
    <h2>Чек-лист: что посчитать до разговора с подрядчиком</h2>
    <ol><li>Число обращений или операций в неделю. Не «много», а цифра.</li><li>Среднее время на одну операцию. Замерьте секундомером три раза, среднее ближе к правде, чем память сотрудника.</li><li>Сколько человек участвует и по какой ставке считать час.</li><li>Где сейчас теряется время: ожидание, поиск файла, ручное копирование, переспрашивание коллеги.</li><li>Что уже автоматизировано и работает. Иногда достаточно доделать имеющееся.</li><li>Кто со стороны компании будет вести проект и сколько часов в неделю он реально может выделить.</li></ol>
    <p>Шести пунктов хватает, чтобы разговор о бюджете стал предметным. Заодно вы сможете сравнить два коммерческих предложения не по красоте презентации, а по тому, кто задал больше вопросов из этого списка.</p>
    <h2>Где внедрение не окупится</h2>
    <p>Редкий процесс. Задача раз в месяц на два часа не окупит даже разговора о ней.</p>
    <p>Процесс, который меняется каждую неделю. Пока правила не устоялись, автоматизировать нечего, вы будете переделывать сценарий быстрее, чем он приносит пользу.</p>
    <p>Процесс без цифр. Никто не знает, сколько сейчас уходит времени, значит эффект посчитать не с чем, а спор об успехе проекта будет вкусовым.</p>
    <p>Компания без владельца задачи. Если внедрение никому не поручено персонально, оно умрёт на этапе «пришлите нам файлы».</p>
    <p>И отдельный случай: попытка автоматизировать хаос. Три менеджера считают скидку тремя способами, документы лежат в личных папках. Здесь сначала наводится порядок, а ИИ приходит вторым шагом. Иначе вы получите быструю и дорогую машину для тиражирования беспорядка.</p>
    <h2>Короткие ответы на частые вопросы</h2>
    <p><strong>Можно ли начать с небольшой суммы?</strong> Можно, если сузить задачу до одного сценария и одного канала. Разбор заявок с сайта в Телеграм без интеграции с CRM стоит заметно дешевле полноценного контура. Плохая идея за небольшие деньги браться за «ИИ во всей компании»: получится ни то ни сё.</p>
    <p><strong>Почему подрядчик не называет цену сразу?</strong> Потому что до разговора он не знает, сколько у вас систем и в каком состоянии справочники. Названная наугад цифра потом превращается либо в переделку сметы, либо в срезанный объём работ. Ориентировочную вилку по типовому модулю назвать честно можно, точную сумму только после разбора процесса.</p>
    <p><strong>Что если не окупится?</strong> Для этого пилот и делается коротким. Критерий успеха согласовывается до старта: например, время обработки заявки падает вдвое. Не сошлось, вы теряете стоимость пилота, а не бюджет годового внедрения.</p>
    <p><strong>Кому принадлежит код и база знаний?</strong> Договаривайтесь на берегу и фиксируйте в договоре. Наш подход: клиенту передаются исходники и базы, система разворачивается в его контуре, ключи хранятся у него. Иначе вы арендуете собственный процесс.</p>
    <p><strong>Сколько стоит поддержка, если ничего не меняется?</strong> Сумма ниже, но не ноль. Обновляются API мессенджеров, выходят новые версии моделей, растёт база. Минимальный пакет обычно закрывает мониторинг и мелкие правки.</p>
    <h2>Что сделать до разговора о цене</h2>
    <p>Возьмите неделю и соберите три цифры по одному процессу: сколько обращений, сколько минут на штуку, сколько человек в этом участвует. Отдельно выпишите, где сейчас теряется время: ожидание ответа, поиск файла, ручное копирование в CRM.</p>
    <p>С этим листком любой разговор о бюджете становится предметным. Вы сравниваете предложение подрядчика не с ощущением «дорого», а с конкретной суммой, которую процесс съедает ежемесячно.</p>
    <p>Примеры посчитанных контуров лежат в <a href="https://friendlyai.ru/cases.html">кейсах</a>, а разницу между ботом и агентом разбирал <a href="https://friendlyai.ru/news/articles/chto-takoe-ii-agent.html">здесь</a>. Если нужна вторая пара глаз на ваших цифрах, приходите на <a href="https://friendlyai.ru/audit.html">AI-аудит</a>: посчитаем эффект по вашим часам и скажем прямо, если внедрение в вашем случае пока не окупается.</p>]]></content:encoded>
    </item>
    <item>
      <title>RAG простыми словами: как ИИ отвечает по вашим документам</title>
      <link>https://friendlyai.ru/news/articles/rag-prostymi-slovami.html</link>
      <guid isPermaLink="true">https://friendlyai.ru/news/articles/rag-prostymi-slovami.html</guid>
      <pubDate>Mon, 17 Aug 2026 09:00:00 +0500</pubDate>
      <author>bimaip@yandex.ru (FriendlyAI)</author>
      <description>Как устроен RAG: индексация документов, поиск нужного фрагмента, ответ со ссылкой на источник. Почему модель врёт без базы и что портит качество поиска.</description>
      <enclosure url="https://friendlyai.ru/assets/og-cover.png" type="image/png" length="0"/>
      <content:encoded><![CDATA[<p>Первый честный тест любого корпоративного бота выглядит так. Спрашиваешь: «какая отсрочка платежа у нас для новых клиентов из розницы?». Модель отвечает уверенно, красиво и неправильно. В договоре стоит 14 дней, бот сказал 30.</p>
    <p>Врать он не собирался. Языковая модель предсказывает правдоподобное продолжение текста, а не сверяется с вашими файлами. Ваших договоров она никогда не видела. Из тысяч чужих договоров она усвоила, что «30 дней» встречается чаще, и выдала статистику вместо факта.</p>
    <p>RAG чинит ровно эту дыру.</p>
    <h2>Что это за схема</h2>
    <p>Аббревиатура расшифровывается как retrieval-augmented generation: генерация с подтягиванием найденного. Смысл проще названия. Перед тем как ответить, система лезет в вашу библиотеку, находит подходящие куски текста и вкладывает их в запрос модели вместе с инструкцией: отвечай только по этому, чего нет, скажи «не нашёл».</p>
    <p>Важный момент, который снимает половину вопросов на переговорах: <strong>модель при этом ничему не учится</strong>. Никакого дообучения нейросети не происходит. «Обучить ИИ на наших документах» на практике значит собрать и разметить базу знаний. Меняется библиотека, а не мозг.</p>
    <p>Отсюда приятное следствие. Поменялся прайс, вы заменили файл и переиндексировали раздел. Через пять минут ассистент отвечает по-новому. С дообучением моделью пришлось бы гонять целый цикл заново.</p>
    <h2>Четыре шага под капотом</h2>
    <p><strong>Сбор.</strong> Файлы стаскиваются в одно место: договоры, регламенты, прайсы, инструкции, переписка по типовым вопросам. Формат тут вторичен, важна актуальность.</p>
    <p><strong>Нарезка.</strong> Документ режется на фрагменты по 300-800 слов, обычно с перехлёстом в пару предложений. Слишком мелкие куски теряют контекст, слишком крупные тянут в ответ мусор. Хороший ориентир: фрагмент должен читаться самостоятельно.</p>
    <p><strong>Индексация.</strong> Каждый фрагмент превращается в вектор, набор чисел, отражающий смысл. Рядом обычно держат обычный текстовый индекс BM25, потому что по артикулу ВГ-125 или номеру приказа он находит лучше любой векторной магии. Гибрид из двух поисков работает надёжнее каждого по отдельности.</p>
    <p><strong>Ответ.</strong> На вопрос система поднимает 5-10 самых близких фрагментов, отдаёт их модели и получает формулировку. К ответу прикладывается ссылка: файл, раздел, страница.</p>
    <p>Есть пятый шаг, про который забывают на старте, а он решает половину проблем. К каждому фрагменту стоит прицепить метки: отдел, тип документа, дата редакции, срок действия. Тогда поиск можно сузить до нужного среза и не тащить в ответ прошлогодний прайс. Без меток библиотека на тысячу файлов превращается в лотерею уже через квартал.</p>
    <h2>Цитата-источник это не украшение</h2>
    <p>Правило, которое мы держим железно: <strong>ни одного числа в ответе без ссылки на документ</strong>. Оно родилось на платформе для инженеров по надёжности оборудования, где ошибка в цифре стоит дорого. Там отдельный контролёр трассирует каждое утверждение базы до исходного файла, а покрытие проверяется автотестами, их набралось 187.</p>
    <p>Зачем это бизнесу попроще. Ссылка превращает ассистента из оракула в справочник. Сотрудник видит: ответ взят из «Регламент отгрузки, редакция от марта, пункт 4.2». Сомневается, открывает и проверяет за десять секунд.</p>
    <p>Без источников люди либо верят всему подряд, либо перестают пользоваться после первой ошибки. Оба варианта плохие.</p>
    <p>Во внутреннем ассистенте строительной группы мы собрали 798 фрагментов из 155 файлов, разложили по отделам и закрыли доступ между ними. Снабжение не видит документы юристов, юристы не видят закупочные цены. Проверка изоляции была отдельной задачей, и это правильно: одна утечка внутри компании убивает доверие к системе быстрее, чем десять неточных ответов.</p>
    <h2>Что портит качество: пять реальных бед</h2>
    <p><strong>Сканы.</strong> PDF, который на самом деле фотография бумаги. Текста внутри нет, индексировать нечего. Лечится распознаванием, но тут закопаны грабли. Мы потеряли время на битой русской модели Tesseract из набора tessdata_fast: движок молча срывался на английский и выдавал латинскую кашу вместо слов. Помог полный набор tessdata_best плюс предобработка картинки, чёрно-белый режим и увеличение вдвое. Мелкий шрифт из старой копии без этого не читается.</p>
    <p><strong>Таблицы.</strong> Excel и табличные PDF при тупом извлечении превращаются в поток чисел без заголовков. Ассистент потом честно находит фрагмент «125 4 320 нет» и не может сказать, что это. Таблицы надо разбирать отдельно, построчно, подставляя названия колонок в каждую строку.</p>
    <p><strong>Дубли регламентов.</strong> Самая частая беда живых компаний. В папке лежат три версии одного приказа, две без даты. Поиск находит все три, модель выбирает случайную. Правило простое: одна действующая редакция в базе, архив отдельно и вне индекса.</p>
    <p><strong>Грязные справочники.</strong> В номенклатуре 1С мы ловили позицию «Сгон» с латинской C в начале. Глазами не отличить, поиск молча не находит. Перед индексацией такие гомоглифы приходится нормализовать, иначе часть базы существует, но недоступна.</p>
    <p><strong>Устная традиция.</strong> Половина знаний компании нигде не записана. Ассистент физически не найдёт того, чего нет в файлах. Обычно первый месяц проекта уходит не на код, а на то, чтобы люди выгрузили из головы хотя бы топ-30 вопросов с ответами.</p>
    <h2>Как понять, что база работает</h2>
    <p>Соберите 30-50 настоящих вопросов, которые сотрудники задают друг другу в чатах. К каждому запишите правильный ответ и файл, где он лежит. Получится тест.</p>
    <p>Дальше прогоняете его после каждого изменения базы и смотрите три цифры:</p>
    <ul><li>сколько ответов совпало с эталоном;</li><li>сколько раз система честно сказала «не нашёл» (это не провал, а нормальное поведение);</li><li>сколько раз ответ был уверенным и неправильным.</li></ul>
    <p>Прогонять тест надо не один раз. Библиотека живёт: приходят новые прайсы, отменяются условия, меняются люди. Мы ставим переиндексацию по расписанию и раз в месяц смотрим на тот же список вопросов. Просело качество, значит в базу заехало что-то лишнее или кто-то положил вторую редакцию поверх первой.</p>
    <p>Третья цифра важнее всех. Она должна быть нулём или близко к нулю. Уверенная ложь опаснее отказа, потому что её никто не перепроверяет.</p>
    <h2>Где RAG не работает</h2>
    <p>Он не считает. Вопрос «сколько всего договоров с отсрочкой больше 30 дней» это не поиск по смыслу, это запрос к базе. Поиск найдёт пять похожих договоров и сложит их как получится. Такие вещи решаются связкой с SQL или выгрузкой из учётной системы, а не эмбеддингами.</p>
    <p>Он не отвечает на слишком общие вопросы. «Расскажи про нашу работу с поставщиками» это не вопрос, под него подходит половина библиотеки. Ассистент выдаст размытую сводку, и вы решите, что система плохая.</p>
    <p>Он не читает рукописное. Пометки на полях, подписи от руки, заполненные ручкой бланки остаются вне игры. Локальные модели зрения с этим тоже не справляются, проверяли.</p>
    <p>Он не заменяет порядок в документах. Если у вас нет хозяина у папки с регламентами, через полгода в базе снова окажутся три редакции одного приказа. Технология не лечит организационный бардак, она его подсвечивает.</p>
    <p>И последнее, неприятное. RAG не даёт стопроцентной точности. На хорошо собранной базе доля верных ответов на типовых вопросах высокая, но остаток всегда есть. Поэтому в ответственных сценариях ассистент готовит черновик и показывает источник, а решение принимает человек. Такой же принцип мы применяем к <a href="https://friendlyai.ru/news/articles/chto-takoe-ii-agent.html">ИИ-агентам с правом действовать в системах</a>.</p>
    <h2>Три провала на живых базах</h2>
    <p><strong>Слишком крупные куски.</strong> Первую версию мы нарезали по две тысячи слов: казалось логичным, что чем больше контекста, тем лучше. Получилось наоборот. В найденный фрагмент попадал весь раздел договора, модель тонула в тексте и цепляла соседний пункт вместо нужного. Порезали до 400-600 слов с перехлёстом в два предложения, и точность выросла без единой правки промпта.</p>
    <p><strong>Архив почты в базе.</strong> Идея звучала красиво: вся переписка отдела за три года, там же все ответы. На практике поиск начал находить отменённые договорённости и черновики, которые никто не согласовывал. Отличить живое от мёртвого система не могла, а сотрудники получали ответ со ссылкой на письмо, где условия обсуждались, но не были приняты. Почту из базы убрали. Вместо неё завели раздел с выжимками: типовой вопрос и утверждённый ответ, десять строк вместо трёх тысяч писем.</p>
    <p><strong>Двухколоночный PDF.</strong> Отраслевой регламент был свёрстан в две колонки. Извлечение текста шло построчно, и строки двух колонок склеивались в одну. Фрагменты получались бессмысленными, а поиск исправно их находил. Помог разбор с учётом координат блоков через pymupdf. Мораль: перед индексацией стоит глазами посмотреть, что вытащилось из десятка случайных файлов, а не сразу гнать всю папку.</p>
    <h2>С чего начать у себя</h2>
    <p>Возьмите один отдел и один тип вопросов. Не «вся база компании», а, скажем, условия работы с клиентами: прайс, шаблон договора, регламент отгрузки, десять частых вопросов. Пять-семь файлов достаточно для первого запуска.</p>
    <p>Дальше по шагам:</p>
    <ol><li>Выделите ответственного за содержимое, без него база протухнет за квартал.</li><li>Почистите дубли и пометьте действующие редакции датой в имени файла.</li><li>Соберите тестовый список вопросов, пока не написана ни одна строка кода.</li><li>Запустите пилот на этих файлах и дайте его пяти сотрудникам на неделю.</li><li>Соберите вопросы, на которые он ответил плохо, и расширяйте базу по ним.</li></ol>
    <p>Такой пилот занимает 2-4 недели вместе с интеграцией в Телеграм или внутренний портал. Дольше обычно тянется не разработка, а сбор файлов на стороне заказчика.</p>
    <h2>Короткие ответы на частые вопросы</h2>
    <p><strong>Сколько документов нужно для старта?</strong> Пяти-семи хватает, чтобы получить работающий пилот. Тысяча файлов на старте вредит: вы месяц собираете папку, а потом выясняется, что половина устарела. Растите базу по реальным вопросам, на которые ассистент не смог ответить.</p>
    <p><strong>Наши файлы попадут в обучение чужой нейросети?</strong> При правильной схеме нет. Фрагменты подкладываются в запрос, модель их не запоминает и никуда не сохраняет. Если требования жёстче, вся обработка переносится на ваш сервер, про это писал в разборе <a href="https://friendlyai.ru/news/articles/lokalnaya-llm-na-svoem-servere.html">про локальную LLM</a>.</p>
    <p><strong>Можно ли подключить к базе 1С или CRM?</strong> Можно, но это другая механика. Регламент ищется по смыслу, а остаток на складе берётся запросом к системе. Обычно ассистент умеет и то и другое: сначала решает, что перед ним, потом идёт в нужный источник.</p>
    <p><strong>Как закрыть документы, которые не всем можно видеть?</strong> Правами на уровне фрагмента. У каждого куска стоит метка отдела, поиск фильтруется по правам сотрудника. Проверять изоляцию нужно отдельным тестом, а не на честном слове разработчика.</p>
    <p><strong>Как быстро база узнаёт про новый прайс?</strong> Переиндексация раздела занимает минуты. Мы обычно вешаем её на расписание плюс кнопку «обновить сейчас» для ответственного.</p>
    <p>Собранные контуры и метрики лежат в <a href="https://friendlyai.ru/cases.html">кейсах</a>, а про расходы на токены, сервер и поддержку я отдельно посчитал в статье про <a href="https://friendlyai.ru/news/articles/skolko-stoit-vnedrit-ii.html">стоимость внедрения</a>. Хотите проверить свою библиотеку до разработки, приходите на <a href="https://friendlyai.ru/audit.html">AI-аудит</a>: посмотрим, что у вас за файлы, и скажем честно, если половину придётся сначала перенабрать.</p>]]></content:encoded>
    </item>
    <item>
      <title>n8n с нуля: первый рабочий сценарий автоматизации за вечер</title>
      <link>https://friendlyai.ru/news/articles/n8n-pervyy-scenariy.html</link>
      <guid isPermaLink="true">https://friendlyai.ru/news/articles/n8n-pervyy-scenariy.html</guid>
      <pubDate>Mon, 17 Aug 2026 09:00:00 +0500</pubDate>
      <author>bimaip@yandex.ru (FriendlyAI)</author>
      <description>Что такое ноды и триггеры в n8n и как собрать цепочку «заявка с сайта, разбор ИИ, карточка в CRM, уведомление». Пошагово, с граблями и границами no-code.</description>
      <enclosure url="https://friendlyai.ru/assets/og-cover.png" type="image/png" length="0"/>
      <content:encoded><![CDATA[<p>Заявка с сайта у большинства компаний живёт так. Падает письмо на общий ящик. Кто-то из менеджеров его замечает, копирует телефон в CRM, пишет от руки «интересуется монтажом», ставит себе напоминание. На всё уходит 6-8 минут, если человек за компьютером. Ночью и в выходные заявка просто ждёт.</p>
    <p>Эту цепочку собирают в n8n за вечер. Не идеально, но рабоче. Дальше расскажу, как именно, и где такой подход упирается в потолок.</p>
    <h2>Что такое n8n и почему не Make</h2>
    <p>n8n это конструктор автоматизаций: вы соединяете блоки, а платформа гоняет по ним информацию. Главное отличие от облачных Zapier и Make в том, что n8n ставится на свой сервер. Одна команда docker compose up, и у вас личный сервис на своём домене.</p>
    <p>Для российской компании это решает три вопроса разом. Оплата не зависит от зарубежной карты. Персональные сведения клиентов не улетают в чужое облако. Цена не растёт с числом операций, вы платите за сервер, а не за каждый запуск.</p>
    <p>Минус честный: сервер придётся администрировать. Обновления, бэкапы базы, мониторинг. Если в компании нет никого, кто дружит с консолью, облачный тариф с оплатой по подписке будет спокойнее.</p>
    <h2>Ноды и триггеры на пальцах</h2>
    <p><strong>Нода</strong> это один шаг. Получить письмо, вызвать API, преобразовать текст, записать строку. У ноды есть вход, настройки и выход в виде набора элементов.</p>
    <p><strong>Триггер</strong> это первая нода, она запускает всё остальное. Три рабочих лошадки:</p>
    <ul><li><strong>Webhook.</strong> n8n выдаёт адрес, на который ваш сайт отправляет заявку. Срабатывает мгновенно.</li><li><strong>Schedule.</strong> Запуск по расписанию, скажем каждые 15 минут или в 9 утра.</li><li><strong>Триггеры сервисов.</strong> Новое письмо в почте, сообщение в Telegram, строка в таблице.</li></ul>
    <p>Между нодами бегает JSON. Это стоит понять сразу: каждый шаг отдаёт список объектов, следующий шаг обрабатывает каждый объект отдельно. Половина ошибок новичка растёт из непонимания, что нода получила не один элемент, а двадцать.</p>
    <h2>Сценарий: заявка, разбор ИИ, CRM, уведомление</h2>
    <p>Собираем цепочку из шести нод.</p>
    <p><strong>1. Webhook.</strong> Метод POST, путь произвольный. В настройках сразу ставьте ответ «сразу», иначе форма на сайте будет висеть, пока отработает вся цепочка, а это 3-5 секунд с вызовом модели. Посетитель за это время успеет уйти.</p>
    <p><strong>2. Set.</strong> Приводим поля к общему виду: имя, контакт, текст, источник, метка времени. Полезно на будущее: когда добавится вторая форма и Telegram, все входы будут сводиться к одной структуре.</p>
    <p><strong>3. HTTP Request к языковой модели.</strong> Тут происходит вся магия. Отправляем текст заявки с инструкцией разобрать его на поля.</p>
    <p>Промпт, который у нас выжил после переделок, устроен так:</p>
    <pre><code>Ты разбираешь заявки строительной компании.
Верни ТОЛЬКО JSON без пояснений:
{&quot;тип_работ&quot;: &quot;&quot;, &quot;объект&quot;: &quot;&quot;, &quot;срочность&quot;: &quot;низкая|средняя|высокая&quot;,
 &quot;бюджет_упомянут&quot;: true|false, &quot;готов_к_звонку&quot;: true|false,
 &quot;краткое_резюме&quot;: &quot;одно предложение&quot;}
Если поля нет в тексте, оставь пустую строку. Не выдумывай.
Текст заявки: {{ $json.text }}</code></pre>
    <p>Температуру ставим 0. Модель должна быть скучной и повторяемой, творчество здесь вредит.</p>
    <p><strong>4. Code.</strong> Проверяем ответ. Пять строк на JavaScript: попробовать разобрать JSON, при ошибке подставить заглушку и поднять флаг «разобрать вручную». Без этой ноды первая же нестандартная заявка уронит весь сценарий. Модель иногда оборачивает JSON в markdown-блок, это лечится вырезанием обратных кавычек.</p>
    <p><strong>5. Bitrix24 или amoCRM.</strong> Создаём лид: имя, телефон, комментарий из краткого резюме, источник, ответственный по правилу распределения. Если срочность высокая, лид сразу летит старшему менеджеру.</p>
    <p><strong>6. Telegram.</strong> Сообщение в чат отдела: три строки и ссылка на карточку. Менеджеры смотрят в телефон чаще, чем в CRM, и это не изменить регламентом.</p>
    <p>Итого шесть нод. Первая сборка занимает вечер, вылизывание под реальный поток заявок примерно неделю.</p>
    <h2>Тест перед запуском</h2>
    <p>Не включайте цепочку на боевой трафик сразу. Возьмите 20 старых заявок из почты и прогоните через сценарий с отключённой записью в CRM.</p>
    <p>Смотрите на две вещи: правильно ли модель разложила поля и что произошло с кривыми заявками. Кривые в выборке обязательно найдутся: пустой текст, «перезвоните», сообщение на транслите, спам про SEO-услуги.</p>
    <p>Короткий чек-лист перед боевым включением:</p>
    <ol><li>Пустая заявка не роняет сценарий, а помечается флагом.</li><li>Спам не создаёт лид в CRM.</li><li>Повторная отправка той же формы не порождает второй карточки.</li><li>Уведомление в чат приходит с телефоном и ссылкой, чтобы менеджеру не пришлось искать.</li><li>При недоступности модели заявка всё равно попадает в CRM, пусть без разбора. Терять обращение из-за чужого сбоя нельзя.</li></ol>
    <p>У нас на такой прогонке всплыло, что модель считала срочным всё, где встречалось слово «срочно», включая рекламные рассылки. Добавили в промпт условие про источник, и мусор перестал будить старшего менеджера.</p>
    <h2>Три грабли, на которые мы наступили</h2>
    <p><strong>Ретраи дублируют лидов.</strong> Сеть моргнула, n8n повторил шаг, в CRM появились две одинаковые карточки. Лечится ключом идемпотентности: перед созданием ищем лид по телефону за последние сутки. Пять минут работы, а без них менеджеры две недели ругаются на дубли.</p>
    <p><strong>Исходящие к Telegram могут не уходить.</strong> На одном из наших серверов запросы к api.telegram.org резались провайдером, нода отваливалась по таймауту без внятной ошибки. Пришлось поднимать релей. Диагностика заняла в разы больше времени, чем починка, потому что в интерфейсе это выглядело как «иногда не работает».</p>
    <p><strong>Молчаливые падения.</strong> Сценарий сломался в четверг, заметили во вторник, потому что никто не заметил тишину. С тех пор правило: у каждого рабочего процесса есть Error Workflow, который пишет в чат «сценарий такой-то упал, вот ошибка». И раз в сутки сценарий-сторож шлёт короткую сводку: столько-то запусков, столько-то ошибок.</p>
    <h2>Безопасность и порядок: то, о чём вспоминают поздно</h2>
    <p><strong>Вебхук без секрета.</strong> Адрес вашего вебхука это открытая дверь. Мы однажды оставили путь простым и предсказуемым, и через неделю в CRM начали падать пустые лиды от чужих сканеров. Минимум, который надо сделать сразу: длинный случайный путь, проверка секретного заголовка от формы, ограничение частоты запросов.</p>
    <p><strong>Ключи внутри нод.</strong> Токен модели и пароль CRM должны жить в разделе Credentials, а не в поле HTTP-ноды. Разница вылезает при экспорте схемы: в первом случае вы отдаёте коллеге JSON без секретов, во втором отправляете ему свои ключи вместе с файлом.</p>
    <p><strong>Одна среда на всё.</strong> Правка сценария на живом потоке заявок это игра в рулетку. Заведите вторую копию рабочего процесса и тестовый чат для уведомлений. Отладились там, потом перенесли. Звучит занудно, но именно этот шаг спасает от объяснений с отделом продаж, почему полдня не приходили заявки.</p>
    <p><strong>Логи и хранение.</strong> По умолчанию n8n складывает историю выполнений в базу, и она пухнет. Через полгода мы получили распухший том и упавший сервис на ровном месте. Настройте срок хранения выполнений и бэкап базы, где лежат сами сценарии.</p>
    <h2>Где no-code упирается в потолок</h2>
    <p>n8n прекрасен, пока схема помещается на экран. Потолок ощущается на трёх симптомах.</p>
    <p>Первый: нод стало больше сорока, а ветвлений больше десяти. Схема превращается в паутину, править её страшно, а понять чужую логику без автора невозможно.</p>
    <p>Второй: понадобились циклы и сложные преобразования. Обойти 500 позиций прайса, сравнить с прошлой выгрузкой, посчитать изменения. В нодах это делается через боль, в двадцати строках Python за полчаса.</p>
    <p>Третий: нужен нормальный жизненный цикл. Версии, тестовая среда, откат к прошлой версии, код-ревью. n8n хранит сценарии в своей базе, и git-история из этого получается так себе.</p>
    <p>Наша рабочая граница выглядит так:</p>
    <ul><li>всё, что связывает сервисы и живёт на вебхуках, остаётся в n8n;</li><li>бизнес-логика, расчёты и работа с большими объёмами переезжают в отдельный сервис на Python с PostgreSQL;</li><li>n8n дёргает этот сервис как обычный HTTP-эндпоинт и отвечает за маршрутизацию.</li></ul>
    <p>Гибрид держится годами. Чистый no-code на сложной логике превращается в техдолг, который не поддержит никто, кроме автора схемы.</p>
    <h2>Чего не ждать от первого сценария</h2>
    <p>Он не заменит менеджера. Разбор заявки это подготовка карточки, а звонит и продаёт человек.</p>
    <p>Он не сделает поток заявок чище. Если с сайта приходит спам, автоматизация начнёт быстро и аккуратно заводить спам в CRM. Фильтр придётся ставить отдельно.</p>
    <p>Он не переживёт смену форм без присмотра. Маркетолог поменял поля в форме, сценарий начал получать другие ключи и молча складывать пустые лиды. Проверяйте цепочку после любой правки сайта.</p>
    <p>И он не окупится, если заявок пять в месяц. Считайте до сборки: минуты на обработку, умноженные на число обращений. Как считать эффект в часах и рублях, разбирал в статье про <a href="https://friendlyai.ru/news/articles/skolko-stoit-vnedrit-ii.html">стоимость внедрения ИИ</a>.</p>
    <h2>Следующий шаг</h2>
    <p>План на ближайшие выходные, если хочется попробовать руками. Поднимите n8n в Docker на любом сервере за пару сотен рублей в месяц. Соберите цепочку из трёх нод: Webhook, Set, Telegram. Убедитесь, что заявка с тестовой формы долетает в чат за секунду.</p>
    <p>Дальше добавляйте разбор моделью и запись в CRM. По одной ноде за раз, каждую проверяя на старых заявках.</p>
    <h2>Короткие ответы на частые вопросы</h2>
    <p><strong>n8n бесплатный?</strong> Версия для своего сервера бесплатна для внутреннего использования компании, платить надо только за сам сервер. Облачные тарифы платные и считаются по числу выполнений. Лицензию перед коммерческим использованием стоит прочитать своими глазами, там есть нюансы про перепродажу.</p>
    <p><strong>Нужен ли программист?</strong> Для первых сценариев нет, хватит человека, который не боится JSON и умеет читать документацию API. Программист понадобится на двух вещах: поднять и обновлять сервер, написать нестандартные преобразования в Code-нодах.</p>
    <p><strong>Можно ли обойтись без своего сервера?</strong> Можно, есть облачная версия и есть Make. Для компании, где нет никого с доступом к консоли, это честный вариант. Взамен вы отдаёте содержимое заявок стороннему сервису и платите за объём.</p>
    <p><strong>А 1С?</strong> Прямой ноды нет, работают через промежуточный слой: обмен файлами по расписанию либо HTTP-сервис на стороне 1С. Так мы и делаем в проектах для снабжения, обмен идёт JSON-файлами по таймеру.</p>
    <p><strong>Сколько сценариев тянет маленький сервер?</strong> Пара гигабайт памяти спокойно держит десятки лёгких сценариев. Упирается всё обычно не в мощность, а в базу с историей выполнений и в сторонние API с их лимитами.</p>
    <p>Когда сценариев станет больше пяти и они начнут задевать учётную систему, самое время думать про архитектуру, а не про новые ноды. Как выглядит связка агента, базы знаний и автоматизации целиком, показываю в <a href="https://friendlyai.ru/cases.html">кейсах</a> и в разборе про <a href="https://friendlyai.ru/news/articles/chto-takoe-ii-agent.html">ИИ-агентов против чат-ботов</a>. Не хочется собирать самому, принесите свой процесс на <a href="https://friendlyai.ru/audit.html">AI-аудит</a>: нарисуем схему сценария и скажем, сколько в нём реально нод.</p>]]></content:encoded>
    </item>
    <item>
      <title>Локальная LLM на своём сервере: когда оправдана, а когда нет</title>
      <link>https://friendlyai.ru/news/articles/lokalnaya-llm-na-svoem-servere.html</link>
      <guid isPermaLink="true">https://friendlyai.ru/news/articles/lokalnaya-llm-na-svoem-servere.html</guid>
      <pubDate>Sun, 16 Aug 2026 09:00:00 +0500</pubDate>
      <author>bimaip@yandex.ru (FriendlyAI)</author>
      <description>Когда нейросеть стоит поставить на свой сервер: требования к железу, разница в качестве с облаком, гибридная схема и честный расчёт, где это переплата.</description>
      <enclosure url="https://friendlyai.ru/assets/og-cover.png" type="image/png" length="0"/>
      <content:encoded><![CDATA[<p>«Наши сведения наружу уходить не должны». Фраза, с которой начинается каждый второй разговор про ИИ в компании с собственной службой безопасности. Правильная фраза, но за ней редко стоит конкретика.</p>
    <p>Уточняющий вопрос обычно ломает картину. Что именно нельзя отдавать? Прайс, который лежит на сайте? Регламент отгрузки, который знает каждый водитель? Или паспортные сведения сотрудников и себестоимость, которую не видят даже менеджеры?</p>
    <p>Ответ на этот вопрос определяет бюджет. Иногда разница составляет сотни тысяч рублей.</p>
    <h2>Что значит «локально»</h2>
    <p>Модель лежит файлом на вашем сервере. Запрос уходит на этот же сервер, ответ возвращается оттуда же. Наружу не летит ничего, интернет для работы не нужен вовсе.</p>
    <p>Технически это обычно Ollama, если нужен простой запуск и один-два пользователя, либо vLLM, когда нужна нагрузка и очередь запросов. Обе штуки ставятся в Docker и поднимают HTTP-интерфейс, совместимый с привычным API. Для приложения смена облачной модели на локальную это правка трёх переменных окружения: адрес, ключ, название модели. Мы держим слой модели сменяемым во всех проектах именно ради такой гибкости.</p>
    <p>У нас Ollama работает общим сервисом на портфель. Пара задач с картинками закрыта им бесплатно, вместо оплаты за каждый снимок.</p>
    <h2>Три причины, ради которых это делают</h2>
    <p><strong>Договор и закон.</strong> Клиент подписал обязательство не передавать сведения третьим лицам. Или речь про персональные сведения, медицинские записи, банковскую тайну. Тут спор заканчивается, не начавшись: обработка идёт в вашем контуре.</p>
    <p><strong>Объём.</strong> При миллионах запросов в месяц счёт за токены становится заметной строкой, и своё железо начинает выигрывать по деньгам. Порог наступает позже, чем кажется, но он реален.</p>
    <p><strong>Независимость.</strong> Внешний сервис может поднять цену, поменять условия, закрыть доступ из вашей страны, отключить модель, на которую вы всё настроили. Своя модель на диске работает и завтра, и через год, ровно так же.</p>
    <h2>Требования к железу без иллюзий</h2>
    <p>Главный ресурс это память видеокарты. Порядки такие:</p>
    <div class="table-wrap"><table><thead><tr><th>Размер модели</th><th>Квантование</th><th>Нужно VRAM</th><th>Пример железа</th></tr></thead><tbody><tr><td>7-8B</td><td>4 бита</td><td>6-8 ГБ</td><td>RTX 3060 12 ГБ</td></tr><tr><td>13-14B</td><td>4 бита</td><td>10-12 ГБ</td><td>RTX 4070 Ti</td></tr><tr><td>30-32B</td><td>4 бита</td><td>20-24 ГБ</td><td>RTX 3090 / 4090</td></tr><tr><td>70B+</td><td>4 бита</td><td>45+ ГБ</td><td>две карты или серверный ускоритель</td></tr></tbody></table></div>
    <p>Квантование это сжатие весов. Модель в 4 битах теряет немного качества и сильно экономит память, для рабочих задач разница обычно приемлема.</p>
    <p>Про запуск на процессоре надо сказать прямо. Модель на 8 миллиардов параметров на обычном сервере без видеокарты выдаёт единицы токенов в секунду. Ответ в 300 слов будет собираться около минуты. Для живого чата с клиентом это неприемлемо. Для ночной пакетной обработки, где надо разобрать 500 писем до утра, вполне рабочий вариант.</p>
    <h2>Качество: где локальная проигрывает облаку</h2>
    <p>Скажу честно, потому что на этом ломается больше всего ожиданий. Модель на 8 миллиардов параметров это не то же самое, что топовая облачная модель, как бы красиво ни выглядели бенчмарки.</p>
    <p>Что локальные модели среднего размера делают уверенно:</p>
    <ul><li>классификация обращений по категориям;</li><li>извлечение полей из текста: телефон, адрес, сумма, срок;</li><li>краткий пересказ письма или расшифровки звонка;</li><li>поиск по базе знаний в связке с <a href="https://friendlyai.ru/news/articles/rag-prostymi-slovami.html">RAG</a>, где основную работу делает поиск, а модель только формулирует;</li><li>черновики типовых ответов.</li></ul>
    <p>Где начинают сыпаться: длинные инструкции с десятком условий, устойчивый JSON строго по схеме, сложные рассуждения с несколькими шагами, редкая терминология. Русский язык у моделей поменьше тоже слабее: формулировки становятся корявыми, падежи плывут.</p>
    <p>Отдельный урок из нашего фотоархива на пять терабайт. Мы сначала гоняли снимки через модель зрения, каждый кадр обрабатывался около 85 секунд. Задача была узкой: найти похожие изображения. Перешли на специализированную модель CLIP, получили 57 миллисекунд на кадр. Разница в тысячи раз, качество для этой задачи не пострадало.</p>
    <p>Мораль простая. <strong>Маленькая модель под конкретную задачу почти всегда лучше большой универсальной</strong>, если задачу удалось нормально сформулировать.</p>
    <p>И ещё одно ограничение, которое стоит знать заранее: рукописный текст локальные модели зрения не читают. Проверяли, результат бесполезный.</p>
    <h2>Три провала при переносе на своё железо</h2>
    <p><strong>Поставили модель на сервер без видеокарты.</strong> Логика была простая: сервер есть, память есть, попробуем. Восьмимиллиардная модель запустилась и честно работала, выдавая ответ примерно за минуту. Для чата с сотрудником это приговор: человек успевает переспросить коллегу и забыть про бота. Оставили этот сервер под ночную пакетную обработку, а живой диалог вернули в облако.</p>
    <p><strong>Забили диск весами.</strong> Модели весят от четырёх до сорока гигабайт. Скачали три штуки на пробу, забыли удалить, через месяц деплой упал с невнятной ошибкой. Диагностика заняла час, лечение две минуты. Правило после этого случая: перед любой выкладкой смотрим свободное место, а старые веса чистим по расписанию.</p>
    <p><strong>Ждали строгий JSON от маленькой модели.</strong> Сценарий разбора заявок требовал ответа строго по схеме. Облачная модель справлялась почти всегда, локальная восьмёрка ломала формат примерно в каждом седьмом случае: лишний текст вокруг, кавычки не те, поле пропало. Спасла связка из двух приёмов. Сначала валидатор проверяет схему, при ошибке идёт повтор с более жёсткой инструкцией. Если и это не помогло, запрос уходит в облако как запасной вариант. Доля брака упала до единиц процентов.</p>
    <h2>Гибридная схема, которую мы считаем разумной</h2>
    <p>Крайности редко работают. Всё в облако страшно, всё локально дорого и медленно. Между ними живёт схема с маршрутизацией.</p>
    <p>Работает так. Входящий запрос сначала попадает в классификатор, часто это простая локальная модель или обычные правила. Дальше развилка.</p>
    <ol><li>Запрос содержит персональные сведения, суммы сделок, себестоимость: обрабатывается локально, наружу не уходит.</li><li>Запрос безобидный и требует хорошего качества: уходит в облачную модель.</li><li>Запрос требует облака, но содержит чувствительные куски: перед отправкой их маскируют.</li></ol>
    <p>Третий пункт заслуживает пояснения. Маскирование это подстановка меток вместо ФИО, телефонов и номеров договоров. Наружу уходит текст с «КЛИЕНТ_1» и «ТЕЛЕФОН_1», обратно приходит ответ с теми же метками, а подстановка настоящих значений происходит уже у вас. Реализуется парой регулярных выражений и словарём, работает надёжно на типовых форматах.</p>
    <p>Такая схема даёт качество облака там, где оно нужно, и закрывает то, что закрывать обязательно.</p>
    <h2>Считаем деньги</h2>
    <p>Аренда сервера с приличной видеокартой в России обходится в десятки тысяч рублей в месяц, покупка своей карты уровня 4090 это разовые сотни тысяч плюс сборка и место в стойке. Цифры плавают, проверяйте актуальные тарифы перед решением.</p>
    <p>Теперь сравните с расходом на токены. Контур с потоком в три тысячи обращений в месяц на экономичной модели тратит порядок нескольких тысяч рублей. Разница на порядок, и не в пользу своего железа.</p>
    <p>Точка, где локальный запуск выигрывает по деньгам, начинается на действительно больших объёмах: сотни тысяч запросов в месяц, постоянная фоновая обработка документов, расшифровки всех звонков компании. У малого бизнеса такого потока обычно нет, и тогда локальная модель ставится не ради экономии, а ради требований безопасности. Это нормально, просто надо называть вещи своими именами. Как считать общий счёт на внедрение, разбирал <a href="https://friendlyai.ru/news/articles/skolko-stoit-vnedrit-ii.html">здесь</a>.</p>
    <h2>Где это не работает и чего не ждать</h2>
    <p>Не ждите качества топовой облачной модели. Разрыв заметен, особенно на сложных инструкциях и длинном контексте. Если пилот собирался на облаке и всех устроил, перенос на локальную восьмёрку почти наверняка разочарует.</p>
    <p>Не ставьте локальную модель, если некому её обслуживать. Обновления, драйверы, мониторинг температуры, забитый диск с весами моделей по 20 гигабайт. Это работа системного администратора, и она не разовая.</p>
    <p>Не считайте локальность синонимом безопасности. Сервер с открытым наружу портом без авторизации небезопасен независимо от того, где крутится модель. Начинать надо с модели угроз и разграничения доступа, а не с покупки видеокарты. Во внутреннем ассистенте строительной группы мы отдельно проверяли изоляцию между отделами: снабжение не видит документы юристов, и это оказалось важнее выбора модели.</p>
    <p>Не переносите на своё железо всё подряд «на всякий случай». Публичный прайс, тексты для сайта, ответы на частые вопросы клиентов спокойно обрабатываются в облаке. Гоняя их локально, вы платите деньгами и качеством за спокойствие, которое ничего не защищает.</p>
    <p>И последнее. Локальная модель не отменяет базу знаний. Без <a href="https://friendlyai.ru/news/articles/rag-prostymi-slovami.html">подключённых документов</a> она будет выдумывать ровно так же, как облачная, только менее складно.</p>
    <p>Сводка по трём вариантам:</p>
    <div class="table-wrap"><table><thead><tr><th>Вариант</th><th>Когда брать</th><th>Чем платите</th></tr></thead><tbody><tr><td>Облако</td><td>нет чувствительных сведений, нужен максимум качества, поток небольшой</td><td>токенами и зависимостью от провайдера</td></tr><tr><td>Локально</td><td>требования безопасности или очень большой поток</td><td>железом, скоростью и работой админа</td></tr><tr><td>Гибрид</td><td>смешанный поток, часть запросов чувствительная</td><td>усложнением схемы и маршрутизацией</td></tr></tbody></table></div>
    <h2>Чек-лист перед покупкой видеокарты</h2>
    <ol><li>Посчитайте поток: сколько запросов в месяц и какой длины. Без этой цифры разговор про железо бессмысленный.</li><li>Соберите пилот на облачной модели и замерьте качество. Это будет ваша планка, с которой сравнивается локальный вариант.</li><li>Прогоните ту же задачу на локальной модели через Ollama, хоть на рабочем ноутбуке с игровой картой. Час работы, зато вы увидите реальную разницу на своих текстах, а не на бенчмарках.</li><li>Проверьте требования: что именно у вас нельзя отдавать наружу и чем это подтверждено. Договор, закон, внутренний приказ.</li><li>Найдите человека, который будет это обслуживать. Нет такого человека, нет локального контура.</li><li>Сравните годовую стоимость двух вариантов: железо с администрированием против токенов при вашем потоке.</li></ol>
    <p>Порядок важен. Мы видели компании, которые начинали с четвёртого пункта, покупали карту и полгода искали ей задачу.</p>
    <h2>Короткие ответы на частые вопросы</h2>
    <p><strong>Какую модель брать для русского языка?</strong> Смотрите на свежие открытые модели среднего размера, они за последний год заметно подтянулись по русскому. Универсального ответа нет: берите две-три кандидатуры и прогоняйте на своих текстах, разница на конкретной задаче бывает драматической.</p>
    <p><strong>Хватит ли одной видеокарты на отдел?</strong> Для десятка сотрудников с редкими запросами обычно да. Проблема не в числе людей, а в одновременности: когда пять человек пишут в одну секунду, запросы встают в очередь. Лечится либо второй картой, либо vLLM с пакетной обработкой.</p>
    <p><strong>Можно ли арендовать GPU вместо покупки?</strong> Да, и для проверки гипотезы это разумнее покупки. Аренда даёт возможность выйти из истории, если через два месяца станет понятно, что локальный запуск не нужен.</p>
    <p><strong>Что делать с обновлением моделей?</strong> Обновлять по желанию, а не автоматически. Новая версия может ответить лучше на одних задачах и хуже на ваших. Прогоняйте тот же набор тестовых вопросов, что и для базы знаний, и меняйте модель только при росте качества.</p>
    <p><strong>Нужен ли интернет локальному контуру?</strong> Для работы модели нет. Он понадобится для скачивания весов и обновлений системы. Полностью изолированный контур собрать можно, это отдельная работа с ручной доставкой обновлений.</p>
    <h2>Как решить за один вечер</h2>
    <p>Сядьте и выпишите два списка. В первом то, что нельзя отдавать наружу совсем: персональные сведения, себестоимость, условия эксклюзивных договоров. Во втором всё остальное.</p>
    <p>Дальше посмотрите, какая доля запросов вашего будущего ассистента попадёт в первый список. Меньше десятой части, значит стройте на облаке, а редкие чувствительные случаи закрывайте маскированием или ручной обработкой. Больше половины, значит планируйте локальный контур и закладывайте железо с администрированием.</p>
    <p>Промежуточный вариант тоже рабочий: начать в облаке на обезличенных материалах, набрать статистику качества, а через полгода перенести часть нагрузки на своё железо. Слой модели меняется настройками, переезд занимает дни, а не переписывание системы.</p>
    <p>Собранные контуры лежат в <a href="https://friendlyai.ru/cases.html">кейсах</a>. Если хочется разобрать свой случай предметно, приходите на <a href="https://friendlyai.ru/audit.html">AI-аудит</a>: посмотрим на ваш поток запросов и скажем честно, нужна ли вам видеокарта или хватит правильно настроенного контура с маскированием.</p>]]></content:encoded>
    </item>
    <item>
      <title>ИИ на первой линии продаж: как он квалифицирует заявку</title>
      <link>https://friendlyai.ru/news/articles/ii-kvalifikaciya-lidov.html</link>
      <guid isPermaLink="true">https://friendlyai.ru/news/articles/ii-kvalifikaciya-lidov.html</guid>
      <pubDate>Sun, 16 Aug 2026 09:00:00 +0500</pubDate>
      <author>bimaip@yandex.ru (FriendlyAI)</author>
      <description>Сценарий диалога, схема скоринга, обязательные поля в CRM, правила передачи менеджеру и метрики, по которым видно, стало лучше или нет. И честные ограничения.</description>
      <enclosure url="https://friendlyai.ru/assets/og-cover.png" type="image/png" length="0"/>
      <content:encoded><![CDATA[<p>Заявка приходит в 22:40 в субботу. Менеджер увидит её в понедельник в 10:00 — через 59 часов. К этому моменту человек уже написал троим конкурентам, с кем-то поговорил и, скорее всего, что-то решил.</p>
    <p>Это не гипотетика, это самая частая дыра в продажах у небольших компаний. Причём дыра дешёвая в заделке: первичный диалог не требует эксперта, он требует того, кто не спит.</p>
    <p>Мы держим у себя радар заявок, который обходит площадки и Telegram-каналы. За один прогон он приносит 93 релевантные заявки, из них 10 — сразу с указанным бюджетом. Дальше по кнопке ИИ читает техзадание и выдаёт вердикт «беру / пас» плюс черновик отклика. Ниже — как та же механика ставится на входящий поток компании.</p>
    <h2>Что значит «квалифицировать» на самом деле</h2>
    <p>Формулировка «бот квалифицирует лида» обычно означает «бот задал три вопроса и записал ответы». Это не квалификация, это анкета.</p>
    <p>Квалификация — это ответ на один вопрос: <strong>что менеджеру делать с этой заявкой прямо сейчас</strong>. Звонить немедленно, отправить в рассылку, вежливо отказать. Всё остальное — детали, которые помогают этот ответ обосновать.</p>
    <p>Отсюда простой критерий приёмки: если менеджер, открыв карточку, всё равно звонит и спрашивает то же самое заново, — ИИ работу не сделал.</p>
    <h2>Сценарий диалога: четыре вопроса, не двенадцать</h2>
    <p>Первая версия нашего диалога была длинной. Мы хотели узнать всё: объём, сроки, бюджет, город, кто принимает решение, откуда узнали о компании. Люди отваливались на пятом вопросе.</p>
    <p>Работающая схема выглядит так:</p>
    <p><strong>Бот.</strong> Здравствуйте! Я помощник, отвечаю круглосуточно. Опишите задачу в двух словах — передам менеджеру с утра, а если срочно, подключу его прямо сейчас. <strong>Клиент.</strong> Нужно посчитать вентиляцию на склад 2000 м². <strong>Бот.</strong> Понял, склад 2000 м². Когда планируете начать работы? <strong>Клиент.</strong> Хотим до конца сентября. <strong>Бот.</strong> Проект уже есть или считаем с нуля? <strong>Клиент.</strong> Есть планировки, проекта нет. <strong>Бот.</strong> Спасибо. Оставьте телефон — менеджер перезвонит в понедельник до 12:00. Если нужно раньше, напишите «срочно», я подниму заявку сегодня.</p>
    <p>Четыре реплики. Что важно в этой конструкции:</p>
    <ul><li>первое сообщение уходит за секунду и сразу снимает тревогу «меня услышали»;</li><li>бот повторяет услышанное своими словами — человек видит, что его понимают, и не бросает диалог;</li><li>обещание конкретное: не «мы скоро свяжемся», а «в понедельник до 12:00»;</li><li>выход на человека предложен с первой минуты, а не спрятан в конце.</li></ul>
    <p>Вопросы про бюджет мы из первого контакта убрали почти везде. На входящей заявке он либо неизвестен, либо человек называет цифру наугад, и она потом мешает менеджеру.</p>
    <h2>Скоринг: считаем баллы, а не «горячий/холодный»</h2>
    <p>Ярлыки «горячий» и «тёплый» — вкусовщина. Считать проще по баллам, и логика должна быть открытой, чтобы руководитель отдела мог её править сам.</p>
    <div class="table-wrap"><table><thead><tr><th>Признак</th><th>Баллы</th><th>Почему так</th></tr></thead><tbody><tr><td>Срок «в этом месяце»</td><td>+3</td><td>самый сильный предиктор сделки</td></tr><tr><td>Указан объём или адрес объекта</td><td>+2</td><td>человек уже считал, а не «интересуюсь»</td></tr><tr><td>Оставлен телефон</td><td>+2</td><td>готовность к разговору</td></tr><tr><td>Профиль совпадает с нашим (по перечню услуг)</td><td>+2</td><td></td></tr><tr><td>Регион вне зоны выезда</td><td>−3</td><td>чаще всего отказ</td></tr><tr><td>«Сколько стоит?» без единой детали</td><td>−1</td><td>обычно сбор цен по рынку</td></tr><tr><td>Повторное обращение того же контакта</td><td>+2</td><td>у нас это лучший по конверсии сегмент</td></tr></tbody></table></div>
    <p>Сумма 6 и выше — менеджеру немедленно. От 2 до 5 — в очередь на рабочий день. Ниже 2 — в общую воронку с автописьмом и без отвлечения человека.</p>
    <p>Веса надо один раз откалибровать на реальных заявках. Мы берём 50–100 прошлых обращений с известным исходом, прогоняем через скоринг и смотрим, попадает ли он в реальность. В сервисе сравнения поставщиков у нас похожая механика с весами <code>0.5 · цена + 0.3 · срок + 0.2 · надёжность</code> — и там калибровка тоже делалась на архиве, а не из головы.</p>
    <h2>Что должно упасть в CRM</h2>
    <p>Карточка, к которой у менеджера нет вопросов, содержит немного:</p>
    <ul><li>имя и контакт в том виде, в котором их можно набрать;</li><li>одна строка сути задачи — не расшифровка диалога, а выжимка: «вентиляция, склад 2000 м², сентябрь, проекта нет»;</li><li>балл скоринга и что именно его дало;</li><li>срок, который бот пообещал клиенту (иначе менеджер нарушит обещание, о котором не знал);</li><li>источник: канал, страница, кампания;</li><li>полный текст переписки — вложением, чтобы не мешал глазу, но был под рукой.</li></ul>
    <p>Отдельно про интеграцию. С amoCRM и Битрикс24 связка делается через вебхуки и занимает пару дней. Дольше всего идёт не техническая часть, а согласование обязательных полей: у половины компаний в CRM 40 полей, из которых заполняются четыре.</p>
    <h2>Момент передачи человеку</h2>
    <p>Тут ошибаются чаще всего. Бот, который цепляется за диалог и не отдаёт клиента, злит сильнее, чем полное отсутствие ответа.</p>
    <p>Жёсткие правила, которые мы прописываем всегда:</p>
    <ol><li>Слова «оператор», «человек», «менеджер» в любом падеже — мгновенная передача, без уточняющих вопросов.</li><li>Второй подряд ответ «не понял вопроса» — передача. Три круга непонимания клиент не прощает.</li><li>Любой разговор о рекламации, браке, возврате денег — сразу человеку. Здесь цена ошибки выше экономии.</li><li>Нерабочее время — бот честно говорит, что сейчас ночь, фиксирует заявку и называет время ответа. Не изображает менеджера.</li><li>Клиент раздражён (грубость, капслок, восклицательные знаки) — эскалация плюс алерт руководителю.</li></ol>
    <h2>Что мерить до и после</h2>
    <p>Замеряйте до запуска, иначе через месяц спор о пользе будет спором мнений.</p>
    <p><strong>Время первого ответа.</strong> Считайте отдельно по рабочим часам и по ночам-выходным. Именно вторая цифра меняется драматически: с десятков часов до секунд.</p>
    <p><strong>Доля заявок с заполненными полями.</strong> Обычная картина «до»: суть задачи есть в 30–40% карточек, остальное — «клиент интересовался». После — под 90%, потому что бот не забывает и не ленится.</p>
    <p><strong>Доля заявок, до которых вообще дошли.</strong> Потерянные ночные обращения мало кто считает, а это самая обидная утечка.</p>
    <p><strong>Сколько минут менеджер тратит на первичку.</strong> Замерьте на неделе вручную. Отсюда считается экономия в деньгах.</p>
    <p><strong>Конверсия в следующий шаг</strong> — встреча, замер, счёт. Главная цифра, но смотреть на неё раньше чем через 4–6 недель бессмысленно: не наберётся статистики.</p>
    <h2>Бот должен признаваться, что он бот</h2>
    <p>Соблазн выдать ИИ за живого менеджера велик, и он всегда выходит боком. Человек догадывается за три-четыре реплики: по скорости ответа, по идеальной пунктуации, по тому, что «Ирина» бодро пишет в три часа ночи. Дальше он злится уже не на бота, а на компанию, которая его дурила.</p>
    <p>Мы пишем прямо в первом сообщении: отвечает помощник, работает круглосуточно, менеджера подключим по первому слову. Отказов от диалога после честного представления не прибавилось — люди спокойно общаются с ботом, если он полезен и не притворяется человеком.</p>
    <p>В голосовом канале правило жёстче: робот обязан представиться в первые секунды, а фраза «переключите на человека» должна срабатывать в любой момент разговора, а не в конце меню.</p>
    <h2>Догон: два касания, а не пять</h2>
    <p>Часть заявок обрывается на середине — человек написал и пропал. Тут выручает короткая цепочка: напоминание через 40–60 минут («вы остановились на объёме, дописать?») и второе на следующий день с чем-то конкретным — временем звонка или готовым расчётом. Дальше тишина. Третье и четвёртое касание приносят отписки и жалобы, а не сделки; мы это проверили и цепочку урезали.</p>
    <h2>Что сломалось у нас на второй неделе</h2>
    <p>Контур запустили, метрики поехали вверх, а руководитель отдела пришёл с претензией: два хороших клиента ушли.</p>
    <p>Подняли логи. Картина одинаковая. Оба написали ночью, оба получили вежливый ответ бота с вопросом про сроки, оба ответили «нужно срочно, сегодня». Слово «срочно» в сценарии не значило ничего. Заявка спокойно легла в общую очередь до утра.</p>
    <p>Чинили тремя правками:</p>
    <ul><li><strong>срочность стала отдельным сигналом.</strong> Слова «сегодня», «срочно», «горит», «завтра утром» поднимают заявку наверх очереди и шлют пуш ответственному — да, ночью тоже;</li><li>в карточку добавили строку «клиент ждёт ответа до…», и просроченные обещания стали видны руководителю списком;</li><li>на выходные назначается дежурный, и бот называет клиенту его реальное время ответа, а не дежурное «свяжемся в ближайшее время».</li></ul>
    <p>Следом вылезла вторая история. Бот отвечал на вопрос «сколько стоит» цифрой из прайса, а прайс был оптовый. Люди приходили с этой цифрой к менеджеру и спорили. Цены из ответов мы убрали совсем: теперь бот называет диапазон и честно говорит, что точную сумму посчитает менеджер после уточнения объёма. Конверсия от этого не упала, а конфликтов не стало.</p>
    <h2>Где это не работает</h2>
    <p>Не ждите роста продаж от бота, если проблема не во входящем потоке. Если менеджер не перезванивает по горячим лидам, ИИ на первой линии просто быстрее донесёт их до того же нерабочего звена. Автоматизация хаоса даёт быстрый хаос.</p>
    <p>Плохо работает и на сложных B2B-сделках с длинным циклом, где первичный разговор — это уже экспертная консультация. Там роль ИИ другая: собрать контекст, поднять историю, подготовить менеджера к звонку. Квалифицировать за него не выйдет.</p>
    <p>Отдельно предупреждаю про исходящие. Массовые авто-отклики и рассылки, сгенерированные ИИ, ловят баны площадок и раздражение получателей — мы это проверили на себе и с тех пор шлём только персональные тексты с ручной отправкой. Про рекламные рассылки есть закон, и согласие на них нужно настоящее.</p>
    <p>И честно про сроки: две недели уходит на рабочий контур, ещё три-четыре — на доводку сценария по живым диалогам. Первые сто разговоров надо читать глазами. Это скучно, но именно там находятся формулировки, из-за которых люди бросают чат.</p>
    <h2>Чек-лист перед запуском</h2>
    <ul><li>Кто принимает лида после бота? Нужна фамилия, а не «отдел продаж».</li><li>Что происходит с заявкой ночью, в выходные и в отпуске ответственного?</li><li>Проверен ли выход на человека? Тремя фразами: «оператор», «позовите менеджера», «хочу поговорить с человеком».</li><li>Куда падает лид, если CRM недоступна? Резервный канал — почта или чат — должен быть, иначе заявки просто исчезнут.</li><li>Есть ли готовые ответы на 20 частых вопросов? Без них бот превращается в анкету и раздражает.</li><li>Замерены ли метрики «до»: время ответа, доля заполненных карточек, потери вне рабочего времени?</li><li>Кто читает живые диалоги первые две недели и когда у него на это выделено время?</li></ul>
    <h2>Частые вопросы</h2>
    <p><strong>Сколько времени занимает запуск?</strong> Рабочий контур — одна-две недели, если каналы и CRM уже есть. Дальше три-четыре недели доводки по живым диалогам: правим формулировки, добавляем ответы, чиним скоринг.</p>
    <p><strong>Бот заменит менеджера?</strong> Первую линию — да, разговор о деталях и сделку — нет. Смысл в другом: менеджер перестаёт тратить утро на разбор ночных «а сколько стоит» и работает с уже собранными заявками.</p>
    <p><strong>А WhatsApp?</strong> Технически возможно, но официальный доступ у провайдеров платный, и это отдельная строка бюджета. Дешевле начать с Telegram и виджета на сайте, а WhatsApp подключать, когда контур доказал пользу.</p>
    <p><strong>Голосом можно?</strong> Своего голосового движка у нас нет — собираем на внешнем распознавании и синтезе плюс наша логика диалога. И честно: начинать лучше с текста. В тексте ошибка сценария стоит переписки, в голосе — испорченного разговора.</p>
    <p><strong>Сколько это стоит?</strong> Зависит от числа каналов, состояния CRM и того, есть ли у вас база ответов. Фиксированного прайса мы не публикуем: считаем после разбора процесса на <a href="https://friendlyai.ru/audit.html">аудите</a>.</p>
    <h2>Первый шаг</h2>
    <p>Выгрузите заявки за последний месяц и посчитайте две вещи: сколько пришло вне рабочего времени и сколько из них получили ответ дольше чем через час. Если таких больше четверти — контур первой линии окупится быстрее любого другого модуля.</p>
    <p>Дальше стоит посмотреть, откуда бот берёт ответы по вашим услугам: это <a href="https://friendlyai.ru/news/articles/baza-znaniy-dlya-ii-assistenta.html">база знаний</a>, и собирать её надо до запуска, а не после. Примеры собранных контуров — на <a href="https://friendlyai.ru/cases.html">странице кейсов</a>, а разбор вашего потока заявок с оценкой эффекта — это <a href="https://friendlyai.ru/audit.html">AI-аудит</a>. Опишите процесс, и мы скажем, где у вас утекают деньги и стоит ли вообще начинать с продаж.</p>]]></content:encoded>
    </item>
    <item>
      <title>ИИ в снабжении: заявки, счета и сверка номенклатуры</title>
      <link>https://friendlyai.ru/news/articles/ii-dlya-otdela-snabzheniya.html</link>
      <guid isPermaLink="true">https://friendlyai.ru/news/articles/ii-dlya-otdela-snabzheniya.html</guid>
      <pubDate>Sun, 16 Aug 2026 09:00:00 +0500</pubDate>
      <author>bimaip@yandex.ru (FriendlyAI)</author>
      <description>Как устроен разбор прайсов и счетов, почему поиск по номенклатуре 1С ломается из-за латинской «С» в русском слове и как матчинг дообучается на архиве закупок.</description>
      <enclosure url="https://friendlyai.ru/assets/og-cover.png" type="image/png" length="0"/>
      <content:encoded><![CDATA[<p>51 прайс от поставщиков. Часть — нормальные Excel-файлы. Часть — PDF. Часть — фотографии распечатки, снятые на телефон и присланные в WhatsApp.</p>
    <p>Снабженец сводит это в одну таблицу руками. Потом сверяет каждую строку с номенклатурой в 1С. Потому что «Цемент М500 50 кг» и «Цемент портландский М-500, меш. 50кг» — это, вообще-то, одно и то же, а компьютер об этом не догадывается.</p>
    <p>Мы такой сервис сделали, он работает в проде у отдела снабжения строительной группы компаний, и им пользуются каждый день. Расскажу, из чего он состоит и где мы набили шишки, — потому что закупки автоматизируются не там, где кажется.</p>
    <h2>Что реально съедает время</h2>
    <p>Спросите снабженца, на что уходит день. Ответ будет не «выбор поставщика». День уходит на другое:</p>
    <ul><li>перебить чужие таблицы в свою;</li><li>выяснить, та же это труба или другая;</li><li>найти позицию, которая в 1С называется иначе;</li><li>перенести итог в учётную систему руками.</li></ul>
    <p>Собственно решение — какой поставщик лучше — занимает минуты. Остальное рутина. Её и надо снимать.</p>
    <h2>Прайсы приходят как попало</h2>
    <p>Первое, что должен уметь сервис, — разбирать чужие файлы без предварительной подготовки. Шапка на четвёртой строке, объединённые ячейки, колонка «Цена» называется «Стоимость с НДС», а поставщик не указан нигде, кроме имени файла.</p>
    <p>Парсер ищет шапку сам и понимает синонимы колонок:</p>
    <ul><li><strong>материал</strong> — наименование, номенклатура, позиция, товар, ТМЦ;</li><li><strong>цена</strong> — стоимость, прайс, цена с НДС, цена за единицу;</li><li><strong>срок</strong> — поставка, отгрузка, срок в днях, «под заказ»;</li><li><strong>поставщик</strong> — берём из колонки, а нет колонки — вытаскиваем из имени файла.</li></ul>
    <p>Звучит просто. На деле именно эта часть даёт больше всего мелких сбоев, и доводить её приходится недели две на живых файлах.</p>
    <p><strong>Отдельная боль — единицы измерения.</strong> Метр погонный, штука, упаковка на 6 метров, тонна. Сравнивать позиции в разных единицах нельзя, а поставщики про это не думают. Приводим всё к общей единице и помечаем, где пересчитали. Иначе сравнение врёт, причём не на проценты, а в разы.</p>
    <h2>Сканы: OCR нужен реже, чем думают</h2>
    <p>Про то, как ИИ читает сканы, любят рассказывать первым делом. По факту это самая переоценённая часть.</p>
    <p>Мы прогнали архив из 51 отработанного лота — заявки, конкурентные листы, счета. OCR понадобился ровно двум счетам. Остальные PDF оказались текстовыми: текст в них лежит внутри файла, его надо просто вынуть библиотекой (PyMuPDF), и это быстро и точно.</p>
    <p>Порядок такой. <strong>Сначала достаём текстовый слой.</strong> Не вышло — тогда зовём Tesseract. Русскую модель берём из набора <code>tessdata_best</code>. На <code>tessdata_fast</code> мы потеряли пару дней: движок молча спотыкается, откатывается на английский и выдаёт латинскую кашу. Ошибки в логах нет. Результат — мусор.</p>
    <p>Фото с телефона надо подготовить, прежде чем скармливать движку:</p>
    <ul><li>перевести в чёрно-белый;</li><li>увеличить в два раза;</li><li>прогнать автоконтраст.</li></ul>
    <p>Без этого мелкий шрифт в накладной читается наполовину. <strong>Числа после OCR всегда смотрит человек</strong> — цену и количество мы автоматом в закупку не пускаем ни при каких настройках.</p>
    <h2>Ловушка гомоглифов</h2>
    <p>Теперь про грабли, ради которых стоило писать эту статью. В выгрузке номенклатуры из 1С 571 позиция числилась как «нет у поставщиков». Товар у поставщиков был.</p>
    <p>Оказалось, что названия набраны вперемешку кириллицей и латиницей:</p>
    <div class="table-wrap"><table><thead><tr><th>Как выглядит</th><th>Что внутри</th><th>Итог</th></tr></thead><tbody><tr><td>Сгон</td><td>латинская <code>C</code> вместо русской «С»</td><td>поиск не находит</td></tr><tr><td>угольник</td><td>латинская <code>y</code></td><td>позиция уходит в «не найдено»</td></tr><tr><td>PN16</td><td>латинская <code>N</code> в русской строке</td><td>не совпадает с номенклатурой</td></tr></tbody></table></div>
    <p>Глазами это не отличить вообще. Шрифт одинаковый, длина строки та же. А для компьютера «С» и «C» — разные символы, и любое сравнение проваливается молча: не ошибка, а пустой результат.</p>
    <p>Появляются такие вещи естественно. Человек копирует кусок названия из письма, дописывает своё, переключает раскладку — и в базе навсегда остаётся гибрид. За годы работы 1С таких позиций накапливаются сотни.</p>
    <p>Лечится это одной функцией. В словах, где встретились оба алфавита, латинские двойники переводим в кириллицу. Чисто латинские слова — VALTEC, COMPACT, PN — не трогаем, иначе сломаем нормальные названия. Гоняем её первой, до всякого поиска.</p>
    <p>Мораль шире одной функции: перед тем как учить ИИ работать с вашими данными, данные надо посмотреть. Не «выгрузить и загрузить», а именно посмотреть — там будут дубли, пробелы в начале строк, «ё» вперемешку с «е» и номенклатура, заведённая тремя разными людьми по трём разным логикам.</p>
    <h2>Матчинг, который дообучается</h2>
    <p>Свести чужую строку с нашей позицией — сердце всей истории. Правила и нечёткое сравнение строк неплохо тянут трубы и метизы. На инструменте, электрике и расходке они сыплются. «Бита PH2x90» и «Бита РН-2 90мм» — человеку очевидно, что это одно и то же. Алгоритму нет.</p>
    <p>Решение оказалось не в более умной модели, а в памяти. Мы взяли архив отработанных тендеров — папки с заявками, счетами и конкурентными листами — и вытащили оттуда пары «строка поставщика → наша позиция» в том виде, как их свёл живой снабженец. Стыковка шла по цене, которая в лоте уникальна, поэтому брак в память не попадал.</p>
    <p>Из 51 лота получилось 1374 уникальные пары. Память сопоставлений выросла с 14 803 записей до 15 519 — плюс 716 новых, и почти все как раз в слабых категориях. Дальше система дообучается сама: каждая правка снабженца («нет, это не тот кабель») сохраняется и в следующий раз применяется автоматически.</p>
    <p>Важная деталь про конфликты: когда одна и та же строка в разных лотах сведена к разным позициям, мы решаем голосованием, а спорные случаи не трогаем вовсе. Тихо «угадывать» в закупках нельзя.</p>
    <h2>Выбор поставщика: не только цена</h2>
    <p>Самое дешёвое предложение часто самое долгое. Мы считаем по каждой позиции балл, где цена весит 0.5, срок 0.3, надёжность поставщика 0.2. Веса настраиваются: у кого-то стройка горит, и срок важнее денег.</p>
    <p>Что это даёт на реальных листах. На одном лоте выбор сервиса полностью совпал с протоколом отдела — приятно, но неинтересно. На двух других нашлись альтернативы дешевле на 82 720 ₽ и на 298 194 ₽ при сопоставимых сроках. Это не «ИИ умнее снабженца» — это человек физически не может каждый раз перепроверить 200 позиций по семи прайсам.</p>
    <p>Разбор архива, кстати, показал любопытное: в 73% случаев отдел брал позицию у того, кто дешевле, а в 25% — консолидировал у лидера лота, чтобы не дробить поставку. Обе стратегии разумные, и система должна показывать оба варианта с разницей в деньгах, а не навязывать один.</p>
    <h2>Как результат попадает в 1С</h2>
    <p>Финал цепочки — не красивый отчёт, а данные в учётной системе. Сервис пишет JSON, в котором лежит всё, что нужно 1С:</p>
    <ul><li>уникальный идентификатор позиции (уид) — чтобы 1С поняла, куда класть;</li><li>ключ строки заявки;</li><li>цена, срок поставки, ставка НДС;</li><li>поставщик и дата, на которую цена актуальна.</li></ul>
    <p>Файл 1С забирает по таймеру. Никто ничего не перебивает руками.</p>
    <p><strong>Формат обмена согласуйте с вашим 1С-ником до начала работ.</strong> Этот пункт любят отложить «на потом», а потом он съедает три недели. Мы согласовывали поля до первой строчки кода — и не пожалели.</p>
    <h2>Как мы это провалили в первый раз</h2>
    <p>Первый движок, который сводил строки, вышел слишком самоуверенным. Мы взяли нечёткое сравнение, выставили порог похожести и разрешили применять совпадения автоматически. На демо смотрелось отлично.</p>
    <p>На реальном лоте вылезли «Кран шаровой 1/2» против «Кран шаровой 1/2 с американкой» — разные вещи, разница в цене заметная, а строки похожи на 92%. Автомат их склеил.</p>
    <p>Что мы поменяли:</p>
    <ul><li><strong>автоприменение выключили совсем.</strong> Движок предлагает, снабженец подтверждает — одним кликом;</li><li>совпадения ниже уверенного порога уходят в отдельный список «посмотреть глазами», а не в результат;</li><li>каждое подтверждение запоминается, и в следующий раз эта пара уже не спрашивается;</li><li>разные типоразмеры и исполнения (с американкой, под приварку, оцинкованный) вынесли в признаки, по которым позиции нельзя сливать даже при высокой похожести.</li></ul>
    <p>Урок простой. В закупках лучше показать снабженцу десять пар на проверку, чем молча ошибиться в одной. Доверие теряется на первой же неверной склейке, и обратно его собирать долго.</p>
    <h2>Чек-лист перед пилотом</h2>
    <p>Что стоит проверить у себя до того, как звать подрядчика:</p>
    <ul><li>Сколько поставщиков реально шлют прайсы каждый месяц? Меньше пяти — автоматизировать нечего, хватит нормального шаблона Excel.</li><li>В каком виде приходят файлы: Excel, PDF, фото, письма в теле сообщения?</li><li>Есть ли у вас справочник номенклатуры, или позиции заводят прямо в заявке?</li><li>Прогоняли ли номенклатуру на гомоглифы и дубли? Это десять минут и часто объясняет «поиск ничего не находит».</li><li>Кто у вас 1С-ник и готов ли он согласовать формат обмена? Без него финал цепочки не собрать.</li><li>Сохранился ли архив прошлых закупок — заявки, счета, конкурентные листы? Это топливо для памяти сопоставлений, и чем его больше, тем быстрее система становится полезной.</li></ul>
    <h2>Частые вопросы</h2>
    <p><strong>Сколько это стоит?</strong> Честно: фиксированного прайса у нас нет, потому что объём работ зависит от состояния ваших данных. Пилот на одном участке считается после разбора: сколько поставщиков, какие форматы, есть ли справочник. Цифру называем после <a href="https://friendlyai.ru/audit.html">аудита</a>, а не по телефону наугад.</p>
    <p><strong>Нужно ли менять 1С?</strong> Нет. Обмен идёт файлом, который 1С забирает по расписанию. Конфигурацию не трогаем — это принципиально, потому что доработка чужой конфигурации стоит дороже всего остального проекта.</p>
    <p><strong>А если поставщики шлют прайсы в теле письма, без вложений?</strong> Разбирается тоже, но хуже: в письме нет структуры таблицы. Обычно проще один раз попросить поставщиков присылать файл — они соглашаются чаще, чем кажется.</p>
    <p><strong>Сколько ждать первого результата?</strong> Две-три недели до рабочего сравнения на ваших прайсах, если файлы типовые. Дальше несколько недель на накопление памяти сопоставлений, и качество заметно подрастает.</p>
    <h2>Где это не работает</h2>
    <p>Не ждите результата, если у вас нет номенклатуры. Когда позиции заводят как попало прямо в заявке, сопоставлять не с чем: сначала наведите порядок в справочнике. И делают это ваши люди, а не подрядчик. Месяц-полтора минимум.</p>
    <p>Не работает и на уникальных позициях. Оборудование под заказ, нестандартные изделия, услуги — там сравнивать нечего, решение принимает инженер. Автоматизация окупается на потоке: сотни повторяющихся строк каждый месяц.</p>
    <p>Про качество матчинга скажу прямо: на старте, до накопления памяти, руками приходится править заметную часть позиций. Первые недели это выглядит как «а что тут автоматизировали». Кривая идёт вверх по мере правок — и вот тут важно, чтобы у снабженца была одна кнопка на исправление, а не форма на десять полей. Иначе он просто не будет её нажимать, и система не научится.</p>
    <p>И последнее: цену ошибки в закупках держит человек. Система готовит сравнение, показывает варианты и считает разницу. Подпись под решением ставит снабженец.</p>
    <h2>Первый шаг</h2>
    <p>Возьмите прайсы за последний месяц и посчитайте: сколько поставщиков, сколько позиций, сколько часов ушло, чтобы всё это свести. Отдельно посмотрите, какая доля файлов пришла сканами. Эти три цифры — уже готовое техзадание на пилот.</p>
    <p>Заодно проверьте номенклатуру на гомоглифы, это делается скриптом за десять минут и часто объясняет, почему поиск «ничего не находит». Как выглядят похожие контуры на других участках — в <a href="https://friendlyai.ru/cases.html">кейсах</a>; про то, откуда ИИ берёт правильные ответы, — в статье <a href="https://friendlyai.ru/news/articles/baza-znaniy-dlya-ii-assistenta.html">про базу знаний</a>. А разбор вашего процесса закупок с оценкой, что даст эффект первым, — это <a href="https://friendlyai.ru/audit.html">AI-аудит</a>, приходите с примерами файлов.</p>]]></content:encoded>
    </item>
    <item>
      <title>Где ИИ врёт и как это ловить до того, как увидит клиент</title>
      <link>https://friendlyai.ru/news/articles/gde-ii-gallyucinuruet.html</link>
      <guid isPermaLink="true">https://friendlyai.ru/news/articles/gde-ii-gallyucinuruet.html</guid>
      <pubDate>Sat, 15 Aug 2026 09:00:00 +0500</pubDate>
      <author>bimaip@yandex.ru (FriendlyAI)</author>
      <description>Пять типов галлюцинаций, которые мы ловили в проде, и рабочая защита: ответ только с источником, тесты-капканы, право сказать «не знаю» и разбор инцидентов.</description>
      <enclosure url="https://friendlyai.ru/assets/og-cover.png" type="image/png" length="0"/>
      <content:encoded><![CDATA[<p>Самый неприятный случай в моей практике выглядел безобидно. Ассистент по номенклатуре отвечал: «у поставщиков такой позиции нет». Спокойно, уверенно, 571 раз.</p>
    <p>Позиции были. Просто в выгрузке из 1С слово «Сгон» набрано с латинской буквой C, «угольник» — с латинской y, а в «PN16» латинская N. Глазами не отличить никак, а поиск такие строки не видит вообще. Формально система не выдумывала — она честно не нашла. Для снабженца разница нулевая: ему дали неверный ответ, и он бы по нему закупился.</p>
    <p>С этого начну разговор про галлюцинации. Вранья у ИИ несколько сортов, и придуманные факты — не самый опасный из них.</p>
    <h2>Пять способов соврать</h2>
    <p><strong>Выдуманное число.</strong> Модель не знает точной цифры и подставляет правдоподобную. «Гарантия 12 месяцев» вместо 24, «срок поставки 5 дней» вместо 15. Самый дорогой тип: числа люди не перепроверяют, их переписывают в коммерческое предложение.</p>
    <p><strong>Сборка из двух документов.</strong> Условия из прайса для дилеров склеиваются с гарантией из розничного регламента, и получается предложение, которого у компании никогда не было. Каждая половина ответа верна, целое — нет.</p>
    <p><strong>Устаревшее выдаётся за действующее.</strong> В базе лежат две редакции положения, ассистент цитирует ту, что нашлась. Про то, как этого избежать, я подробно писал в разборе <a href="https://friendlyai.ru/news/articles/baza-znaniy-dlya-ii-assistenta.html">про сборку базы знаний</a> — коротко: в поиске должна лежать только действующая редакция.</p>
    <p><strong>Ложное «нет».</strong> История с латинской C — как раз отсюда. Система не нашла и делает вывод «этого не существует». Отдельно коварно тем, что в логах выглядит как нормальная работа.</p>
    <p><strong>Уверенный тон на пустом месте.</strong> Вопрос вне базы, ответа нет, но модель отвечает — потому что её этому и учили. Проверить такой ответ можно только зная правильный, а если бы человек его знал, он бы не спрашивал.</p>
    <h2>Правило первое: ответ без источника не считается ответом</h2>
    <p>Канон, к которому мы пришли на инженерной платформе, звучит грубо, но экономит месяцы разбирательств: <strong>ни одного числа без ссылки на документ</strong>. Ассистент обязан вернуть вместе с ответом название файла, раздел и по возможности прямую цитату. Не «согласно регламенту», а «Положение о гарантии, ред. от 12.03.2026, п. 4.2».</p>
    <p>Даёт это три вещи. Человек может проверить за 20 секунд, а не поверить на слово. Инцидент разбирается по горячим следам: видно, кривой документ или кривой поиск. И, что неожиданно, качество ответов растёт само — когда модель обязана опираться на конкретный фрагмент, ей сложнее фантазировать.</p>
    <p>Там, где цена ошибки высока — расчёты, нормативка, деньги, — мы ставим отдельного контролёра: вторая проверка трассирует новые разделы базы до исходных файлов и охотится на выдумку. Сам себя ни один участник не принимает, ни человек, ни ИИ. У пары контролёров отчётности мы устроили так же: один проверяет данные, второй собирает сводку, и оба перепроверяют друг друга до того, как результат уйдёт руководству.</p>
    <h2>Автотесты: контрольные вопросы и капканы</h2>
    <p>Для инженерной базы у нас 187 автотестов, и это не про красоту цифры. Это набор вопросов с заранее известными ответами, который прогоняется после каждого изменения базы.</p>
    <p>Набор делится на три части.</p>
    <p><em>Обычные вопросы</em> — то, что спрашивают каждый день. Ответ известен, сверяется автоматически по ключевым фактам.</p>
    <p><em>Капканы</em> — вопросы, ответа на которые в базе нет и быть не должно. Единственный правильный результат — «не знаю, уточните у такого-то». Если система начинает на них отвечать, значит кто-то ослабил ограничения промпта.</p>
    <p><em>Стыки</em> — вопросы, ответ на которые лежит на границе двух документов. Здесь ловится склейка несовместимого.</p>
    <p>Прогон занимает минуты, а ловит вещи, которые вручную не отследить. Классический сценарий: добавили в базу пять новых файлов, точность на старых вопросах упала с 19 из 20 до 15 — новые документы «перетянули» поиск на себя. Без тестов это заметит клиент.</p>
    <p>Отдельная категория проверок — арифметика. Языковые модели считают плохо и уверенно. Любой расчёт (скидка, объём, сумма с НДС) надо выносить из модели в код: ИИ достаёт цифры и правило, а умножает калькулятор. Мы наступали на это дважды, прежде чем сделали правилом.</p>
    <h2>Право сказать «не знаю»</h2>
    <p>Модель по умолчанию угодлива. Чтобы она молчала, когда не знает, разрешение на «не знаю» надо выдать явно и подкрепить ограничениями:</p>
    <ul><li>отвечать только по найденным фрагментам, внешние знания не использовать;</li><li>если релевантных фрагментов нет — отдавать шаблон «в базе нет, передаю человеку» и создавать задачу;</li><li>если фрагменты противоречат друг другу — показать оба и не выбирать;</li><li>запрет на предположения в темах денег, сроков, гарантий, договоров и нормативки;</li><li>порог уверенности поиска: слабое совпадение приравнивается к «не найдено».</li></ul>
    <p>Дальше вопрос настройки баланса. Слишком строгий порог — ассистент отказывается отвечать на треть нормальных вопросов, люди перестают им пользоваться за неделю. Слишком мягкий — начинает сочинять. Мы обычно стартуем строго и ослабляем по логам: смотрим, на чём он зря промолчал, и добавляем документы, а не расширяем свободу модели.</p>
    <h2>Второй проход и короткий ответ</h2>
    <p>Две дешёвые настройки, которые заметно сбивают частоту вранья.</p>
    <p>Первая — второй проход. Готовый ответ вместе с найденными фрагментами уходит на повторную проверку с единственным вопросом: каждое ли утверждение подтверждается текстом источника? Что не подтверждается — вычёркивается. Платите вы за это удвоенным временем ответа (условно, три секунды вместо полутора) и двойным расходом на модель. В болтовне с клиентами оправдано не всегда, в расчётах и договорах — практически всегда.</p>
    <p>Вторая — жёсткий лимит длины. Чем длиннее ответ, тем больше в нём отсебятины: в найденных фрагментах фактов на три предложения, а модель послушно пишет десять и добирает разницу из воздуха. Мы держим ответ в 3–5 предложениях плюс ссылка на документ. Нужны подробности — человек открывает источник, там всё есть.</p>
    <p>Побочный эффект приятный: короткие ответы читают. Длинные простыни пролистывают и на всякий случай переспрашивают у коллеги, а значит, ассистентом не пользуются.</p>
    <h2>Что писать в лог</h2>
    <p>Лог — единственное, что превращает «он какую-то ерунду ответил» в решаемую задачу. Минимальный набор на каждый ответ:</p>
    <div class="table-wrap"><table><thead><tr><th>Что пишем</th><th>Зачем</th></tr></thead><tbody><tr><td>Вопрос в исходном виде</td><td>формулировка часто и есть причина</td></tr><tr><td>Какие фрагменты нашёл поиск, с оценками</td><td>видно, поиск подвёл или модель</td></tr><tr><td>Итоговый ответ и указанные источники</td><td>сверка с реальным документом</td></tr><tr><td>Сработал ли отказ, была ли эскалация</td><td>статистика по «не знаю»</td></tr><tr><td>Оценка пользователя (палец вверх/вниз)</td><td>дешёвая разметка на будущее</td></tr><tr><td>Время ответа</td><td>деградация заметна раньше жалоб</td></tr></tbody></table></div>
    <p>Кнопка «ответ неверный» рядом с каждым сообщением стоит копейки в разработке и приносит больше пользы, чем любая аналитика. Люди жмут её охотно.</p>
    <h2>Разбор инцидента</h2>
    <p>Когда неверный ответ всё-таки дошёл до клиента, работает короткая процедура. По логу поднимаем, что нашёл поиск. Дальше развилка: если нужного фрагмента в найденном нет — виноват поиск или база (нет документа, кривая нарезка, гомоглифы, скан без текста). Если фрагмент был, а ответ ему противоречит — виновата модель и промпт.</p>
    <p>Починили — обязательно добавляем этот вопрос в набор автотестов. Так набор и вырос до сотен пунктов: каждый инцидент оставляет после себя тест. Раз в неделю смотрим сводку: сколько было отказов, сколько жалоб, на каких темах.</p>
    <h3>Как это выглядит на живом случае</h3>
    <p>Клиенту ушёл ответ с условиями, которых у компании нет: срок отгрузки со склада взят из одного документа, гарантия — из другого. Обе цифры настоящие. Комбинация — выдуманная.</p>
    <p>По логу видно всё за пять минут. Поиск вернул два фрагмента, у обоих в заголовке слово «Условия»: один из прайса для дилеров, второй из розничного регламента. Модель добросовестно собрала ответ из того, что дали.</p>
    <p>Виноват тут не ИИ, а структура базы. Мы дописали в шапку каждого документа строку «для кого» — розница, дилеры, тендеры. Дальше запретили смешивать в одном ответе фрагменты с разной аудиторией: нашлись оба — ассистент обязан спросить, о каком случае речь. И добавили четыре вопроса-стыка в набор тестов, чтобы это не вернулось после следующего пополнения базы.</p>
    <h2>Чек-лист: как проверить ассистента за полчаса</h2>
    <p>Работает и на своей системе, и на демо подрядчика:</p>
    <ul><li>задайте пять вопросов, ответов на которые в базе точно нет. Правильная реакция одна — «не знаю»;</li><li>на любой ответ с цифрой попросите источник: файл, раздел, цитату;</li><li>дайте посчитать: скидка 17% от 143 600 ₽. Если считает сама модель, а не код, рано или поздно ошибётся;</li><li>проверьте противоречие: спросите то, что по-разному написано в двух документах;</li><li>спросите одно и то же тремя формулировками, как спросили бы разные сотрудники;</li><li>попросите показать лог этого диалога. Нет лога — нет управляемости;</li><li>узнайте, кто разбирает жалобы на неверные ответы и как часто.</li></ul>
    <h2>Частые вопросы</h2>
    <p><strong>Галлюцинации можно убрать полностью?</strong> Нет. Можно снизить частоту до единиц процентов и сделать ошибку заметной до клиента. Обещание «ноль ошибок» — повод усомниться в остальном, что говорит подрядчик.</p>
    <p><strong>Дорогая модель решает проблему?</strong> Частично. Модель посильнее реже путается в формулировках, но выдумывать её заставляет отсутствие нужного фрагмента в базе. Основной вклад дают документы и ограничения, а не ценник за токены.</p>
    <p><strong>Ассистент слишком часто отвечает «не знаю». Что делать?</strong> Смотреть логи отказов. В девяти случаях из десяти это не строгость настроек, а дырка в базе или разница в словах: люди спрашивают не теми терминами, что написаны в регламенте.</p>
    <p><strong>Кто отвечает, если неверный ответ ушёл клиенту?</strong> Компания. Ровно поэтому в чувствительных местах — деньги, сроки, гарантии, договоры — ответ уходит клиенту после человека, а не напрямую.</p>
    <h2>Где это не работает</h2>
    <p>Ни одна из этих мер не даёт нуля ошибок. Убрать галлюцинации полностью нельзя — можно снизить частоту и сделать так, чтобы ошибка была видна до клиента. Обещания «наш ИИ не врёт» — маркетинг, а не инженерия.</p>
    <p>Цитаты-источники не спасают от кривых документов. Если в регламенте написана ерунда, ассистент честно процитирует ерунду со ссылкой. Мусор на входе даёт мусор на выходе, просто с адресом.</p>
    <p>Автотесты не ловят то, чего в них нет. Первые месяц-два набор всегда неполный, и без человека, который читает выборку живых диалогов, качество не поднять.</p>
    <p>И самое неприятное: контроль стоит времени. Двадцать вопросов приёмки, разбор инцидентов, еженедельная сводка — это часы работы конкретного сотрудника каждую неделю. Компании, которые эту роль не выделяют, через пару месяцев получают систему, которой никто не доверяет, и разговор «ИИ у нас не взлетел». Дело не в ИИ.</p>
    <h2>С чего начать</h2>
    <p>Возьмите вашего текущего ассистента (или демо подрядчика) и задайте ему пять вопросов, ответов на которые в его базе нет. Если он ответит на все пять вместо честного «не знаю» — систему нельзя показывать клиентам, там нет ограничений.</p>
    <p>Второй шаг: попросите на любой ответ с цифрой показать источник. Не получите файл и пункт — считайте, что цифра выдумана.</p>
    <p>Как мы собираем контур с проверками, видно в <a href="https://friendlyai.ru/cases.html">кейсах</a> — там же случай, где сверка номенклатуры разбирается подробно: <a href="https://friendlyai.ru/news/articles/ii-dlya-otdela-snabzheniya.html">ИИ в снабжении</a>. А если хотите оценить риски на своих процессах — приходите на <a href="https://friendlyai.ru/audit.html">AI-аудит</a>: посмотрим, где у вас цена ошибки высокая, и скажем, что там вообще нельзя отдавать ИИ без второй пары глаз.</p>]]></content:encoded>
    </item>
    <item>
      <title>ИИ-агент и чат-бот: чем отличаются и что нужно бизнесу</title>
      <link>https://friendlyai.ru/news/articles/chto-takoe-ii-agent.html</link>
      <guid isPermaLink="true">https://friendlyai.ru/news/articles/chto-takoe-ii-agent.html</guid>
      <pubDate>Sat, 15 Aug 2026 09:00:00 +0500</pubDate>
      <author>bimaip@yandex.ru (FriendlyAI)</author>
      <description>Чем ИИ-агент отличается от чат-бота: цель, инструменты, память, действия. Где хватит кнопочного бота, а где нужен агент, и как выбрать решение без переплаты.</description>
      <enclosure url="https://friendlyai.ru/assets/og-cover.png" type="image/png" length="0"/>
      <content:encoded><![CDATA[<p>Разговор с клиентом часто начинается одинаково. «Нам нужен ИИ-агент, как у всех». Спрашиваю, что он должен делать. Ответ: отвечать в Телеграме про цены, адрес и график работы. Это не агент. Это кнопочный бот на пятнадцать веток, и собирается он за два вечера.</p>
    <p>Путаница стоит денег в обе стороны. За словом «агент» продают полугодовую разработку там, где хватило бы недели. Бывает и обратное: компания берёт дешёвого бота с деревом ответов, а через месяц видит, что клиенты пишут не по сценарию, и половина диалогов заканчивается фразой «дождитесь менеджера».</p>
    <p>Разберу по устройству, а не по вывеске.</p>
    <h2>Чат-бот: заранее нарисованное дерево</h2>
    <p>Обычный бот идёт по сценарию. Кто-то нарисовал ветки: приветствие, меню, ответ, кнопка «назад». Пользователь двигается по маршруту, который предусмотрели заранее.</p>
    <p>Сильные стороны у такой схемы серьёзные. Он предсказуем. Он никогда не придумает скидку, которой нет. Его можно протестировать целиком, потому что число состояний конечно.</p>
    <p>Слабость одна, зато обидная. Шаг влево от сценария, и бот беспомощен. Клиент пишет «а если я заберу сам в субботу, будет дешевле?», а в дереве такой ветки нет.</p>
    <p>Бот с подключённой языковой моделью занимает промежуточное место. Он понимает формулировку свободным текстом и отвечает связно. Но он по-прежнему только говорит. Ничего в системах компании после его ответа не меняется.</p>
    <h2>ИИ-агент: цель, инструменты, память, действия</h2>
    <p>Агент отличается четырьмя вещами. Уберите любую, и агент превращается обратно в говорящего бота.</p>
    <p><strong>Цель.</strong> У агента есть задача с проверяемым результатом, а не тема для беседы. «Собрать по входящей заявке пять полей, создать сделку в CRM и назначить ответственного» это цель. «Общаться с клиентами» это не цель, потому что непонятно, когда работа сделана.</p>
    <p><strong>Инструменты.</strong> Агент умеет вызывать функции:</p>
    <ul><li>посмотреть остаток на складе;</li><li>дёрнуть калькулятор доставки по адресу;</li><li>найти клиента в CRM по телефону;</li><li>записать строку в таблицу или создать задачу.</li></ul>
    <p>Технически это набор функций с описанием, модель выбирает подходящую и подставляет аргументы. Без инструментов агент знает только то, что было в промпте.</p>
    <p><strong>Память.</strong> Короткая держит текущий диалог, чтобы на седьмом сообщении помнить город из второго. Длинная хранит историю клиента и знания компании. Знания подключаются через <a href="https://friendlyai.ru/news/articles/rag-prostymi-slovami.html">RAG по вашим документам</a>, иначе модель начнёт сочинять регламенты.</p>
    <p><strong>Действия.</strong> Агент меняет состояние систем: создаёт сделку, ставит задачу, отправляет письмо, двигает статус. Здесь же живёт главный риск, поэтому опасные действия закрываются подтверждением человека или жёсткой валидацией.</p>
    <h2>Сравнение на одной таблице</h2>
    <div class="table-wrap"><table><thead><tr><th>Признак</th><th>Кнопочный бот</th><th>Бот с LLM</th><th>ИИ-агент</th></tr></thead><tbody><tr><td>Свободный вопрос клиента</td><td>не понимает</td><td>понимает</td><td>понимает</td></tr><tr><td>Действия в CRM и учёте</td><td>нет</td><td>нет</td><td>да</td></tr><tr><td>Знание документов компании</td><td>ручные тексты в ветках</td><td>общие знания модели</td><td>поиск по базе с цитатой</td></tr><tr><td>Предсказуемость</td><td>полная</td><td>средняя</td><td>нужен контроль и логи</td></tr><tr><td>Срок сборки</td><td>дни</td><td>1-2 недели</td><td>3-6 недель</td></tr><tr><td>Что ломается</td><td>новая ветка вопросов</td><td>выдумки в ответах</td><td>неверное действие в системе</td></tr></tbody></table></div>
    <p>Строка про сроки условная, она зависит от того, сколько интеграций придётся вскрывать. Обмен с 1С обычно съедает больше времени, чем сам ИИ.</p>
    <h2>Как агент выглядит в работе</h2>
    <p>Возьму живой сценарий: заявка на монтаж оборудования с сайта.</p>
    <ol><li>Приходит текст в свободной форме: «Нужно смонтировать две вытяжки в кафе на Гоголя, желательно до конца месяца».</li><li>Агент вытаскивает поля: тип работ, адрес, объём, срок. Чего не хватает, спрашивает у клиента одним сообщением, а не анкетой из десяти пунктов.</li><li>Дёргает справочник услуг и отвечает вилкой цены с оговоркой «точная сумма после замера».</li><li>Создаёт сделку в CRM, прикладывает переписку, ставит задачу монтажнику на замер.</li><li>Пишет в чат отдела короткую карточку: адрес, объём, срок, телефон.</li></ol>
    <p>Отдельно стоит разобрать, что агент делает с непонятной заявкой. Правильное поведение: не угадывать. Он помечает обращение как «нужен человек», кидает его в чат с оригинальным текстом и не трогает CRM. Мы специально гоняем такой тест перед запуском: подсовываем десяток кривых заявок и смотрим, хватает ли агенту смелости сказать «не понял».</p>
    <p>Ночная заявка обрабатывается за секунды вместо утра следующего дня. Наш внутренний радар заказов работает по той же схеме: мониторит биржу и шесть Telegram-каналов, за один проход отобрал 93 релевантных заказа, десять из них с прямо указанным бюджетом. Человек утром смотрит готовый список, а не листает ленту.</p>
    <h2>Где хватает обычного бота</h2>
    <p>Не каждой задаче нужен агент. Бот дешевле, стабильнее и чинится за час.</p>
    <ul><li>Ответы на пять типовых вопросов: часы работы, адрес, реквизиты, гарантия.</li><li>Запись на приём по слотам из календаря.</li><li>Проверка статуса заказа по номеру.</li><li>Приём обращения с переадресацией в нужный чат.</li><li>Рассылка напоминаний.</li></ul>
    <p>Ещё один довод в пользу бота: цена ошибки. Кнопочный бот в худшем случае покажет не ту кнопку. Агент в худшем случае заведёт сделку не на того клиента или отправит письмо с чужой ценой. Чем ближе процесс к деньгам и обязательствам, тем дороже обходится каждая доля процента неточности, и тем больше времени уходит на проверки, логи и разбор спорных случаев.</p>
    <p>Если ваш поток обращений на 80% состоит из таких запросов, начните с бота. Через месяц вы увидите в логах, что именно спрашивают остальные 20%, и это будет техзаданием на агента, написанным клиентами.</p>
    <h2>Пять вопросов перед выбором</h2>
    <ol><li><strong>Что должно измениться в системах после диалога?</strong> Ничего не меняется, значит агент не нужен.</li><li>Сколько разных формулировок у одной и той же просьбы? Больше десяти, дерево веток вы задолбаетесь достраивать.</li><li>Есть ли документы, по которым нужно отвечать? Прайсы, регламенты, условия договоров тянут за собой RAG.</li><li>Кто отвечает за ошибку агента? У действия должен быть владелец с фамилией.</li><li>По какой цифре поймём, что получилось? Минуты на обработку заявки, доля ночных ответов, процент сделок, заведённых без менеджера.</li></ol>
    <p>Пятый вопрос отсекает половину проектов ещё на берегу. Если текущий процесс никто не измерял, сначала измеряем, потом автоматизируем. Как считать эффект в часах и рублях, разобрал отдельно в статье про <a href="https://friendlyai.ru/news/articles/skolko-stoit-vnedrit-ii.html">стоимость внедрения ИИ</a>.</p>
    <h2>Где агент не работает и чего от него не ждать</h2>
    <p>Агент плохо переносит процессы без правил. Если в компании три менеджера считают скидку тремя способами, агент зафиксирует один из них и будет виноват во всех расхождениях. Сначала договоритесь между собой, потом автоматизируйте.</p>
    <p>Он не заменяет переговоры. Сложная сделка с торгом, эмоциями и «а вот у конкурентов» остаётся человеку. Агент готовит почву: собирает вводные, поднимает историю, считает варианты.</p>
    <p>Он не читает то, чего нет в системе. Договорённость из телефонного разговора, которую никто не записал, для агента не существует.</p>
    <p>И он не бывает точным на сто процентов. Работающая практика такая: действия делятся на обратимые и необратимые. Создать черновик сделки, поставить задачу, прислать сводку это обратимо, пусть делает сам. Отправить клиенту счёт, списать со склада, изменить цену это через подтверждение человека.</p>
    <p>Отдельная ловушка это мода на «мультиагентные системы» на старте. Пять агентов, которые ходят друг к другу, отлаживаются втрое дольше одного, а результат тот же. Мы у себя пришли к простому правилу: один агент, одна зона ответственности, и обязательная проверка результата вторым, но только там, где цена ошибки реально высокая.</p>
    <h2>Наша ошибка: девять вопросов вместо трёх</h2>
    <p>Первую версию агента квалификации мы сделали дотошной. Он собирал девять полей, потому что менеджеры сказали «нам нужно всё». В логах картина оказалась грустной: люди отваливались на третьем-четвёртом вопросе, диалог обрывался, лид оставался наполовину пустым.</p>
    <p>Сократили до трёх обязательных полей плюс телефон. Остальное агент вытаскивает из текста заявки сам, а чего не понял, помечает как «уточнить при звонке». Доля доведённых до конца диалогов выросла заметно, а менеджер получил карточку, с которой можно работать.</p>
    <p>Вывод, который мы теперь применяем ко всем проектам: агент должен спрашивать столько, сколько человек готов ответить незнакомцу в чате, а не столько, сколько хочет отдел продаж.</p>
    <h2>Ещё два провала и чем они закончились</h2>
    <p><strong>Агент отдал клиенту старую цену.</strong> Мы разрешили ему отвечать по прайсу напрямую, без человека. Прайс лежал выгрузкой, которая обновлялась ночью. Менеджеры поменяли условия днём, клиент получил вчерашнюю цифру и напомнил о ней при подписании. Спорить было нечем.</p>
    <p>Починили в два хода. Цены агент теперь берёт не из выгрузки, а запросом в учётную систему в момент ответа. И любая сумма уходит клиенту с оговоркой про срок действия предложения. Правило после этого случая простое: то, что меняется чаще раза в неделю, агент обязан спрашивать в реальном времени, а не помнить.</p>
    <p><strong>Агент разговорился не по делу.</strong> Тестовая версия поддержки бодро отвечала на вопросы про погоду, курс валют и планы компании на будущий год. Смешно ровно до первого скриншота в клиентском чате.</p>
    <p>Лечится ограничением темы и явным отказом: вне зоны ответственности агент говорит «этого я не знаю, передаю менеджеру» и передаёт. Отказ надо специально прописывать и специально тестировать, сам по себе он не появится. Мы держим для этого отдельный список из полутора десятков провокационных вопросов и прогоняем его перед каждым обновлением промпта.</p>
    <h2>Чек-лист: с чего начать на своих данных</h2>
    <ol><li>Выгрузите переписку с клиентами за последний месяц. Хоть из почты, хоть из Телеграма.</li><li>Разложите обращения на три кучки: типовые вопросы, заявки, всё остальное.</li><li>Посчитайте кучки. Соотношение сразу покажет, нужен вам бот, агент или оба.</li><li>По заявкам выпишите, какие поля менеджер вбивает в CRM руками. Это будущая схема разбора.</li><li>Найдите ответственного за содержание: кто отвечает за прайс, кто за регламенты, к кому идти за спорным случаем.</li><li>Отметьте действия, которые агенту нельзя доверять без подтверждения: счета, скидки, обязательства по срокам.</li></ol>
    <p>Неделя такой работы экономит потом месяц переделок. И самое ценное: половина проблем всплывает ещё до того, как вы потратили деньги на разработку.</p>
    <h2>Короткие ответы на частые вопросы</h2>
    <p><strong>Можно ли собрать агента на готовом конструкторе?</strong> Первую версию да, если конструктор умеет вызывать внешние функции. На интеграции с 1С и нестандартной логике конструкторы упираются, и проект переезжает в код. Начать с конструктора, чтобы проверить спрос, вполне разумно.</p>
    <p><strong>Нужен ли агенту доступ к 1С?</strong> Только на чтение и только к тому, что нужно для ответа: остатки, цены, статус заказа. Писать в учётную систему напрямую мы не даём, для этого есть CRM и задачи с человеком-владельцем.</p>
    <p><strong>Сколько времени занимает сборка?</strong> Простой агент с разбором заявок и записью в CRM собирается за 2-4 недели. Основное время съедает не ИИ, а доступы, справочники и согласование того, как процесс должен выглядеть.</p>
    <p><strong>Что будет, если модель недоступна?</strong> Агент должен уметь падать красиво: сохранить обращение, ответить клиенту нейтрально, позвать человека. Сценарий отказа проектируется сразу, иначе первый же сбой провайдера выглядит как молчание компании.</p>
    <p><strong>Заменит ли агент менеджера?</strong> Он забирает подготовку: сбор полей, поиск истории, черновик ответа, заведение карточки. Разговор, торг и решение остаются человеку.</p>
    <h2>Что делать дальше</h2>
    <p>Возьмите один процесс, самый шумный. Выпишите в таблицу: сколько обращений в неделю, сколько минут уходит на каждое, что именно человек делает руками, куда потом попадают сведения. Три колонки, неделя наблюдений.</p>
    <p>Дальше станет видно, что вам нужно. Одинаковые вопросы без действий закрывает бот. Разнобой формулировок и записи в CRM это агент. Смесь того и другого встречается чаще всего: бот на входе, агент на разборе.</p>
    <p>Примеры собранных контуров лежат в <a href="https://friendlyai.ru/cases.html">кейсах</a>. Если хочется сверить свой процесс с чужим опытом, приходите на <a href="https://friendlyai.ru/audit.html">AI-аудит</a>: разберём один процесс, посчитаем экономику в часах и скажем прямо, если задача решается ботом за неделю и агент здесь лишний.</p>]]></content:encoded>
    </item>
    <item>
      <title>Что нельзя отдавать нейросети: список из своих ошибок</title>
      <link>https://friendlyai.ru/news/articles/chto-nelzya-otdavat-neyroseti.html</link>
      <guid isPermaLink="true">https://friendlyai.ru/news/articles/chto-nelzya-otdavat-neyroseti.html</guid>
      <pubDate>Sat, 15 Aug 2026 09:00:00 +0500</pubDate>
      <author>bimaip@yandex.ru (FriendlyAI)</author>
      <description>Персданные, коммерческая тайна, код и ключи: что реально нельзя отправлять в чат с ИИ, как выглядит 152-ФЗ простыми словами и когда нужен локальный контур.</description>
      <enclosure url="https://friendlyai.ru/assets/og-cover.png" type="image/png" length="0"/>
      <content:encoded><![CDATA[<p>Мы проводили внутренний аудит своих же репозиториев и нашли три утечки ключей. Не в коде — в архивах. Кто-то положил в репозиторий <code>.zip</code> с рабочей папкой, а внутри лежал файл конфигурации с боевым паролем. Проверки на секреты по коду такое не видят: архив для них просто бинарник.</p>
    <p>Второй случай смешнее и неприятнее. Разбирали фотоархив и прогнали его через распознавание текста, чтобы искать снимки по содержимому. Через полчаса поиск начал бодро выдавать скриншоты с паролями — люди же скриншотят экран, а на экране бывает всё.</p>
    <p>Оба раза виноват не ИИ. Виноват порядок работы с данными, которого не было. Ниже — список, который мы написали для себя, и он же ложится в регламент для сотрудников у клиентов.</p>
    <h2>Что не уходит во внешний сервис никогда</h2>
    <p><strong>Пароли, токены, ключи доступа, файлы service account.</strong> Любой ключ, который хоть раз попал в чат — с ИИ или с человеком, — считается засвеченным и подлежит перевыпуску. Без обсуждений и «да ладно, там же приватный чат».</p>
    <p><strong>Персональные данные клиентов и сотрудников в исходном виде.</strong> ФИО с телефоном и адресом, паспорта, медицинские сведения, зарплаты. Отдельно — данные детей и всё, что относится к специальным категориям.</p>
    <p><strong>Сканы документов «как есть».</strong> Договор целиком, где на первой странице реквизиты, а в конце подписи и печати. Загружают такое чаще всего по одной причине — лень вырезать нужный кусок.</p>
    <p><strong>Материалы под режимом коммерческой тайны.</strong> Себестоимость, условия договоров с ключевыми поставщиками, техпроцессы, база клиентов с историей покупок.</p>
    <p><strong>Исходный код с секретами и внутренними адресами.</strong> Отправляя фрагмент, вы отправляете и <code>.env</code> рядом, если он попал в выделение.</p>
    <p><strong>Материалы дел и переписка с юристами.</strong> Здесь риск не только утечки: у такой информации бывает особый статус.</p>
    <h2>Серая зона: можно, но после обработки</h2>
    <p>Большая часть рабочих задач сюда и попадает — и это хорошая новость, потому что обезличивание решает проблему дёшево.</p>
    <p>Претензию клиента можно разобрать, заменив имя на «Клиент А», а номер договора на «№ХХХ». Прайс — прогнать без названий поставщиков. Резюме кандидата — вырезать контакты и оставить опыт. Договор — отправить один спорный пункт, а не весь файл.</p>
    <p>Правило простое: <strong>из текста должно быть невозможно понять, о ком идёт речь.</strong> Если после замены имени человека всё ещё узнаёт коллега по деталям — обезличивание не сработало.</p>
    <h2>152-ФЗ простыми словами</h2>
    <p>Юристом я не работаю, поэтому дальше — практическая выжимка, а не консультация. По серьёзным решениям идите к своему юристу, а лучше зафиксируйте схему обработки данных в документах до запуска.</p>
    <p>Что стоит понимать бизнесу:</p>
    <ol><li><strong>Персональные данные — это почти всё, что позволяет узнать человека.</strong> Не только паспорт: связка «имя + телефон» уже персданные. Номер заказа с адресом доставки — тоже.</li><li><strong>Обрабатывать их можно на основании, а не «потому что удобно».</strong> Чаще всего это согласие человека или исполнение договора с ним. Согласие должно быть конкретным, а не «на любые действия».</li><li><strong>Базы с персданными россиян должны находиться в России.</strong> Отправлять их во внешний сервис за периметром — как раз то место, где обычно и рвётся.</li><li><strong>Подрядчик обрабатывает данные по поручению.</strong> Отношения оформляются документом, где написано, что можно делать с данными, а что нельзя. Устная договорённость тут не считается.</li><li><strong>Штрафы за утечки перестали быть символическими</strong> — с 2025 года они привязаны к обороту компании. Это сильно изменило цену вопроса: раньше проще было заплатить, теперь дешевле сделать правильно.</li></ol>
    <p>Практический вывод один: не надо тащить клиентскую базу в чат. Хотите, чтобы ИИ работал с клиентскими данными, — стройте контур, где данные не покидают ваш периметр.</p>
    <h2>Коммерческая тайна: без режима её не существует</h2>
    <p>Частая иллюзия — «у нас всё конфиденциально». Юридически коммерческая тайна работает, только если введён режим:</p>
    <ul><li>утверждён перечень сведений, которые считаются тайной;</li><li>документы промаркированы;</li><li>сотрудники ознакомлены под подпись;</li><li>доступ ограничен, и кто его получал — где-то записано.</li></ul>
    <p>Нет режима — нет и защиты. Ушедший менеджер, унёсший базу, ничего не нарушил.</p>
    <p>Для ИИ-проекта это переводится в конкретное действие. Прежде чем решать, что можно отдавать модели, нужен список того, что вообще считается закрытым. Обычно у компании такого списка нет, и составление занимает вечер работы с директором. Заодно выясняется, что половина «секретов» лежит в открытом чате отдела.</p>
    <h2>Код, промпты и чужие модели</h2>
    <p>Три вещи, о которых редко думают.</p>
    <p>Бесплатные тарифы публичных сервисов часто предполагают, что ваши данные используются для улучшения продукта. В платных корпоративных версиях эти условия обычно другие. Читать надо не рекламную страницу, а условия использования — и делать это до того, как отдел начнёт пользоваться сервисом, а не после.</p>
    <p>Промпты — тоже актив. В хороший рабочий промпт зашита методика: как вы считаете, на что смотрите, какие пороги. Отдать такое наружу — отдать часть ноу-хау.</p>
    <p>И лицензии. Код, сгенерированный ИИ, попадает в ваш продукт, а откуда взяты его куски — вопрос без гарантированного ответа. В критичных для бизнеса местах мы такой код читаем глазами и проверяем, а не вставляем целиком.</p>
    <h2>Локальный контур: когда нужен</h2>
    <p>Локальная модель на своём сервере — это когда ничего не уходит за пределы вашей инфраструктуры вообще. Мы держим такой сервис для внутренних задач портфеля.</p>
    <p>Когда это оправдано:</p>
    <ul><li>работа с персданными клиентов в исходном виде;</li><li>медицина, юрдокументы, кадровые данные;</li><li>требования безопасности со стороны заказчиков или головной компании;</li><li>большие объёмы, где внешний сервис выходит дороже своего железа.</li></ul>
    <p>За что платите: за сервер, за настройку, за качество ниже топовых облачных моделей. Разрыв за последние пару лет сократился, но он есть, и на сложных рассуждениях заметен.</p>
    <p>Промежуточный вариант, который выбирают чаще всего: локально — то, что чувствительно, во внешнюю модель — обезличенное. Плюс изоляция доступов внутри. В корпоративном ассистенте, который мы делали для группы компаний, аккаунт заведён на отдел: 21 учётная запись на 20 отделов и директора, бухгалтерия не видит договоры продаж. Изоляцию мы проверяли отдельными тестами — это ровно то, что нужно проверять, а не декларировать.</p>
    <h2>Регламент для сотрудников: одна страница</h2>
    <p>Длинную политику никто не прочитает. Работает короткий список на страницу, который выдаётся вместе с доступом:</p>
    <ul><li>секреты, пароли и ключи в чат с ИИ не вставляем никогда;</li><li>клиентские данные — только обезличенными;</li><li>сканы документов — вырезаем нужный фрагмент, файл целиком не грузим;</li><li>рабочие задачи — в корпоративном аккаунте, не в личном;</li><li>ответ ИИ проверяем перед отправкой клиенту, особенно цифры;</li><li>скриншот перед отправкой смотрим целиком: пароли обычно уезжают именно так;</li><li>сомневаешься — спроси у ответственного, а не решай сам;</li><li>нарушил — сообщи сразу, ключ перевыпустим, за скрытое накажем строже.</li></ul>
    <p>Последний пункт важнее остальных. Если за признание в ошибке прилетает, сотрудники начинают молчать, и вы узнаёте об утечке от третьих лиц.</p>
    <h2>Что делать, если уже отправили</h2>
    <p>Отправили — бывает. Дальше важно не искать виноватого, а закрыть дыру по шагам.</p>
    <ol><li><strong>Считайте секрет скомпрометированным.</strong> Пароль, токен, ключ — перевыпустить сразу, старый отозвать. Это делается за минуты и стоит ноль.</li><li>Разберитесь, что именно ушло. Один пункт договора — одна история, файл с базой клиентов — совсем другая.</li><li>Зафиксируйте письменно: дата, что ушло, куда, кто отправил. Не для наказания, а чтобы через месяц не восстанавливать по памяти.</li><li>Если уехали персональные данные — сразу к юристу. У компании могут быть обязанности по уведомлению, и сроки там короткие.</li><li>Почините процесс. Если человек отправил договор целиком, потому что вырезать нужный пункт было неудобно, — виновата не дисциплина, а отсутствие удобного инструмента.</li></ol>
    <p>У себя мы держим правило жёстким до неприятного: любой ключ, мелькнувший в переписке, перевыпускается. Даже когда «ну там же ничего страшного». Один раз потратить десять минут дешевле, чем потом гадать.</p>
    <h2>Чек-лист гигиены на месяц</h2>
    <ul><li>Пройдитесь по репозиториям и общим папкам: нет ли там архивов и дампов? Секреты прячутся именно в них, а обычные проверки их не видят.</li><li>Посмотрите, у кого остались доступы после увольнения. Обычно находится два-три забытых аккаунта.</li><li>Проверьте, какими ИИ-сервисами реально пользуются сотрудники и в каких аккаунтах — личных или рабочих.</li><li>Заведите шаблон обезличивания для типовых задач: разбор претензии, анализ договора, проверка резюме. Пять минут работы, а пользоваться будут ежедневно.</li><li>Перечитайте условия сервиса, который используете чаще всего. Раз в полгода они меняются, и не всегда в вашу пользу.</li><li>Уточните у подрядчика, где физически лежат ваши данные. Ответ «в облаке» — не ответ.</li></ul>
    <h2>Частые вопросы</h2>
    <p><strong>Пользоваться ChatGPT в компании вообще можно?</strong> Можно, если есть правила и корпоративный доступ. Запрет без альтернативы не работает: люди уходят в личные аккаунты, и вы теряете даже видимость контроля.</p>
    <p><strong>Обезличили — значит, безопасно?</strong> Почти. Смотреть надо на совокупность: «клиент из Сибая, склад 2000 м², заказ в августе» может указывать на конкретную компанию точнее, чем название. Убирайте не только имена, но и приметы.</p>
    <p><strong>Малому бизнесу нужен свой сервер с локальной моделью?</strong> Чаще нет. Хватает обезличивания и корпоративных тарифов. Свой контур оправдан там, где данные чувствительные по существу: медицина, кадры, юридические материалы, персональные данные в исходном виде.</p>
    <p><strong>Что должно быть в договоре с подрядчиком?</strong> Где хранятся данные, кто из его сотрудников имеет доступ, что происходит с данными после окончания работ, NDA и порядок действий при инциденте. Мы такие пункты фиксируем сами, до старта, — так спокойнее обеим сторонам.</p>
    <p><strong>Наши данные попадут в обучение модели?</strong> Зависит от тарифа и сервиса. В бесплатных версиях — вполне вероятно. Читайте условия конкретного продукта, а не общие статьи в интернете, включая эту.</p>
    <h2>Чего не ждать</h2>
    <p>Полной защиты этот список не даёт. Он снижает вероятность и цену ошибки, но человек с доступом всё равно может скопировать что угодно куда угодно. Технически запретить это в малом бизнесе почти нереально, и на месте продавца, обещающего вам стопроцентную безопасность, я бы насторожился.</p>
    <p>Не надейтесь и на то, что запреты решат вопрос сами. Если ИИ реально экономит людям час в день, они будут им пользоваться — в личном аккаунте, с телефона, мимо всех правил. Работает не запрет, а нормальный разрешённый инструмент: когда есть корпоративный доступ, необходимости обходить правила не возникает.</p>
    <p>И ещё: безопасность стоит времени. Обезличивание, проверки, разбор инцидентов — это минуты каждый день и часы каждый месяц. Компании, которые не готовы их тратить, обычно и получают истории «мы отправили договор в чат, а он всплыл».</p>
    <h2>Первый шаг</h2>
    <p>Соберите руководителей на час и составьте одностраничный перечень: что у нас закрытое. Без юридических формулировок, просто по-русски. Дальше по этому перечню становится понятно, какие процессы можно автоматизировать сразу, а какие требуют своего контура.</p>
    <p>Второй шаг — посмотрите, чем сотрудники пользуются сейчас. Не «что разрешено», а что стоит у них на телефонах. Картина обычно отрезвляет.</p>
    <p>Что происходит дальше, видно в разборах <a href="https://friendlyai.ru/news/articles/baza-znaniy-dlya-ii-assistenta.html">про базу знаний</a> и <a href="https://friendlyai.ru/news/articles/gde-ii-gallyucinuruet.html">про контроль качества ответов</a> — оба контура строятся уже с учётом того, какие данные куда пускать. Если хотите разложить это на своих процессах, приходите на <a href="https://friendlyai.ru/audit.html">AI-аудит</a>: посмотрим, где у вас чувствительные данные, что можно вынести в локальный контур и с какого участка вообще начинать. А готовые примеры собранных систем — <a href="https://friendlyai.ru/cases.html">здесь</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как собрать базу знаний, чтобы ИИ-ассистент отвечал точно</title>
      <link>https://friendlyai.ru/news/articles/baza-znaniy-dlya-ii-assistenta.html</link>
      <guid isPermaLink="true">https://friendlyai.ru/news/articles/baza-znaniy-dlya-ii-assistenta.html</guid>
      <pubDate>Thu, 13 Aug 2026 09:00:00 +0500</pubDate>
      <author>bimaip@yandex.ru (FriendlyAI)</author>
      <description>Разбираем на своём опыте: какие документы годятся в базу знаний, как резать на чанки, что делать с версиями регламентов и кто следит, чтобы база не протухла.</description>
      <enclosure url="https://friendlyai.ru/assets/og-cover.png" type="image/png" length="0"/>
      <content:encoded><![CDATA[<p>Внутренний ассистент, которого мы собирали для строительной группы компаний, знает 155 файлов — это 798 кусков текста, разложенных по 20 отделам. Цифры звучат солидно. Но первая сборка отвечала мимо, и виноват был не ИИ.</p>
    <p>Мы просто ссыпали в базу всё, что лежало в общей папке. Регламенты вперемешку с презентациями, три редакции одного положения, сканы приказов картинками. Модель честно нашла то, где нужные слова встречались чаще, — и это оказалась презентация трёхлетней давности.</p>
    <p>База знаний — не файлопомойка с поиском. Это отдельный продукт, который надо спроектировать, собрать и потом кормить. Ниже — как мы это делаем сейчас, после нескольких заходов на грабли.</p>
    <h2>Что в базу класть нельзя</h2>
    <p><strong>Сканы без текстового слоя.</strong> PDF, у которого каждая страница — картинка. Поиск по нему находит ровно ничего. Проверка занимает пять секунд: откройте файл и попробуйте выделить строку мышью. Не выделяется — нужен OCR. Мы гоняем такие файлы через Tesseract, и тут отдельная засада: русская модель из набора <code>tessdata_fast</code> битая. Движок на ней молча спотыкается, откатывается на английский и выдаёт латинскую кашу вместо текста. Брать надо <code>tessdata_best</code>, он весит около 15 МБ.</p>
    <p><strong>Презентации.</strong> Слайд — это тезис без контекста. «Срок согласования — 3 дня» на слайде живёт без ответа на вопрос «согласования чего и кем». Ассистент вытащит эту строку и уверенно отдаст её клиенту.</p>
    <p><strong>Переписка целиком.</strong> Выгрузка почты за год добавляет объём и отнимает точность: половина писем — договорённости, которые давно отменили.</p>
    <p><strong>Файлы с именами вроде «Положение_финал_2_испр(1).docx».</strong> Пока человек не скажет, какая из четырёх редакций действующая, ассистент будет цитировать случайную.</p>
    <p><strong>Excel с объединёнными ячейками и формулами.</strong> Разбирается в кашу. Если данные важны — выгружайте плоскую таблицу: одна строка, один объект, никаких шапок в три этажа.</p>
    <h2>Что годится</h2>
    <p>Скучные вещи. Действующие регламенты и инструкции в DOCX. Прайс-листы плоской таблицей. Ответы на частые вопросы, написанные человеком, а не собранные из переписки. Технические паспорта. Условия работы: гарантии, сроки, зоны выезда, что входит в стоимость и что не входит.</p>
    <p>Стартовать проще всего с двадцати вопросов, которые сотрудники задают друг другу чаще всего. Не с документов — с вопросов. Соберите их у руководителя отдела за один разговор, потом найдите, где на каждый лежит ответ. Половину ответов вы не найдёте нигде: они живут в голове у Марины из сметного. Вот эти полчаса с Мариной и есть самая ценная часть сборки базы.</p>
    <h2>Как резать документ на куски</h2>
    <p>ИИ не читает файл целиком. Система находит несколько подходящих фрагментов и уже по ним формулирует ответ. Значит, качество упирается в нарезку.</p>
    <p>Плохой способ — резать вслепую по 1000 символов. Кусок начинается с середины таблицы и заканчивается на середине предложения; ответ получается обрубком.</p>
    <p>Хороший способ — резать по заголовкам. Один смысловой раздел — один фрагмент. Если раздел большой, делим по подзаголовкам с перекрытием в пару предложений, чтобы мысль не рвалась. Рабочий ориентир по размеру — 300–800 слов на кусок.</p>
    <div class="table-wrap"><table><thead><tr><th>Формат исходника</th><th>Чем разбираем</th><th>На что смотреть</th></tr></thead><tbody><tr><td>DOCX</td><td>python-docx</td><td>заголовки стилями, а не «жирным вручную»</td></tr><tr><td>PDF текстовый</td><td>PyMuPDF</td><td>колонтитулы попадают в каждый чанк — вычищать</td></tr><tr><td>PDF-скан</td><td>Tesseract + <code>tessdata_best</code></td><td>проверить выборочно 5 страниц глазами</td></tr><tr><td>XLSX</td><td>openpyxl</td><td>развернуть объединённые ячейки до плоской таблицы</td></tr><tr><td>Почта, чаты</td><td>руками</td><td>сначала выжимка, потом в базу</td></tr></tbody></table></div>
    <p>Ещё один момент, который экономит много нервов: заголовок раздела надо дописывать в начало каждого фрагмента. Тогда кусок «не более 5 рабочих дней» превращается в «Гарантийный ремонт → Сроки → не более 5 рабочих дней», и поиск начинает попадать.</p>
    <h2>Шапка файла: шесть строк, которые решают половину проблем</h2>
    <p>В начало каждого документа базы мы ставим короткий блок:</p>
    <ul><li>о чём документ — одной фразой;</li><li>к какому отделу относится;</li><li>с какой даты действует;</li><li>кто владелец: фамилия, а не «отдел кадров»;</li><li>откуда взяты цифры — приказ, договор, расчёт.</li></ul>
    <p>Шесть строк. Дают они сразу две вещи: поиск цепляется за них как за краткое содержание, а человек при разборе инцидента понимает, откуда прилетел кривой ответ.</p>
    <p>Это же правило страхует от главной беды: ответ без источника проверить невозможно. У нас в инженерной платформе канон жёсткий — ни одного числа без ссылки на документ, откуда оно взято. Подробнее про это в статье <a href="https://friendlyai.ru/news/articles/gde-ii-gallyucinuruet.html">где ИИ врёт и как это ловить</a>.</p>
    <h2>Версии регламентов — главная головная боль</h2>
    <p>Компания живёт, регламенты меняются, старые редакции остаются лежать. И ассистент цитирует ту, которую нашёл.</p>
    <p>Что делаем мы:</p>
    <ul><li>в базе лежит только действующая редакция, архив хранится отдельно и в поиск не попадает;</li><li>дата вступления в силу пишется в шапке документа и попадает в каждый фрагмент;</li><li>если два документа противоречат друг другу, ассистент обязан сказать об этом прямо, а не выбирать удобный;</li><li>раз в квартал — сверка списка документов базы со списком действующих приказов. Занимает час, ловит по 3–5 протухших файлов.</li></ul>
    <p>Автоматически «понять», какая редакция свежая, не получится. Дата файла врёт: её меняет любое сохранение. Порядок наводится руками один раз, дальше поддерживается по мере изменений.</p>
    <h2>У каждого раздела должен быть живой владелец</h2>
    <p>Это единственный пункт, без которого база гарантированно умрёт за квартал. Не «отдел отвечает», а конкретный человек с фамилией: раздел «Гарантия» — Иванов, раздел «Прайс» — Петрова. Владелец делает две вещи: подтверждает изменения в своём разделе и разбирает жалобы «ассистент ответил неправильно».</p>
    <p>Мы у себя закрепили это на уровне процесса: у каждой части базы есть тот, кто её принимает, и отдельный контролёр, который проверяет чужую работу. Сам себя никто не принимает. Звучит бюрократично, но именно эта пара ролей держит качество базы, когда первый энтузиазм проходит.</p>
    <p>Ещё нужна изоляция доступов. В корпоративном ассистенте у нас аккаунт на отдел: 20 отделов плюс директор, и бухгалтерия не видит договоры продаж. Изоляцию проверяли отдельно — это тот пункт, который надо тестировать, а не декларировать.</p>
    <h2>Люди спрашивают не теми словами</h2>
    <p>Регламент называет это «мобилизацией бригады на объект». Клиент пишет «сколько стоит выезд». Поиск по документам эти две формулировки не связывает никак, и ассистент честно отвечает «не нашёл», хотя нужное лежит на второй странице.</p>
    <p>Лечится не магией, а списком синонимов, который ведётся руками. Мы держим его прямо в базе отдельным файлом: официальный термин, а рядом три-пять живых формулировок — как говорят клиенты, монтажники, менеджеры. Туда же идут расшифровки внутренних сокращений. «КС-2», «СКС», «ПНР» — в документах они на каждой странице, а новичок и клиент их не знают.</p>
    <p>Пополняется список из логов. Раз в неделю смотрим вопросы, на которых ассистент развёл руками, и добрая половина оказывается не пробелом в базе, а разницей в словах.</p>
    <h2>Чтобы база не протухла</h2>
    <p>Живая база — та, у которой есть постоянный входящий поток изменений. Работают три канала:</p>
    <ul><li>вопросы без ответа за неделю — коротким списком владельцам разделов, дальше их решение: дописывать или нет;</li><li>жалобы «ответил неправильно» — разбирается каждая, и по итогу правится документ, а не промпт;</li><li>изменения в компании: новый прайс, новая услуга, свежая редакция положения. Обновление базы должно быть вписано в процесс их утверждения, иначе про него просто забудут.</li></ul>
    <p>Часа-полутора в неделю на человека хватает. Меньше не выходит. Больше — сигнал, что база собрана криво, и надо возвращаться к структуре, а не героически её подпирать.</p>
    <p>Отдельно про объём: расти база должна медленно. Сорок выверенных документов работают лучше четырёхсот «на всякий случай» — каждый лишний файл размывает поиск. Мы это видели на цифрах приёмки: после загрузки очередной пачки материалов точность на старых вопросах падала.</p>
    <h2>Приёмка: 20 вопросов, а не «вроде отвечает»</h2>
    <p>Перед запуском собираем список из двадцати реальных вопросов с заранее известными правильными ответами. Половина — простые, четверть — на стыке двух документов, ещё четверть — про то, чего в базе нет вообще (ассистент обязан честно сказать «не знаю»).</p>
    <p>Прогон по этому списку занимает полчаса и даёт понятную цифру: 17 из 20. Дальше видно, что чинить. Без такого списка приёмка превращается в спор о вкусах, и запускается система, которой никто не доверяет.</p>
    <h2>Где это не работает</h2>
    <p>Скажу честно. База знаний не спасает, когда знаний в компании нет — есть 15 лет устной традиции. В такой ситуации ИИ-проект превращается в проект по написанию регламентов, и это нормально, но сроки другие: не две недели, а два-три месяца, и основную работу делают ваши люди, а не подрядчик.</p>
    <p>Не работает и на быстро меняющихся данных. Остатки на складе, актуальные цены, статус заказа — это не база знаний, это интеграция с учётной системой. Пытаться держать их в документах бессмысленно: к моменту ответа цифра устареет.</p>
    <p>Не ждите точности 100%. Реалистичный ориентир для хорошо собранной базы — 90–95% верных ответов на типовых вопросах, при условии что оставшиеся 5–10% ассистент честно отдаёт человеку, а не выдумывает.</p>
    <p>И последнее: база не заменяет обучение сотрудников. Она отвечает на вопрос «где написано», а не на вопрос «как думать».</p>
    <h2>Провал, который стоил нам двух недель</h2>
    <p>Расскажу подробно, потому что ошибка типовая.</p>
    <p>На одном из первых заходов мы нарезали документы механически — кусками по 1000 символов, как в большинстве примеров из интернета. В базе лежал прайс с таблицей: наименование, цена, срок, условия. Таблица длинная, и нарезка разрубила её посередине строки.</p>
    <p>Дальше произошло вот что. Ассистент нашёл кусок, где было название нужной услуги. Цена в этом куске тоже была — только относилась она к следующей строке таблицы. Ответ выглядел абсолютно нормальным: услуга правильная, цифра правдоподобная, источник указан. Поймали случайно, когда человек полез в исходный файл.</p>
    <p>Чинили так:</p>
    <ul><li>таблицы вынесли из общего потока текста и стали резать построчно, каждая строка — отдельный фрагмент со своей шапкой;</li><li>в каждый фрагмент дописали заголовок раздела и название колонок;</li><li>добавили в набор проверочных вопросов пять штук именно про цены, с точными ожидаемыми цифрами;</li><li>договорились, что цены вообще не живут в базе знаний долго — их место в учётной системе, а в базе только условия и порядок расчёта.</li></ul>
    <p>Две недели ушло на то, чтобы найти причину и перестроить нарезку. Если бы у нас с самого начала был список контрольных вопросов с точными ответами, поймали бы за час.</p>
    <h2>Чек-лист: что проверить перед стартом</h2>
    <ul><li>Есть ли у вас 20 вопросов, на которые ассистент обязан отвечать, и знаете ли вы правильные ответы?</li><li>Какая доля документов — сканы? Проверьте выборочно: выделяется ли текст мышью.</li><li>Сколько документов противоречат друг другу? Обычно находится две-три пары, и это нормально — важно решить, какой главнее.</li><li>Назначен ли владелец у каждого раздела? Не отдел, а человек.</li><li>Кто разбирает жалобы «ответил неправильно» и сколько времени в неделю на это заложено?</li><li>Где проходит граница: что живёт в базе знаний, а что берётся из учётной системы?</li><li>Как сотрудники будут спрашивать — в Telegram, в веб-кабинете, внутри CRM? От этого зависит, будут ли пользоваться вообще.</li></ul>
    <h2>Частые вопросы</h2>
    <p><strong>Модель обучается на наших документах?</strong> Нет. Документы лежат в поисковой базе, модель их не запоминает — она получает найденные фрагменты в момент вопроса и формулирует ответ по ним. Убрали документ из базы, и ассистент про него больше не знает.</p>
    <p><strong>Сколько документов нужно, чтобы начать?</strong> Хватает 15–30 на один отдел. Больше на старте вредно: труднее проверять качество и понять, что именно ломается.</p>
    <p><strong>А если документы обновляются каждую неделю?</strong> Нормальная ситуация. Обновление базы должно занимать минуты и делаться тем, кто правит документ, а не подрядчиком по заявке. Если для замены файла нужно писать в поддержку, база умрёт.</p>
    <p><strong>Можно ли дать доступ клиентам, а не только сотрудникам?</strong> Можно, но база для клиентов собирается отдельно. Внутренние регламенты, себестоимость и переписка туда попадать не должны — <a href="https://friendlyai.ru/news/articles/chto-nelzya-otdavat-neyroseti.html">про это есть отдельный разбор</a>.</p>
    <h2>С чего начать на следующей неделе</h2>
    <p>Возьмите один отдел, где чаще всего дёргают коллег вопросами. Соберите 20 вопросов и найдите на них ответы в документах. Приведите в порядок эти документы — шапка, действующая редакция, нормальные заголовки. Получится мини-база на 15–30 файлов, и уже на ней видно, взлетит ли идея у вас.</p>
    <p>Дальше — то, что мы делаем чаще всего: подключаем такую базу к боту в Telegram, и сотрудник спрашивает как человека. Как это выглядит на живых процессах, показываем в <a href="https://friendlyai.ru/cases.html">наших кейсах</a>. А если хотите понять, с какого участка вам вообще начинать, — приходите на <a href="https://friendlyai.ru/audit.html">AI-аудит</a>: разберём процесс, посчитаем, что даст эффект первым, и скажем прямо, если база знаний в вашем случае не первый шаг.</p>]]></content:encoded>
    </item>
    <item>
      <title>RAG-агент в компании: доступы, приёмка, эксплуатация</title>
      <link>https://friendlyai.ru/news/articles/corporate-rag-agent.html</link>
      <guid isPermaLink="true">https://friendlyai.ru/news/articles/corporate-rag-agent.html</guid>
      <pubDate>Mon, 12 Jan 2026 09:00:00 +0500</pubDate>
      <author>bimaip@yandex.ru (FriendlyAI)</author>
      <description>Как внедрить RAG-агента по документам компании: кто владелец базы, права доступа по отделам, регламент обновления, критерии приёмки и метрики в проде.</description>
      <enclosure url="https://friendlyai.ru/assets/og-cover.png" type="image/png" length="0"/>
      <content:encoded><![CDATA[<p>Систему сдали в пятницу. В понедельник вопросы задали шесть человек из шестидесяти, к четвергу осталось двое. Технически всё было исправно: поиск находил фрагменты, ответы приходили со ссылкой на файл. Не хватало другого — у базы не было хозяина, а у людей не было причины туда ходить.</p>
    <p>Про механику я писал отдельно: <a href="https://friendlyai.ru/news/articles/rag-prostymi-slovami.html">как ИИ отвечает по вашим документам</a>. Про сборку — тоже: <a href="https://friendlyai.ru/news/articles/baza-znaniy-dlya-ii-assistenta.html">структура, форматы, нарезка</a>. Эта статья про то, что начинается после демо. Роли, доступы, порядок обновления документов, критерии приёмки и цифры, по которым видно: система живая или уже покойник.</p>
    <h2>Кто владелец базы (спойлер: не ИТ)</h2>
    <p>Типовая схема внедрения выглядит так. ИТ получили задачу, ИТ поставили, ИТ теперь отвечают за содержимое. Через месяц ассистент цитирует прошлогодний прайс, потому что системный администратор не обязан знать, какая редакция положения действующая. Он и не узнает.</p>
    <p>Работающее распределение — три уровня плюс контроль.</p>
    <p><strong>Владелец системы.</strong> Один человек на компанию: операционный или коммерческий директор. Отвечает не за технику, а за то, что системой пользуются. У него в календаре стоит получасовая встреча раз в месяц по метрикам. Нет встречи в календаре — роль формальная, и через квартал это будет видно.</p>
    <p><strong>Владельцы разделов.</strong> По человеку на отдел, с фамилией. Подтверждают изменения в своих документах, разбирают жалобы «ответил неправильно», решают спорные вопросы вроде «какой из двух регламентов главнее». Занимает час-полтора в неделю. Если эти часы не выделены официально, работа не делается — не потому что люди плохие, а потому что у них есть основная нагрузка.</p>
    <p><strong>Технический сопровождающий.</strong> Переиндексация, доступы, обновления, бэкапы, мониторинг. Это как раз ИТ. Содержимое — не его зона ответственности, и это стоит проговорить вслух на старте, иначе виноватым назначат его.</p>
    <p>Отдельно — приёмка. Тот, кто наполняет базу, не может сам подтверждать её качество: глаз замылен, ошибку видно только со стороны. У себя мы это зашили в процесс жёстко: работу одного принимает другой, сам себя не принимает никто. В корпоративном внедрении роль проверяющего обычно берёт руководитель смежного отдела — тот, кто пользуется чужими документами и первым замечает враньё.</p>
    <div class="table-wrap"><table><thead><tr><th>Что происходит</th><th>Кто делает</th><th>Кто подтверждает</th></tr></thead><tbody><tr><td>Новый регламент утверждён</td><td>автор документа</td><td>владелец раздела</td></tr><tr><td>Файл попал в базу, переиндексация</td><td>техсопровождение</td><td>владелец раздела</td></tr><tr><td>Жалоба «ответил неправильно»</td><td>владелец раздела разбирает</td><td>владелец системы видит в сводке</td></tr><tr><td>Новый отдел подключается</td><td>техсопровождение + владелец раздела</td><td>владелец системы</td></tr><tr><td>Ежемесячный отчёт по метрикам</td><td>техсопровождение готовит</td><td>владелец системы принимает решения</td></tr></tbody></table></div>
    <h2>Права доступа: фильтр до поиска, а не после</h2>
    <p>Во внутреннем ассистенте строительной группы у нас 21 аккаунт: 20 отделов и директор. Поиск идёт по 798 фрагментам из 155 файлов, и бухгалтерия не видит договоры продаж, а снабжение не видит расчёты по зарплате.</p>
    <p>Техническая деталь, на которой легко ошибиться: метка отдела ставится на фрагмент, и фильтрация происходит <strong>до</strong> того, как поиск отдал результат модели. Схема «нашли всё, потом отрезали лишнее в ответе» не годится — чужой текст уже попал в запрос, и достаточно одной кривой формулировки промпта, чтобы он выплыл наружу.</p>
    <p>Матрица доступа помещается на одну страницу и делится на три контура:</p>
    <ul><li><strong>общий</strong> — прайсы, инструкции, регламенты, справочник контактов, всё, что и так висит на стене;</li><li><strong>отдел</strong> — договоры, сметы, внутренние методики, рабочая переписка-выжимка;</li><li><strong>узкий круг</strong> — оплата труда, себестоимость, юридические риски. Сюда обычно проще вообще не пускать ассистента.</li></ul>
    <p>Изоляцию надо проверять, а не декларировать. Мы держим список из полутора десятков провокационных вопросов и прогоняем его после каждого крупного изменения базы: «покажи оклад главного инженера», «какая у нас наценка на позиции для розницы», «дай телефон директора по строительству». Спрашиваем от лица обычного аккаунта отдела. Ответ должен быть один — «нет доступа», а не пересказ найденного.</p>
    <p>Ещё пункт, который вылезает через полгода: люди увольняются и переводятся. Аккаунт ассистента должен отключаться в тот же день, что и корпоративная почта, а лучше — быть привязанным к общей учётной записи компании. Отдельный список логинов «где-то у Пети в таблице» переживёт любые благие намерения.</p>
    <p>И граница по данным. Часть материалов в базу вообще не кладётся, даже с закрытым доступом: персональные данные сотрудников, сканы паспортов, доступы к системам. Разбор с перечнем — в статье <a href="https://friendlyai.ru/news/articles/chto-nelzya-otdavat-neyroseti.html">что нельзя отдавать нейросети</a>.</p>
    <h2>Обновление документов: кнопка у владельца, а не заявка в ИТ</h2>
    <p>База умирает не от плохой технологии, а от процедуры. Если, чтобы заменить прайс, надо написать в поддержку и подождать три дня, прайс не заменят никогда.</p>
    <p>Что мы делаем:</p>
    <ol><li>Обновление базы вписывается в существующий процесс утверждения документа. Подписали новую редакцию положения — в том же маршруте есть шаг «загрузить в базу знаний». Не отдельный ритуал, а строчка в уже работающем регламенте.</li><li>Кнопка «обновить раздел» — у владельца раздела. Переиндексация занимает минуты, никакого разработчика для этого не нужно.</li><li>Старая редакция уезжает в архив, который лежит вне индекса. Не удаляется — просто не участвует в поиске.</li><li>Раз в квартал — сверка списка документов базы со списком действующих приказов. Час работы, стабильно ловит три-пять протухших файлов.</li></ol>
    <p>Отдельно про журнал. Каждое изменение фиксируется: что заменили, когда, кто. Когда через месяц ассистент выдаст странный ответ, первый вопрос будет «а что мы туда положили на прошлой неделе», и без журнала на него уходит полдня.</p>
    <h2>Приёмка: цифры вместо «вроде отвечает»</h2>
    <p>Приёмку надо описать до старта работ, иначе она превращается в спор о вкусах. Наш стандартный протокол — 30 вопросов с заранее известными ответами:</p>
    <ul><li>15 простых, ответ лежит в одном документе;</li><li>8 на стыке двух-трёх документов;</li><li>7 про то, чего в базе нет вообще — здесь правильный ответ «не нашёл».</li></ul>
    <p>Пороги, при которых система считается принятой: не меньше 25 верных ответов из 30, <strong>ноль уверенно неправильных</strong>, 100% ответов со ссылкой на источник, 15 из 15 по тесту изоляции доступов. Уверенно неправильный ответ — единственный критерий с нулевым допуском: отказ можно пережить, вранье со ссылкой — нет.</p>
    <p>Прогон занимает около часа. Подписывают владелец системы и владельцы разделов, и это же условие оплаты этапа, если работу делает подрядчик.</p>
    <h2>Куда встраивать, чтобы пользовались</h2>
    <p>Возвращаюсь к истории из первого абзаца. Провал с шестью пользователями из шестидесяти был не техническим: ассистент жил в отдельном веб-кабинете с отдельным паролем. Открыть браузер, вспомнить логин, зайти — три действия, каждое отнимает у человека желание.</p>
    <p>Перенесли в Telegram-бота со входом по ссылке — и вопросы пошли. Люди спрашивают там, где уже сидят весь день. Внутренний портал, CRM, почта — тот же принцип: ассистент должен быть в одном клике от рабочего окна.</p>
    <p>Вторая вещь, которая заметно поднимает приживаемость: две недели «дежурного по базе» в общем чате. Человек отвечает на «а он вообще умеет?», собирает неудачные вопросы и по ним дописывает базу. Скучно, зато после этих двух недель система перестаёт быть чужой игрушкой.</p>
    <h2>Метрики, по которым видно правду</h2>
    <div class="table-wrap"><table><thead><tr><th>Метрика</th><th>Как считаем</th><th>Ориентир</th></tr></thead><tbody><tr><td>Активные за неделю</td><td>уникальные, задавшие хотя бы один вопрос</td><td>40-60% подключённых со второго месяца</td></tr><tr><td>Доля «не нашёл»</td><td>ответов без источника ко всем</td><td>10-20% — норма, 40% — база дырявая</td></tr><tr><td>Уверенно неверные</td><td>выборка 30 диалогов в месяц глазами + все жалобы</td><td>около нуля, каждый случай разбирается</td></tr><tr><td>Повторный вопрос за час</td><td>человек переспросил то же другими словами</td><td>больше 25% — беда с нарезкой или формулировками</td></tr><tr><td>Время ответа</td><td>от вопроса до текста</td><td>5-7 секунд, дальше люди уходят</td></tr><tr><td>Возраст документов</td><td>доля файлов старше года без подтверждения</td><td>меньше 10%</td></tr></tbody></table></div>
    <p>Главная из них — первая. Точность 95% при трёх пользователях означает, что денег вы не вернёте.</p>
    <h2>Где это не работает</h2>
    <p>Не работает там, где знаний нет в файлах, а есть пятнадцать лет устной традиции. Тогда проект превращается в написание регламентов силами ваших же людей, и сроки другие: не три недели, а два-три месяца.</p>
    <p>Не работает на быстро меняющихся данных. Остатки склада, статус заказа, актуальная цена — это интеграция с учётной системой, а не база знаний. Документ с остатками устареет раньше, чем его проиндексируют.</p>
    <p>Плохо окупается в компаниях меньше пятнадцати человек: там дешевле спросить коллегу через стол. Исключение — если у вас сложная нормативка и цена ошибки высокая.</p>
    <p>И не ждите, что можно один раз внедрить и забыть. Час-полтора в неделю на владельца раздела — это постоянная нагрузка, а не проектная. Компании, которые не готовы её нести, получают мёртвую базу через квартал, независимо от качества подрядчика.</p>
    <h2>Провал, который стоил доверия</h2>
    <p>В пилоте мы решили не тормозить и подключили общую папку целиком — разграничение доступов отложили «на второй этап». Через неделю сотрудник спросил про порядок начисления премии и получил фрагмент из положения об оплате труда, которое лежало в той же папке вместе с регламентами.</p>
    <p>Формально утечки не было: документ и так внутренний. Дальше произошло неприятное. По отделу пошёл разговор «а что оно ещё про нас знает», и вопросы про рабочие вещи люди задавать перестали. На восстановление доверия ушло больше времени, чем на всю техническую часть.</p>
    <p>Чинили так: разделили базу на три контура, метки отдела стали проставляться до индексации, добавили тест изоляции в регламент приёмки, а на общей встрече показали людям, что именно ассистент видит и чего не видит. Вывод простой: доступы — не второй этап. Это условие запуска.</p>
    <h2>Частые вопросы</h2>
    <p><strong>Сколько людей нужно со стороны компании?</strong> Один владелец системы, по одному владельцу на подключаемый отдел и один человек от ИТ. Для пилота на два отдела это три-четыре человека с суммарной загрузкой около шести часов в неделю.</p>
    <p><strong>Документы уедут во внешнее облако?</strong> Зависит от схемы. При работе с внешней моделью наружу уходят только найденные фрагменты в момент вопроса, не весь архив. Если требования жёстче, всё разворачивается на вашем сервере — про это есть <a href="https://friendlyai.ru/news/articles/lokalnaya-llm-na-svoem-servere.html">разбор про локальную LLM</a>.</p>
    <p><strong>Что делать, если владелец раздела уволился?</strong> Роль передаётся вместе с должностью, и это записывается в регламент. Раздел без живого владельца замораживается: документы остаются, но помечаются как неподтверждённые, и в ответах появляется предупреждение.</p>
    <p><strong>Сколько занимает внедрение?</strong> Пилот на один отдел — две-четыре недели, из них половина уходит на сбор и чистку файлов на вашей стороне. Разворачивание на всю компанию — два-три месяца, отдел за отделом, а не всё сразу.</p>
    <p><strong>Сколько это стоит?</strong> Своего прайса мы не публикуем: цена считается после разбора процесса. Для ориентира — рыночные вилки на середину 2026 года: коробочная RAG-система 150-300 тыс. ₽, сопровождение 15-50 тыс. ₽ в месяц. Это цифры рынка, а не наше предложение; ваша сумма зависит от состояния документов и числа интеграций.</p>
    <h2>Что сделать на этой неделе</h2>
    <p>Возьмите список из десяти документов, которыми ваш отдел пользуется чаще всего, и напротив каждого напишите фамилию человека, который подтвердит, что редакция действующая. Если напротив половины фамилии не находится — начинать надо не с ИИ, а с этого списка.</p>
    <p>Дальше — пилот на одном отделе: 15-30 файлов, 30 контрольных вопросов, две недели живой работы. Как выглядят собранные контуры, показываю в <a href="https://friendlyai.ru/cases.html">кейсах</a>. Хотите понять, что даст эффект первым и стоит ли вообще начинать с базы знаний, приходите на <a href="https://friendlyai.ru/audit.html">AI-аудит</a> — разберём процесс и скажем прямо, если в вашем случае выгоднее автоматизировать что-то другое.</p>]]></content:encoded>
    </item>
    <item>
      <title>ИИ и CRM: как агент заводит сделки без дублей и потерь</title>
      <link>https://friendlyai.ru/news/articles/ai-sales-crm.html</link>
      <guid isPermaLink="true">https://friendlyai.ru/news/articles/ai-sales-crm.html</guid>
      <pubDate>Sat, 10 Jan 2026 09:00:00 +0500</pubDate>
      <author>bimaip@yandex.ru (FriendlyAI)</author>
      <description>Как ИИ-агент пишет лиды в Битрикс24 и amoCRM: обязательные поля, борьба с дублями, назначение ответственного, отчёты руководителю и типовые сбои обмена.</description>
      <enclosure url="https://friendlyai.ru/assets/og-cover.png" type="image/png" length="0"/>
      <content:encoded><![CDATA[<p>Один клиент, три карточки. В первой телефон записан как +7 917 123-45-67, во второй — 89171234567, в третьей человек оставил только почту. Все три завёл наш же контур: заявка с сайта, письмо и сообщение в Telegram пришли в разное время, а сопоставить их между собой никто не догадался. Менеджеры две недели звонили одному и тому же человеку по очереди, пока он не написал раздражённое письмо.</p>
    <p>Про сам диалог с клиентом и скоринг я разбирал отдельно: <a href="https://friendlyai.ru/news/articles/ii-kvalifikaciya-lidov.html">как ИИ квалифицирует заявку</a>. Здесь — про вторую половину работы, которая никому не интересна на демо и определяет всё в проде: что именно агент записывает в CRM, как не плодит дубли, кому назначает сделку и что видит руководитель утром.</p>
    <h2>Что агент имеет право писать, а что нет</h2>
    <p>Первое решение принимается до интеграции: границы прав. Соблазн дать ИИ полный доступ к воронке велик, и заканчивается он тем, что кто-то из менеджеров находит свою сделку сдвинутой на этап назад.</p>
    <p>Наше рабочее правило: агент <strong>создаёт</strong> и <strong>дополняет</strong>, но не <strong>переводит</strong> и не <strong>закрывает</strong>. Он заводит лид, пишет в него всё, что узнал, ставит задачу и напоминание. Сдвиг по воронке дальше стадии «квалифицирован» — только человеком. Сумма сделки — только человеком. Причина отказа — человеком.</p>
    <div class="table-wrap"><table><thead><tr><th>Поле в карточке</th><th>Откуда берёт агент</th><th>Где обычно ломается</th></tr></thead><tbody><tr><td>Имя</td><td>из диалога, иначе «Клиент с сайта»</td><td>«ага», «я», «Иван Иваныч» — чистить перед записью</td></tr><tr><td>Телефон</td><td>из диалога/формы, приводится к +7XXXXXXXXXX</td><td>форматы, добавочные, номер в тексте сообщения</td></tr><tr><td>Суть задачи, одна строка</td><td>выжимка модели, не расшифровка диалога</td><td>модель любит писать абзац — ограничивать длину в промпте</td></tr><tr><td>Источник и кампания</td><td>UTM, канал, страница</td><td>UTM теряются при переходе через мессенджер</td></tr><tr><td>Балл квалификации</td><td>скоринг</td><td>поле должно быть числом, а не текстом</td></tr><tr><td>Обещанный срок ответа</td><td>что бот сказал клиенту</td><td>без этого поля менеджер нарушает чужое обещание</td></tr><tr><td>Полный диалог</td><td>вложением или в отдельное поле</td><td>ограничение длины поля в CRM, режется молча</td></tr></tbody></table></div>
    <p>Последняя строка про «режется молча» — не мелочь. Битрикс24 обрежет длинный комментарий, и вы узнаете об этом, когда менеджер спросит, где вторая половина переписки.</p>
    <h2>Дубли: две минуты работы, которые экономят месяц ругани</h2>
    <p>Дубль появляется по трём причинам, и лечится каждая по-своему.</p>
    <p><strong>Разные форматы контакта.</strong> Перед любой записью телефон нормализуется: убираются пробелы, скобки, дефисы, ведущая 8 меняется на +7. Почта приводится к нижнему регистру. Простое правило, которое почему-то делают в последнюю очередь.</p>
    <p><strong>Один человек в разных каналах.</strong> Ищем по телефону и почте за последние 90 дней. Нашли — не создаём новую карточку, а дописываем комментарий в существующую и поднимаем её в работу. Отдельно помечаем: «повторное обращение». У нас это, кстати, лучший по конверсии сегмент, и терять его в дублях особенно обидно.</p>
    <p><strong>Повтор запроса при сбое.</strong> Сеть моргнула, контур повторил шаг, в CRM две одинаковые карточки. Лечится ключом идемпотентности: хеш из телефона, даты и первых ста символов текста, таблица уже обработанных заявок со сроком хранения неделя. Подробнее про эту механику — в разборе про <a href="https://friendlyai.ru/news/articles/n8n-ai-crm-workflow.html">надёжность контура n8n</a>.</p>
    <p>Отдельная беда — грязь в справочниках. В номенклатуре 1С мы однажды ловили позицию «Сгон», у которой первая буква была латинской C. Глазами не отличить, поиск молча не находит, дубль создаётся автоматически. Такие гомоглифы нормализуются до сравнения, иначе часть базы формально существует, но недоступна.</p>
    <h2>Кому назначать: правила, а не «на директора»</h2>
    <p>Поле «ответственный» — то место, где автоматизация ломается тише всего. Лид завели, всё красиво, ответственный по умолчанию — руководитель отдела, у которого в CRM уже 400 висящих карточек. Формально заявка обработана. Фактически потеряна.</p>
    <p>Что работает:</p>
    <ul><li>распределение по правилу, а не по умолчанию: направление услуги, регион, размер объекта;</li><li>проверка занятости — если у менеджера больше N активных лидов без касания, следующий уходит другому;</li><li>отпуска и выходные подтягиваются из графика, а не из головы; на выходные назначается дежурный, и бот называет клиенту его реальное время ответа;</li><li>таймер: лид без первого касания дольше двух часов в рабочее время уходит наверх с уведомлением руководителю.</li></ul>
    <p>Эскалация должна быть автоматической. Схема «руководитель раз в день просматривает новые лиды» не выживает ни в одной компании дольше месяца.</p>
    <h2>Что видит руководитель утром</h2>
    <p>Отчёты — та часть, ради которой руководитель вообще соглашается на проект. Дашборд внутри CRM смотрят единицы, а короткое сообщение в Telegram в 9:00 читают все.</p>
    <div class="table-wrap"><table><thead><tr><th>Отчёт</th><th>Когда</th><th>Что внутри</th></tr></thead><tbody><tr><td>Утренняя сводка</td><td>9:00 ежедневно</td><td>сколько заявок за сутки, сколько ночных, сколько без касания, топ-3 горячих</td></tr><tr><td>Алерт по обещаниям</td><td>по факту</td><td>«клиенту обещали ответ до 12:00, сейчас 12:30, ответственный — Петров»</td></tr><tr><td>Недельный срез</td><td>понедельник</td><td>конверсия в следующий шаг, средняя скорость первого ответа, доля заполненных карточек</td></tr><tr><td>Причины отказов</td><td>раз в месяц</td><td>модель группирует тексты отказов в 5-7 категорий</td></tr></tbody></table></div>
    <p>Последняя строка — самое недооценённое. Менеджеры пишут причины отказа свободным текстом или не пишут вовсе. Модель разбирает эти обрывки и складывает в категории: дорого, сроки, выбрали другого, не наш профиль. Через два месяца у руководителя появляется картина, которой до этого не было ни в одном отчёте.</p>
    <p>Одна цифра, которую стоит завести отдельно: доля карточек, где заполнена суть задачи. До автоматизации типичная картина — 30-40%, остальное «клиент интересовался». После — под 90%, потому что агент не ленится и не забывает.</p>
    <h2>Что ломается при обмене</h2>
    <p>Собрал по своим шишкам. Это не теория, это список того, из-за чего звонили в субботу.</p>
    <p><strong>Лимиты API.</strong> У Битрикс24 ограничение на частоту запросов, и при всплеске заявок интеграция начинает получать отказы. Лечится очередью с паузой между запросами и повтором, а не увеличением скорости.</p>
    <p><strong>Протухший вебхук.</strong> Сотрудник, от чьего имени выпущен входящий вебхук, сменил должность или уволился — права слетели, интеграция молча перестала писать. Интеграционный пользователь должен быть техническим и не привязанным к живому человеку.</p>
    <p><strong>Обязательные и списочные поля.</strong> В CRM настроили обязательное поле «тип объекта» со списком из восьми значений. Агент пишет туда «склад», а в списке значится «Складское помещение» — карточка не создаётся, ошибка уходит в лог, заявка исчезает. Значения списков надо тянуть из CRM, а не хардкодить в промпт.</p>
    <p><strong>Часовые пояса.</strong> CRM в Москве, сервер в UTC, клиент в Новосибирске. Обещание «перезвоним до 12:00» превращается в разные 12:00 у трёх сторон. Хранить всё в UTC, показывать в часовом поясе клиента, писать в карточку явно.</p>
    <p><strong>CRM недоступна.</strong> Обновление, авария, кончилась лицензия. Заявка не должна теряться: резервный канал — письмо на общий ящик или сообщение в чат отдела с полным текстом, плюс очередь на дозапись. Терять обращение из-за чужого сбоя нельзя.</p>
    <p><strong>Правки на стороне маркетинга.</strong> Поменяли поля в форме на сайте — контур начал получать другие ключи и складывать пустые лиды. Проверять цепочку после любой правки сайта, это правило записывается в регламент.</p>
    <h2>Как это выглядело в аварии</h2>
    <p>Ночью провайдер CRM обновлялся и минут сорок отвечал ошибкой. Наш контур честно повторял каждый запрос — пять раз с интервалом. Когда CRM поднялась, все накопленные повторы прошли разом, и в воронке оказалось около двухсот карточек вместо сорока.</p>
    <p>Утром руководитель отдела увидел «рекордный день по лидам» и обрадовался. К обеду разобрались, и радость кончилась: чистить пришлось руками, потому что автоматическое слияние в CRM склеило часть комментариев не с теми контактами.</p>
    <p>Что переделали:</p>
    <ul><li>повторов теперь максимум три, с нарастающей паузой 5, 30 и 120 секунд, дальше заявка уходит в отдельную очередь на ручной разбор, а не крутится вечно;</li><li>перед созданием карточки — обязательный поиск дубля по нормализованному телефону за сутки;</li><li>ключ идемпотентности пишется в отдельное поле карточки, и повтор с тем же ключом просто игнорируется;</li><li>на резкий скачок числа созданных лидов настроен алерт: больше тридцати за час — сообщение в чат разработчику.</li></ul>
    <p>Три часа работы. Если бы это было сделано сразу, не было бы ни двухсот карточек, ни ручной чистки.</p>
    <h2>Где это не работает</h2>
    <p>Автоматическое заполнение CRM не чинит продажи. Если менеджер не перезванивает по горячим лидам, агент просто быстрее и аккуратнее донесёт их до того же места, где они умирают.</p>
    <p>Не работает и там, где CRM по факту не используется. Компания, которая ведёт сделки в тетради и в WhatsApp, от интеграции получит красивую базу, в которую никто не смотрит. Сначала процесс, потом автоматизация.</p>
    <p>Плохо ложится на длинные B2B-сделки с десятком участников. Первый контакт там — уже экспертный разговор, и роль ИИ другая: поднять историю, собрать контекст, подготовить менеджера к звонку.</p>
    <p>И честно про объём работ: техническая связка с amoCRM или Битрикс24 делается за пару дней. Дольше всего идёт согласование того, какие поля обязательные и кто за какое направление отвечает. Это разговор с руководителем отдела, а не с программистом, и он занимает недели.</p>
    <h2>Частые вопросы</h2>
    <p><strong>Агент сможет работать с нашей самописной CRM?</strong> Если у неё есть API — да. Если нет, остаётся обмен файлами по расписанию: так мы работаем с 1С, там обмен идёт JSON-файлами по таймеру. Медленнее, но надёжно.</p>
    <p><strong>Как не дать ИИ испортить существующие сделки?</strong> Правами интеграционного пользователя. Создание лидов и комментарии — можно, изменение суммы, стадии и удаление — нет. Проверять это надо на тестовой воронке, а не на боевой.</p>
    <p><strong>Что если модель напишет ерунду в карточку?</strong> Поэтому в карточке два поля: выжимка от модели и полный текст диалога. Менеджер видит источник и может перепроверить за десять секунд. Черновик от ИИ, решение за человеком.</p>
    <p><strong>Нужно ли переделывать воронку под ИИ?</strong> Обычно наоборот: полезно сократить. Типичная картина — 40 полей, из которых заполняются четыре. Перед интеграцией стоит вычистить мёртвые поля, иначе автоматизация закрепит бардак.</p>
    <p><strong>Сколько времени до первых результатов?</strong> Связка и первые карточки — неделя-две. Понятные цифры по конверсии — не раньше чем через полтора месяца, раньше не наберётся статистики.</p>
    <h2>Первый шаг</h2>
    <p>Выгрузите из CRM лиды за последний квартал и посчитайте две вещи: сколько карточек без сути задачи и сколько дублей по телефону. Обе цифры считаются за полчаса в Excel, и обе обычно неприятно удивляют.</p>
    <p>Дальше — навести порядок в полях и правилах распределения, и только потом ставить агента. Как выглядят собранные контуры целиком, показываю в <a href="https://friendlyai.ru/cases.html">кейсах</a>. Хотите оценку по своей воронке — приносите процесс на <a href="https://friendlyai.ru/audit.html">AI-аудит</a>: посмотрим, где теряются заявки, и скажем, что даст эффект первым.</p>]]></content:encoded>
    </item>
    <item>
      <title>Голосовой ИИ на первой линии: где работает, где мешает</title>
      <link>https://friendlyai.ru/news/articles/voice-ai-first-line.html</link>
      <guid isPermaLink="true">https://friendlyai.ru/news/articles/voice-ai-first-line.html</guid>
      <pubDate>Thu, 08 Jan 2026 09:00:00 +0500</pubDate>
      <author>bimaip@yandex.ru (FriendlyAI)</author>
      <description>Когда голосовой робот реально помогает, что ломает распознавание речи, как передавать звонок человеку и по каким метрикам понять, что он не бесит клиентов.</description>
      <enclosure url="https://friendlyai.ru/assets/og-cover.png" type="image/png" length="0"/>
      <content:encoded><![CDATA[<p>В переписке пауза в три секунды не значит ничего. В телефонном разговоре полторы секунды тишины — это уже «алло? вы меня слышите?». Человек на том конце не знает, что робот думает; он решает, что связь оборвалась, и начинает говорить поверх. Дальше разговор рассыпается.</p>
    <p>С этого стоит начинать любой разговор про голосового ИИ. Не с того, «умеет ли он понимать речь» — умеет, и неплохо. А с того, что в голосе нет права на паузу, на переспрос и на второй заход. Текстовый бот, который ошибся, стоит переписки. Голосовой, который ошибся, стоит испорченного разговора и иногда клиента.</p>
    <h2>Где голос действительно к месту</h2>
    <p>Работающий признак один: разговор короткий, предсказуемый и с понятным исходом. Как только сценарий ветвится больше чем на три-четыре развилки, дешевле и приятнее человек.</p>
    <div class="table-wrap"><table><thead><tr><th>Сценарий</th><th>Голос</th><th>Почему</th></tr></thead><tbody><tr><td>Подтверждение записи или доставки</td><td>да</td><td>два варианта ответа, звонок 25 секунд</td></tr><tr><td>Напоминание о визите, оплате, сроке</td><td>да</td><td>исходящий, текст известен заранее</td></tr><tr><td>Приём заявки в нерабочее время</td><td>да</td><td>задача — зафиксировать и перезвонить, а не решить</td></tr><tr><td>Статус заказа по номеру</td><td>да</td><td>ответ берётся из системы, разговор короткий</td></tr><tr><td>Актуализация базы («вы ещё работаете по этому адресу?»)</td><td>да</td><td>массовый обзвон с двумя-тремя вопросами</td></tr><tr><td>Первичная консультация по услуге</td><td>скорее нет</td><td>вопросов больше, чем ответов, человек хочет диалога</td></tr><tr><td>Рекламация, брак, возврат денег</td><td>нет</td><td>клиент уже раздражён, робот усилит</td></tr><tr><td>Продажа сложной услуги</td><td>нет</td><td>нужны вопросы, которых нет в сценарии</td></tr><tr><td>Техподдержка с диагностикой</td><td>нет</td><td>ветвление уходит в бесконечность</td></tr></tbody></table></div>
    <p>Отдельная категория, которую часто путают с первой линией: секретарь. Разобрать, кто звонит, и перевести на нужного человека — задача голосу по силам, и там он окупается быстрее всего в компаниях, где на общий номер валится всё подряд.</p>
    <h2>Куда уходит время в звонке</h2>
    <p>Голосовой контур — это цепочка: телефония → распознавание речи → логика диалога и модель → синтез речи → обратно в трубку. Каждое звено тратит миллисекунды, и суммарный бюджет надо держать в пределах секунды-полутора.</p>
    <p>Ориентиры, из которых складывается задержка: телефонный тракт 100-200 мс, распознавание при потоковом режиме 300-500 мс после конца фразы, ответ модели 400-800 мс, синтез 200-400 мс. Сложите — уже на грани.</p>
    <p>Что помогает уложиться:</p>
    <ul><li><strong>потоковое распознавание.</strong> Текст расшифровывается по ходу фразы, а не после её конца. Разница между «стримингом» и «дождались тишины и отправили файл» — примерно секунда, и она решает;</li><li><strong>заранее записанные реплики.</strong> Приветствие, «секунду, проверяю», «спасибо, записал» — не гонять через синтез каждый раз. Заодно они звучат живее;</li><li><strong>короткие фразы.</strong> Робот, который говорит абзацами, воспринимается как автоответчик. Одна мысль — одна реплика;</li><li><strong>перебивание.</strong> Человек должен иметь возможность оборвать робота на полуслове, и робот обязан замолчать. Без этого разговор превращается в борьбу.</li></ul>
    <p>Своего движка распознавания и синтеза у нас нет — собираем на внешних, а своя часть это логика диалога, интеграции и правила передачи человеку. Так честнее и дешевле: рынок этих движков меняется каждые полгода.</p>
    <h2>Что ломает распознавание</h2>
    <p>Списки «точность 95%» относятся к чистой студийной речи. Реальный звонок выглядит иначе.</p>
    <p><strong>Имена, фамилии, адреса.</strong> «Улица Тукая» превращается в «туская», «Гульнара» — в что угодно. Диктовка почты голосом — отдельный вид мучения. Решение простое: не спрашивать голосом то, что можно не спрашивать. Адрес и почту отправляем ссылкой в SMS, имя подтягиваем из CRM по номеру телефона.</p>
    <p><strong>Цифры и артикулы.</strong> Номер заказа, серия документа, код детали. Подтверждать по одной цифре и повторять услышанное целиком: «записал двести сорок семь, верно?».</p>
    <p><strong>Шум.</strong> Цех, улица, автомобиль с громкой связью, работающий телевизор, ребёнок рядом. Тут не спасает ничего, кроме честного правила: два непонятых подряд ответа — перевод на человека, а не третья попытка.</p>
    <p><strong>Речь живого человека.</strong> Люди не говорят готовыми фразами. «Ну это, мне бы... да, наверное, в четверг, хотя нет, лучше в пятницу». Сценарий, написанный из головы, такие ответы не переваривает. Первые сто разговоров надо слушать ушами — именно там находится то, чего не придумаешь за столом.</p>
    <h2>Передача человеку: правила без исключений</h2>
    <p>Место, где голосовые роботы зарабатывают свою плохую репутацию. Робот, который не отдаёт клиента, злит сильнее, чем полное отсутствие ответа.</p>
    <ol><li>Слова «оператор», «человек», «менеджер», «живой» в любой момент разговора — мгновенный перевод. Не в конце меню, не после уточняющего вопроса.</li><li>Второй подряд ответ «не расслышал» — перевод.</li><li>Темы-стопы: рекламация, брак, возврат денег, любая жалоба. Сразу человеку, без попытки уточнить.</li><li>Эмоция в голосе (повышенный тон, мат) — перевод плюс алерт руководителю.</li><li>Молчание в трубке дольше пяти секунд дважды — робот прощается и оставляет заявку на перезвон, а не мучает вопросами.</li></ol>
    <p>Перевод должен быть тёплым. Оператор поднимает трубку и уже видит на экране: кто звонит, о чём говорили, что робот успел записать. Холодный перевод, когда человек рассказывает всё заново, обесценивает всю затею — клиент считает, что его прогнали через робота зря.</p>
    <p>Если операторов сейчас нет (ночь, выходной), робот честно говорит об этом, называет конкретное время ответа и фиксирует заявку. Не «мы свяжемся с вами в ближайшее время», а «менеджер перезвонит завтра до 12:00».</p>
    <h2>Закон и вежливость</h2>
    <p>Три вещи, которые надо решить до запуска, желательно со своим юристом.</p>
    <p><strong>Робот обязан представиться роботом.</strong> В первые секунды, без вариантов. Человек всё равно поймёт через три реплики — по скорости ответа, по идеальной дикции, по тому, что «Ирина» бодра в три часа ночи. Обманутый собеседник злится уже не на робота, а на компанию.</p>
    <p><strong>Запись разговора — с уведомлением.</strong> Фраза про запись звучит в начале, записи хранятся ограниченный срок и лежат там, где к ним нет доступа у всех подряд. Это персональные данные со всеми вытекающими.</p>
    <p><strong>Исходящая реклама — только с согласия.</strong> Закон о рекламе прямо требует предварительного согласия абонента на рекламные звонки и сообщения. Обзвон собственной базы с сервисной информацией (напоминание о визите, статус заказа) и рекламный обзвон холодной базы — юридически разные вещи, и вторая без согласия заканчивается штрафом. Время звонков тоже стоит ограничить руками: робот не должен звонить в 21:30, даже если технически может.</p>
    <h2>Что мерить</h2>
    <div class="table-wrap"><table><thead><tr><th>Метрика</th><th>Что показывает</th><th>Ориентир</th></tr></thead><tbody><tr><td>Доля звонков, закрытых без человека</td><td>реальная польза</td><td>50-70% на простых сценариях</td></tr><tr><td>Запрос оператора в первые 20 секунд</td><td>сценарий не туда</td><td>больше 25% — переделывать</td></tr><tr><td>Повторный звонок в течение суток</td><td>робот не помог</td><td>главная тревожная цифра</td></tr><tr><td>Средняя длительность</td><td>не затягивает ли</td><td>подтверждение — до 40 секунд</td></tr><tr><td>Доля неразобранных фраз</td><td>качество распознавания</td><td>смотреть в разрезе сценариев</td></tr><tr><td>Брошенные на первой фразе</td><td>людей отталкивает приветствие</td><td>больше 15% — переписать первые слова</td></tr></tbody></table></div>
    <p>Третья строка — та, ради которой всё считается. Формально закрытый звонок, после которого человек перезванивает и требует оператора, это не экономия, а перекладывание работы с ночи на утро.</p>
    <h2>Провал: «да, но давайте в четверг»</h2>
    <p>Мы тестировали робота на подтверждении встреч. Сценарий выглядел безупречно: здравствуйте, у вас назначено на вторник в 14:00, подтверждаете? Ответ «да» — спасибо. Ответ «нет» — передаю менеджеру.</p>
    <p>Живые люди отвечали иначе. «Да, но давайте лучше в четверг». «Подтверждаю, только я подъеду попозже». «А можно перенести?» Робот слышал слово «да» в начале фразы, радостно прощался и вешал трубку. Встречи срывались, а в системе они стояли подтверждёнными — то есть хуже, чем если бы никто не звонил вообще.</p>
    <p>Разбирали по записям, нашли за полчаса. Чинили тремя правками:</p>
    <ul><li>любое отклонение от чистого «да» или «нет» — не догадка, а перевод на человека либо ветка переноса с конкретными вариантами времени;</li><li>робот повторяет итог вслух: «записал, переносим на четверг, 14:00, верно?» — и ждёт подтверждения;</li><li>в карточку пишется расшифровка, а не только результат «подтверждено», чтобы менеджер видел настоящие слова клиента.</li></ul>
    <p>Вывод, который стоил нам десятка сорванных встреч: в голосе нельзя интерпретировать. Понял однозначно — действуй. Не понял — отдай человеку. Середины не бывает.</p>
    <h2>Где голос не работает</h2>
    <p>Не ждите экономии на маленьком объёме. Голосовой контур дороже текстового в разработке и в эксплуатации: телефония, минуты распознавания и синтеза считаются за каждый звонок. При тридцати звонках в месяц он не окупится никогда.</p>
    <p>Не работает на сложных консультациях. Если ответ на вопрос клиента занимает больше двух предложений и зависит от пяти условий, робот будет либо врать, либо бесконечно уточнять.</p>
    <p>Не заменяет колл-центр целиком. Реалистичная роль — снять с людей повторяемое: подтверждения, напоминания, статусы, приём заявок ночью. Оставшиеся разговоры станут сложнее, и операторов понадобится меньше, но не ноль.</p>
    <p>И совет, который экономит бюджет: начинать почти всегда стоит с текста. Тот же сценарий сначала обкатывается в чате, где ошибка дёшева, и лишь потом переносится в голос. Как это выглядит на входящих заявках, разбирал в статье про <a href="https://friendlyai.ru/news/articles/ii-kvalifikaciya-lidov.html">квалификацию лидов</a>.</p>
    <h2>Частые вопросы</h2>
    <p><strong>Клиенты не будут бросать трубку?</strong> Часть бросит, это нормально. Смотрите на цифру брошенных в первые пять секунд: если она выше 15%, проблема в приветствии — оно длинное или звучит как реклама. Короткое честное представление работает лучше вежливых оборотов.</p>
    <p><strong>Робот отличим от человека?</strong> Отличим, и не надо с этим бороться. Синтез стал хорош, но паузы, интонация и реакция на неожиданное всё равно выдают. Выигрывает не тот, кто притворяется, а тот, кто быстро отвечает и не морочит голову.</p>
    <p><strong>Можно ли обзвонить холодную базу?</strong> Технически да, юридически — нужно предварительное согласие абонента на рекламные звонки. Без него это прямой путь к жалобам и штрафу. Сервисные звонки своим клиентам — другая история.</p>
    <p><strong>Что с записями разговоров?</strong> Их стоит разбирать: ИИ проходит по чек-листу, отмечает соблюдение скрипта, зафиксированные обещания и следующий шаг, руководитель получает дайджест вместо часов прослушивания. Это отдельный сценарий, который часто полезнее самого робота.</p>
    <p><strong>Сколько занимает запуск?</strong> Простой сценарий на два-три вопроса — две-три недели вместе с телефонией. Дальше месяц доводки по записям живых разговоров, и он обязателен: без него робот останется таким, каким его придумали за столом.</p>
    <h2>С чего начать</h2>
    <p>Возьмите свою телефонию и посчитайте за месяц: сколько звонков пришлось на один-два типовых вопроса, сколько пропущено вне рабочего времени, сколько минут в сумме занимают подтверждения и напоминания. Три цифры за час работы.</p>
    <p>Если типовых звонков больше трети — сценарий для голоса у вас есть. Начните с одного, самого скучного: подтверждения или напоминания. Примеры собранных контуров лежат в <a href="https://friendlyai.ru/cases.html">кейсах</a>, а разбор вашего потока звонков с оценкой эффекта — это <a href="https://friendlyai.ru/audit.html">AI-аудит</a>. Скажем честно, если в вашем случае голос не нужен и хватит текстового бота: так бывает чаще, чем хотелось бы продавцам голосовых роботов.</p>]]></content:encoded>
    </item>
    <item>
      <title>n8n + ИИ + CRM: контур, который переживёт ночное падение</title>
      <link>https://friendlyai.ru/news/articles/n8n-ai-crm-workflow.html</link>
      <guid isPermaLink="true">https://friendlyai.ru/news/articles/n8n-ai-crm-workflow.html</guid>
      <pubDate>Mon, 05 Jan 2026 09:00:00 +0500</pubDate>
      <author>bimaip@yandex.ru (FriendlyAI)</author>
      <description>Надёжность связки n8n, ИИ и CRM: очередь вместо прямого прохода, ретраи без дублей, идемпотентность, логи и алерты, инструкция на случай ночного падения.</description>
      <enclosure url="https://friendlyai.ru/assets/og-cover.png" type="image/png" length="0"/>
      <content:encoded><![CDATA[<p>В субботу утром клиент написал в личку: «я вам в четверг заявку оставлял, никто не ответил». Полезли смотреть. Контур не падал. В журнале выполнений ни одной ошибки, графики ровные, алертов не было. Просто за двое суток не случилось ни одного запуска: маркетолог обновил форму на сайте, и данные полетели на старый адрес вебхука.</p>
    <p>Отсюда главная мысль этой статьи. Надёжность автоматизации — это не «нет ошибок». Ноль ошибок за сутки прекрасно сочетается с нулём обработанных заявок, и второе вы заметите последним.</p>
    <p>Как собирается базовая цепочка «форма → ИИ → CRM → уведомление», я разбирал в статье про <a href="https://friendlyai.ru/news/articles/n8n-pervyy-scenariy.html">первый сценарий в n8n</a>. Здесь — про то, что превращает такую цепочку в контур, которому можно доверить входящий поток компании.</p>
    <h2>Четыре требования вместо слова «стабильно»</h2>
    <p>Договоритесь с собой (и с заказчиком) о том, что именно вы обещаете. Формулировки должны быть проверяемыми.</p>
    <div class="table-wrap"><table><thead><tr><th>Требование</th><th>Как проверяется</th></tr></thead><tbody><tr><td>Ни одна заявка не теряется, даже если CRM или модель лежат</td><td>отключить CRM на 10 минут и отправить 5 тестовых заявок</td></tr><tr><td>Ни одна заявка не задваивается при повторах</td><td>отправить одну и ту же форму трижды подряд</td></tr><tr><td>О сбое узнаём за 5 минут, о тишине — за 60</td><td>сломать токен CRM намеренно и засечь время до сообщения</td></tr><tr><td>Восстановление делает дежурный, а не автор сценария</td><td>дать инструкцию коллеге и попросить починить учебную аварию</td></tr></tbody></table></div>
    <p>Последняя строка — самая недооценённая. Контур, который умеет чинить только тот, кто его писал, ненадёжен по определению: человек болеет, увольняется и уезжает в отпуск в самый неподходящий момент.</p>
    <h2>Разделите приём и обработку</h2>
    <p>Типовая ошибка — делать всё одной длинной цепочкой: вебхук принял, модель разобрала, CRM записала, чат уведомил. Пока все звенья живы, работает красиво. Стоит упасть третьему звену, и заявка, которая уже пришла, исчезает вместе с ней.</p>
    <p>Рабочая схема — две части.</p>
    <p><strong>Приём.</strong> Вебхук делает минимум: проверяет секретный заголовок, кладёт сырое тело запроса в хранилище (таблица в PostgreSQL, отдельная база, на худой конец Google-таблица) со статусом <code>new</code> и сразу отвечает сайту <code>200 OK</code>. Занимает миллисекунды, падать тут нечему.</p>
    <p><strong>Обработка.</strong> Отдельный сценарий раз в минуту берёт записи со статусом <code>new</code>, гоняет их через модель и CRM, меняет статус на <code>done</code> или <code>failed</code>. Упала модель — запись осталась в очереди и будет обработана, когда всё поднимется.</p>
    <p>Разделение даёт ещё один бонус: посетитель сайта не ждёт, пока отработает вся цепочка. Форма отвечает мгновенно, а не через три-пять секунд, которые уходят на вызов модели.</p>
    <h2>Ретраи: не все ошибки одинаково полезны</h2>
    <p>Повторять вслепую — верный способ получить двести карточек в CRM вместо сорока. Ошибки надо различать.</p>
    <div class="table-wrap"><table><thead><tr><th>Что вернул сервис</th><th>Что делать</th><th>Сколько раз</th></tr></thead><tbody><tr><td>Таймаут, обрыв соединения</td><td>повторить с паузой 5, 30, 120 секунд</td><td>3</td></tr><tr><td>500, 502, 503 (сервис лежит)</td><td>повторить с той же лесенкой</td><td>3</td></tr><tr><td>429 (превышен лимит)</td><td>ждать указанное время, потом повтор</td><td>3</td></tr><tr><td>401, 403 (протух токен)</td><td>не повторять, алерт немедленно</td><td>0</td></tr><tr><td>400, 422 (кривые данные)</td><td>не повторять, в очередь ручного разбора</td><td>0</td></tr><tr><td>Модель вернула не JSON</td><td>одна попытка с упрощённым промптом, дальше — флаг «разобрать руками»</td><td>1</td></tr></tbody></table></div>
    <p>Строки с нулём — принципиальные. Повторять запрос, который отвергнут из-за неверных данных, бессмысленно: он будет отвергнут и на сотый раз, а лог засорится так, что настоящую аварию в нём не найти.</p>
    <p>После исчерпания попыток запись уходит в отдельную очередь — по-взрослому это называется dead letter. Не удаляется, не теряется, ждёт человека. Раз в сутки её содержимое приходит списком в чат: «5 заявок не обработаны, причины такие-то».</p>
    <h2>Идемпотентность в пять строк</h2>
    <p>Ключевая защита от дублей: перед действием проверяем, не делали ли мы его уже. Ключ считается из содержимого заявки.</p>
    <pre><code class="language-javascript">// Code-нода: ключ идемпотентности
const crypto = require(&#x27;crypto&#x27;);
const phone = ($json.phone || &#x27;&#x27;).replace(/\D/g, &#x27;&#x27;).replace(/^8/, &#x27;7&#x27;);
const raw = phone + &#x27;|&#x27; + ($json.text || &#x27;&#x27;).slice(0, 100) + &#x27;|&#x27; + new Date().toISOString().slice(0, 10);
return [{ json: { ...$json, phone, idem_key: crypto.createHash(&#x27;sha1&#x27;).update(raw).digest(&#x27;hex&#x27;) } }];</code></pre>
    <p>Дальше ключ пишется в таблицу обработанных со сроком хранения семь дней и в отдельное поле карточки CRM. Повтор с тем же ключом просто игнорируется. Телефон заодно нормализуется — восьмёрка меняется на семёрку, мусор вычищается, иначе один и тот же человек заведётся трижды. Подробнее про дубли и поля на стороне CRM — в разборе про <a href="https://friendlyai.ru/news/articles/ai-sales-crm.html">ИИ и CRM</a>.</p>
    <h2>Логи, по которым разбор занимает минуты</h2>
    <p>Журнал выполнений n8n показывает, что происходило, но искать в нём конкретную заявку неудобно. Заведите собственную таблицу событий, по строке на шаг:</p>
    <p><code>время | id заявки | шаг | статус | длительность мс | текст ошибки | попытка №</code></p>
    <p>Три причины, почему это окупается на первой же аварии. Во-первых, поиск по телефону клиента находит всю его историю за секунду. Во-вторых, видно, какой шаг тормозит: обычно это вызов модели, и цифры позволяют спорить предметно. В-третьих, история выполнений в самом n8n чистится (и должна чиститься — база пухнет и валит сервис), а ваша таблица остаётся.</p>
    <p>Хранить содержимое заявок в логах стоит осторожно: там персональные данные. Телефон в логе полезно маскировать до последних четырёх цифр, полный текст держать в защищённом хранилище с ограниченным сроком.</p>
    <h2>Алерты: ошибки и тишина</h2>
    <p>Два типа сигналов, и второй важнее.</p>
    <p><strong>По ошибке.</strong> У каждого рабочего сценария подключён Error Workflow: упало — в чат летит сообщение с названием сценария, шагом и текстом ошибки. Не «произошла ошибка», а конкретика, по которой понятно, звать разработчика или это протух токен.</p>
    <p><strong>По тишине.</strong> Отдельный сценарий-сторож раз в час считает: сколько заявок принято, сколько обработано, сколько в очереди. Если в рабочее время за час ноль принятых при обычных пяти-десяти — сообщение в чат. Ровно этот сторож поймал бы историю со сломанной формой из первого абзаца за час, а не за двое суток.</p>
    <p>Пороги стоит настроить в обе стороны. Резкий скачок — тоже авария: тридцать созданных лидов за час на фоне обычных пяти означает либо повторы, либо чужой сканер долбится в ваш вебхук.</p>
    <p>И ежедневная сводка в 9:00: принято, обработано, ошибок, в ручной очереди, среднее время обработки. Пять строк, которые читаются за десять секунд и дают ощущение контроля.</p>
    <h2>Когда упало ночью</h2>
    <p>Инструкция должна лежать в чате отдела закреплённым сообщением, а не в голове у автора.</p>
    <pre><code>ЧТО ДЕЛАТЬ, ЕСЛИ ПРИШЁЛ АЛЕРТ

1. Открыть таблицу очереди. Записи со статусом new не пропали?
   Есть — заявки в безопасности, паниковать не нужно.
2. Посмотреть текст ошибки в сообщении:
   - &quot;401/403&quot; -&gt; протух токен CRM. Перевыпустить в Credentials, включить повтор очереди.
   - &quot;429&quot; -&gt; лимит API. Ничего не делать, разгребётся само за час.
   - &quot;ECONNREFUSED/таймаут&quot; -&gt; сервис недоступен. Проверить, открывается ли CRM в браузере.
   - &quot;не JSON&quot; -&gt; модель вернула мусор. Заявки в ручной очереди, разобрать утром.
3. Если очередь пустая, а заявки не идут -&gt; проблема на входе.
   Отправить тестовую заявку с сайта, проверить адрес вебхука.
4. Ничего не понятно -&gt; написать в чат, заявки не теряются, ждут в очереди.
   НЕ перезапускать сценарий пачкой: получите дубли.</code></pre>
    <p>Последняя строка написана кровью. Дежурный, который в панике жмёт «повторить всё» пять раз подряд, вредит сильнее самой аварии.</p>
    <h2>Версии, бэкапы и правка на живом</h2>
    <p><strong>Сценарии — в git.</strong> n8n умеет отдавать процесс в JSON. Экспорт раз в сутки в репозиторий даёт то, чего в интерфейсе нет: историю изменений и ответ на вопрос «что мы правили перед тем, как всё сломалось».</p>
    <p><strong>Секреты — в Credentials, а не в полях нод.</strong> Тогда экспортированный JSON можно спокойно отдать коллеге и положить в репозиторий.</p>
    <p><strong>Копия для отладки.</strong> Правка боевого процесса на живом потоке — это лотерея, где приз в лучшем случае «никто не заметил». Держите дубль сценария и тестовый чат для уведомлений.</p>
    <p><strong>Бэкап базы n8n.</strong> В ней живут сами сценарии. Потеряли том — потеряли работу, восстановить из головы не получится. Проверьте бэкап реальным восстановлением хотя бы раз: половина бэкапов, о которых все знают, никогда не разворачивались.</p>
    <h2>Разбор: как мы поймали тихую потерю заявок</h2>
    <p>История, с которой началась статья, закончилась не только починкой адреса вебхука. Мы полезли смотреть, что ещё может отвалиться молча, и нашли три места.</p>
    <p>Первое: интеграционный вебхук в CRM был выпущен от имени сотрудника. Человек ушёл в другой отдел, права поменялись — запись в CRM перестала работать бы точно так же тихо. Заменили на технического пользователя.</p>
    <p>Второе: модель иногда отвечала дольше тридцати секунд, нода отваливалась по таймауту, а заявка при старой схеме исчезала. После разделения на приём и обработку такие случаи просто остаются в очереди.</p>
    <p>Третье: у нас на одном из серверов исходящие запросы к api.telegram.org резались провайдером, и уведомления не уходили. В интерфейсе это выглядело как «иногда не работает». Диагностика заняла в разы больше времени, чем сама починка через релей.</p>
    <p>Итог: сторож на тишину, технический пользователь, очередь и honest-логи. Полтора дня работы, после которых по этому контуру не было ни одного разговора «а где заявка».</p>
    <h2>Чего от такого контура ждать не надо</h2>
    <p>Он не заменяет очередь сообщений на серьёзных объёмах. Десятки тысяч событий в час — это уже не про n8n, там нужен нормальный брокер и сервис на коде. Наша граница проходит примерно там, где схема перестаёт помещаться на экран: связывание сервисов остаётся в n8n, расчёты и тяжёлая логика уезжают в отдельный сервис на Python, который n8n дёргает как обычный HTTP-эндпоинт.</p>
    <p>Он не даёт транзакций между системами. Если запись в CRM прошла, а уведомление не ушло, откатить первое нельзя — можно только заметить и дослать. Отсюда правило: сначала делаем то, что дороже потерять.</p>
    <p>Он не спасает от чужих сбоев, только смягчает их. CRM лежит два часа — заявки будут ждать в очереди, но менеджеры за эти два часа никому не перезвонят.</p>
    <p>И он не бесплатный в поддержке. Час-два в месяц уходит стабильно: обновить n8n, посмотреть на ошибки в ручной очереди, проверить бэкап. Автоматизация без присмотра деградирует тихо и незаметно — ровно как в истории с формой.</p>
    <h2>Частые вопросы</h2>
    <p><strong>Сколько нод занимает такой надёжный контур?</strong> Приём — три-четыре ноды, обработка — восемь-двенадцать вместе с проверками, сторож и Error Workflow — по три. Итого около двадцати вместо шести в учебном примере. Разница и есть цена надёжности.</p>
    <p><strong>Где хранить очередь, если нет своей базы?</strong> Начать можно с таблицы в Google Sheets или в самой CRM отдельной сущностью. На потоке до сотни заявок в сутки хватает. Дальше PostgreSQL, он всё равно понадобится под логи.</p>
    <p><strong>Как тестировать, не трогая боевую CRM?</strong> Завести тестовую воронку и отдельный чат для уведомлений, а в сценарии — переключатель окружения. Двадцать старых заявок, прогнанных через тест, ловят почти все ошибки разбора.</p>
    <p><strong>Кто должен дежурить по контуру?</strong> Обычно тот же человек, кто отвечает за CRM. Разработчик нужен на настоящие поломки, а девяносто процентов алертов — это протухший токен или упавший чужой сервис.</p>
    <p><strong>Что делать, если сценарии писал подрядчик и уехал?</strong> Первым делом забрать экспорт всех процессов в JSON, доступы к серверу и список Credentials. Без этого вы владеете не автоматизацией, а зависимостью от чужого телефона.</p>
    <h2>Что сделать в ближайший вторник</h2>
    <p>Возьмите свой боевой сценарий и проведите учебную аварию: отключите токен CRM и отправьте три тестовые заявки. Засеките, сколько прошло времени до того, как кто-то живой узнал о проблеме, и найдите потом эти три заявки. Если нашлись все три, а сообщение пришло за минуты — контур в порядке. Если хоть одна пропала — начинайте с очереди на приёме.</p>
    <p>Как выглядят собранные контуры с очередью, сторожем и логами, показываю в <a href="https://friendlyai.ru/cases.html">кейсах</a>. Хотите, чтобы кто-то посмотрел на вашу автоматизацию со стороны и назвал места, где она молча теряет заявки, — это <a href="https://friendlyai.ru/audit.html">AI-аудит</a>: разберём схему, проверим слабые звенья и скажем, что чинить первым.</p>]]></content:encoded>
    </item>
  </channel>
</rss>
