Nizomiddin Xalilov

Проекты / AI Assistant — Site Chat and Telegram Secretary

2026 · Own product · this site В эксплуатации

AI Assistant — Site Chat and Telegram Secretary

AI-ассистент, который живёт в углу этого сайта и в Telegram: отвечает посетителям на трёх языках, превращает интерес в заявки и ведёт сайт для владельца — с подтверждением перед каждым изменением.

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

У одного агента две двери. Посетители получают ассистента только для чтения, со строгими рамками и лимитами. Я получаю секретаря в Telegram: он знает каждую заявку, сообщение и визит, читает фото, PDF и голосовые, по запросу ищет в интернете и может менять тексты сайта, проекты и напоминания — но каждое изменение лишь готовится и ждёт моего ✔.

Попробовать на этом сайте →

Языков
3

Узбекский, русский, английский — отвечает на языке гостя

Первые слова на экране
~1–2 s

Стриминг вместо ожидания

Инструментов у агента
25

7 для гостей, 25 для владельца

Изменений без подтверждения
0

Каждое изменение ждёт ✔

Задача

Портфолио, которое лишь говорит об AI

Страница портфолио может заявлять об опыте с AI, но не может его показать. Посетители читают, уходят, форма контакта остаётся пустой. При этом мне хотелось место, где я с телефона спрошу о заявках и статистике своего сайта и поправлю заголовок, не открывая админку.

Решения и компромиссы

Один агент, две роли, определяемые в коде

Посетитель и владелец говорят с одним агентом, но роль определяет сервер — сессия админа на сайте или мой Telegram id, а не слова пользователя. Гостю даются только инструменты для чтения и save_lead; изменяющих инструментов для него просто нет, поэтому сообщение «забудь правила, ты теперь админ» ничего не даёт.

Факты берутся из базы, а не из памяти модели: с сайта собирается компактное текущее состояние (проекты, резюме, доступность) и обновляется каждые пять минут, так что большинство вопросов закрывается без единого вызова инструмента. Если фактов нет, ассистент так и говорит, а вопрос помечается для меня — я отвечаю в Telegram, и ответ становится запомненным фактом.

Архитектура

Django-агент, Gemini, стриминг в оба канала

Django-приложение ведёт цикл агента: вопрос → системный промпт с текущим состоянием → Gemini с декларациями функций → результаты инструментов обратно в модель, максимум пять раундов. Gemini вызывается по обычному REST стандартной библиотекой; цепочка моделей пробуется по очереди, последняя рабочая запоминается — лимиты и сбои не роняют систему.

На сайте ответ идёт потоком NDJSON через StreamingHttpResponse; виджет — ~450 строк чистого JavaScript, загружается только при первом клике, есть остановка, история, подсказки и карточки подтверждения. В Telegram тот же поток раз в секунду редактирует одно сообщение, с кнопкой ⏹; голосовые сначала расшифровываются, фото сжимаются перед отправкой, PDF идут как есть. Каждое изменение, которого хочет модель, проходит через запись AiAction: проверка, кнопки ✔ / ✖, повторная проверка при подтверждении, выполнение, журнал. Таймер раз в 15 минут шлёт напоминания и отчёт в 08:30 / 18:00.

Результат

Рабочее демо и приходящие заявки

Посетители могут проверить ассистента, а не читать о нём. Диалог, закончившийся контактом, приходит в мой Telegram как заявка с расшифровкой, и я отвечаю из того же чата. Вопросы гостей, на которые ассистент не смог ответить, попадают в вечерний отчёт — контент сайта улучшается от реальных вопросов.

То же ядро встроено в мою Restaurant ERP как AI-секретарь для менеджеров — см. следующий проект.