Александр Вахтин › avvahtin Сбер ID
AI-агенты, данные и веб-сервисы на Python: от идеи до продакшена
Рейтинг
217
№ 5 920 в каталоге
Отзывы
0
Профессионализм
-/10
Коммуникация
- /10
Город
Москва
Опыт работы
8 лет
На сайте с
2026 года
Юридический статус
ИП

AI-агент отбора заявок: оценка 0–100 на локальной LLM

Используемые навыки React.js Автономный ИИ Генерация лидов Разработка полного стека Сбор данных

Описание

Собственная разработка, выросшая из личной задачи. На площадках с заказами заявки появляются непрерывно и живут несколько часов, поэтому подходящую важно заметить вовремя.

Ручной разбор такого потока устроен абсурдно. Большая часть заявок отсеивается за пять секунд: не тот профиль, несерьёзный бюджет, размытая задача. Но чтобы это понять, каждую всё равно надо открыть и прочитать. Внимание уходит на мусор, а на подходящие заявки, ради которых всё и затевалось, его уже не остаётся.

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

Задача: снять с человека сбор, отсев и первичную оценку, оставив ему решение — отвечать или нет.

Ограничения, которые определили архитектуру:
— тексты заявок и переписка не должны уходить во внешние облачные нейросети, поэтому модель работает локально, на своей машине;
— оценка обязана объясняться: балл без причины ничего не стоит, ему не поверят;
— автоматика не отправляет ничего от имени человека без его ведома;
— площадки отдают контент динамически, обычный HTTP-запрос там бесполезен.

Решение

Спроектировал и написал систему целиком, один: серверную часть, фоновые задачи, промпты, интерфейс и развёртывание.

Конвейер фоновых задач: сбор, отсев, оценка, черновик отклика, отправка, диалог и отдельный наблюдатель за сделками. Задачи разнесены по пяти очередям Celery, чтобы медленный вызов модели не задерживал обход площадки. Обход идёт по расписанию раз в 5 минут, до 50 заявок за проход, уже виденные отсекаются.

Сбор через Playwright. Headless-браузер входит в аккаунт, читает ленту заявок и разбирает бюджет — почасовой или фиксированный. Площадка подключается адаптером с общим интерфейсом: войти, получить заявки, отправить отклик, прочитать и написать сообщение. Ядро о конкретной площадке ничего не знает.

Четыре роли языковой модели, у каждой свой промпт и свой формат ответа:
— фильтр отсекает неподходящее по ключевым словам, бюджету, ясности задачи и рискам, помечает категорию и флаги рисков;
— оценщик ставит балл 0–100 по шести критериям с весами: бюджет, ясность задачи, качество заказчика и соответствие профилю — по 20 баллов, конкуренция и срочность — по 10. По тем же границам выставляется стадия: холодная до 40, тёплая до 70, горячая до 90, выше — квалифицированная;
— автор отклика пишет персональный текст под конкретную задачу по заданной структуре, а не подставляет шаблон;
— диалоговый агент ведёт переписку и признаёт сделку квалифицированной, только когда подтверждены все пять сигналов: бюджет, объём, сроки, лицо, принимающее решение, и готовность начать.

Локальная модель: Llama 3.2 через Ollama на своей машине, поднимается вместе с остальными сервисами. Ни одного обращения к облачным нейросетям.

Ответ модели — строгий JSON. Разбор страхует от типичного мусора вокруг структуры: обёрток разметки и лишнего текста. Для структурированных ответов температура понижена, чтобы одна и та же заявка получала близкий балл.

Журнал каждого вызова: промпт, ответ, модель, токены на входе и выходе, время выполнения — в отдельной таблице и в API. Если балл кажется странным, видно, на чём модель его построила.

Контроль за человеком. Три режима автономности: безопасный, с проверкой и автономный. Автоотправка возможна только в автономном, и по умолчанию автопилот выключен. Любую сделку можно поставить на паузу отдельно. Отправка при сбое повторяется трижды с нарастающей паузой: через 1, 2 и 4 минуты.

Уведомления: наблюдатель раз в 10 минут проверяет сделки и присылает в Telegram горячие от 85 баллов и квалифицированные — бюджет, балл, категория, риски, ссылка.

Панель на React и TypeScript: сводка, лента заявок с фильтрами, доска сделок по стадиям, отклики, переписка, настройки стратегии и ключевых слов.

Развёртывание: семь сервисов в Docker — база, очередь, модель, API, обработчик, планировщик, интерфейс. Запуск одним скриптом, инструкции под Linux с видеокартой, Windows и macOS на Apple Silicon.

Результат

Из потока остаётся короткий список. Сбор, отсев и оценка идут по расписанию без участия человека: неподходящее отбрасывается с причиной, остальное получает балл от 0 до 100 и стадию. Горячие заявки сами приходят в Telegram — заходить на площадку проверить, не появилось ли что-то, больше не нужно.

Оценке можно верить, потому что её можно проверить. Балл складывается из шести названных критериев, а в журнале лежит полный след: что модель получила, что ответила и за сколько. Вопрос «почему нейросеть так решила» закрывается чтением записи, а не догадками.

Данные остаются дома. Модель работает на своей машине, заявки и переписка не уходят во внешние AI-сервисы. Это снимает вопрос, который чаще всего тормозит внедрение нейросети в работу с клиентскими данными.

Последнее слово за человеком. Автономный режим есть, но по умолчанию выключен: система готовит, человек решает.

Архитектура переносится на другую задачу. Ключевые слова и бюджетные пороги задаются стратегией с историей версий, новая площадка — отдельный адаптер. Тот же конвейер «собрать → отсеять → оценить → уведомить» подходит для заявок с сайта, тендеров или резюме.

Статус — честно. Это собственный прототип, а не коммерческий продукт, подключена одна площадка. От начала до конца сейчас проходит путь «сбор → отсев → оценка → уведомление»; черновик отклика, отправка и диалог написаны как следующие звенья конвейера и находятся в доводке.

Оценили проект:

Другие проекты

Все проекты →
ИИ и Нейросети CPL −87% в баннерах СДЭК: ML- и RFM-аудитории для 8 брендов
CPL −87% в баннерах СДЭК: ML- и RFM-аудитории для 8 брендов
53
Веб-разработка и IT С n8n на свой код за 10 дней: Telegram-бот для редакции
С n8n на свой код за 10 дней: Telegram-бот для редакции
54
Веб-разработка и IT Сбор на игру в один клик: веб-сервис за месяц в одиночку
Сбор на игру в один клик: веб-сервис за месяц в одиночку
55
ИИ и Нейросети AI-агент ведёт Telegram-канал, а владелец только утверждает
AI-агент ведёт Telegram-канал, а владелец только утверждает
54