Golang, JS, Telegram API
Задача
Требуется разработать номерной телеграм бот для маркетинговых задач и набора базы данных переписок разной тематики.
Назначение
Чтение указанных групп и каналов, анализ сообщений на соответствие целевым запросам. Первичный отбор сообщений производится по ключевым словам, вторичный отбор при помощи нейронных сетей.
При нахождении целевых запросов, бот должен формулировать ответное предложение, на основе ранее заготовленного промта и пересылать данное сообщение подписчикам, включающее ссылку на целевое сообщение в группе, где оно было написано, вариант ответа и кнопки действия.
22.11.2024
2 недели
Для устойчивой работы бота аккаунты на чтение и отправку сообщений должны быть разделены. Учитывая, что боты, которые часто пишут в личку регулярно блокируются, должна быть возможность прикреплять несколько аккаунтов для ответа, чтобы в случай блокировки отправка сообщений продолжалась с резервного аккаунта.
Работа с ботом разделена на два сценария:
1. Руководитель-заказчик.
Работает с полноценным функционалом, может настраивать бот и покупать пакеты услуг.
2. Подписчик.
Получает одноразовую ссылку для регистрации, после чего получает сообщения от настроенного руководителем бота. Сам настраивать бот не имеет возможности.
Главное меню:
• Тарифы и оплата
• Аккаунты
• Чаты
• Ключевые слова
• Промт
• Диалоги
В разделе Аккаунты. Необходимо организовать работу (добавление и удаление) аккаунтов номерных телеграмм аккаунтов. Если код авторизации нового аккаунта нельзя ввести в боте, необходимо реализовать WebApp для ввода кода. Рядом со списком добавленных аккаунтов показываем кнопку «Удалить ». Все аккаунты указанные в этом разделе выполняют роль писателей сообщений лидам.
Чаты
В разделе Чаты выводим список всех чатов аккаунтов со статусом “Читатель” (со ссылкой на эти чаты как на скрине ниже). Если не было добавлено аккаунтов, то сообщаем об этом.
Добавление чатов производится в разделе меню «Чаты». Кнопка «Добавить чат», после нажатия на которой бот пишет предложение отправить ссылку на чат и при отправлении добавляется в чат.
Кнопка «Список чатов» выводит список добавленных чатов (или тех чатов, которые были в аккаунте) и кнопку удалить
Рядом с каждым чатом кнопка Удалить.
В разделе Ключевые слова. Реализовать интерфейс работы с ключевыми словами (добавление / удаление).
В разделе Диалоги.
Показываем Диалоги переписок по отправленным сообщениям (с аккаунтов “Писатель”). Показываем последнее сообщение от Клиента (обрезать, например, 300 символов и ставить “...”) и кнопка с ником Клиента или его телефоном. Клик по этой кнопке - переход в диалог.
Промт
Раздел куда вписывается промт для анализа и ответа нейрнокой.
Кнопки:
• «Показать промт»,
• «Редактировать промт для поикового запроса»,
• «Редактировать промт для ответа»
В разделе Тарифы и оплата. Напишем информацию о тарифах. Тарифы будут отличаться
- числом добавленных аккаунтов
&
- числом добавленных чатов.
Базовый тариф 10 чатов, 5 аккаунтов. Кнопка Оплатить будет вести на ссылку-эквайринг Тинькофф. Коллбэк по эквайрингу об успешной оплате продлевает действие тарифа.
Контроль оплат и выдача токенов.
Done! Congratulations on your new bot. You will find it at t.me/gate2susanin_bot.
Use this token to access the HTTP API:
7644769476:AAHcHKe71jEOlpH7swAl8IRSQOSZV2wl5Zk
Функционал должен быть вылит на сервер заказчика, запущен и продемонстрирован.
Создана сопровождающая документация.
Код размещен на GitLab, на сервере заказчика.