Задание: Боты с AI. Backend-разработчик для Telegram-бота на базе Gemini 1.5 Pro API (Бизнес-логика + Генерация CSV) (Дистанционная работа)
1. ОПИСАНИЕ ПРОЕКТА
Требуется разработать внутреннего закрытого Telegram-бота для отдела продаж.
Бот принимает от менеджера сырую текстовую заявку (спецификацию на материалы), отправляет ее в официальное API Google Gemini 1.5 Pro, сопровождая скрытым системным промптом (~3000 слов со сложной коммерческой логикой и прайсами).
На выходе бот должен вести уточняющий диалог с менеджером (если данных не хватает) и в финале выдавать строго отформатированный файл .csv с готовым расчетом для импорта в Excel/ERP.
2. КРИТИЧЕСКИЕ ТЕХНИЧЕСКИЕ ТРЕБОВАНИЯ (MUST HAVE)
Прямое API Google: Исключительно прямое подключение к официальному API Gemini 1.5 Pro. Категорически запрещено использование сторонних сервисов-посредников, агрегаторов API или неофициальных библиотек-прокладок.
Инфраструктура: Развертывание на зарубежном VPS (предоставим мы) или настройка надежного проксирования для обхода региональных блокировок Google API.
Стек: Python (aiogram 3.x) или Node.js (Telegraf). База данных — PostgreSQL или SQLite (для хранения контекста сессий и самого системного промпта).
3. ОСНОВНОЙ ФУНКЦИОНАЛ БОТА
Управление контекстом (Memory/Session): Логика системного промпта подразумевает выдачу «СТОП-СИГНАЛОВ» (например, ИИ останавливает расчет и просит менеджера указать цену нестандартной детали). Бот обязан сохранять историю переписки (context window) в рамках одной сессии расчета, чтобы не сбрасывать данные при каждом ответе пользователя.
Интеллектуальный парсинг ответа (Роутинг): Бот должен программно понимать, что именно ответила нейросеть:
Если ИИ задает уточняющий вопрос (текст) — бот пересылает его в чат обычным сообщением.
Если ИИ выдает финальную таблицу (данные с разделителями) — бот обязан перехватить ее, очистить от текстового мусора/маркдауна нейросети, программно сгенерировать файл .csv и отправить пользователю в виде скачиваемого документа. Запрещено вываливать сырую таблицу с разделителями текстом в чат.
Администрирование: Текст системного промпта должен храниться в БД. У администратора (владельца) должна быть возможность обновлять текст системного промпта без вмешательства в исходный код бота.
4. БЕЗОПАСНОСТЬ И ЗАЩИТА АЛГОРИТМА (КРИТИЧНО)
Защита от Prompt Injection. Требуется реализовать надежную защиту (на уровне API System Instructions или pre-prompting).
Доступ: Бот должен быть закрытым (White-list ID пользователей в БД).
5. ФОРМАТ ВЫХОДНЫХ ДАННЫХ (CSV)
Финальный файл должен формироваться в кодировке UTF-8 с разделителем ;.
Таблица состоит строго из 27 столбцов:
№ п/п; Наименование; Кол-во, ед.; Высота, мм; Ширина ; Размер раб. створки, мм.; Открывание; Металл, мм.; Порог; Окрас; Наличник; Доводчик; Комплектация; Маркировка; Монтаж; Итоговая стоимость; Стоимость ; Остекление; Доводчик; Антипаника; Порог; Наценка за металл; Вент. решетки; Замки и ручки; Отбойники; Доп. решения; Иное.