Написать скрипт автоматизированного нейро-чаттинга в Telegram от имени канала (тендер № 7169)
Поделиться тендером:
|
Категория:
|
|
Статус тендера:
Открыт
|
|
Описание задания:
1. Цель
Создать скрипт на Python (Telethon + OpenAI), который автоматически общается в выбранном Telegram-чате от имени моего канала.
Скрипт должен уметь:
- слушать целевой чат в реальном времени;
- сохранять сообщения в PostgreSQL (с предварительной фильтрацией по списку стоп-слов);
- периодически (по условиям из конфига) выбирать подходящее сообщение и формировать на него короткий, «человеческий» ответ через OpenAI API;
- публиковать ответ в чат в режиме reply от лица заданного канала;
2. Сроки
Срок выполнения: 1–1.5 недели.
3. Основные технологии
- Python 3.10+
- Telethon — для взаимодействия с Telegram
- PostgreSQL — для хранения данных
- OpenAI API — для генерации ответов
- PyYAML — для чтения конфига
- logging — логирование в консоль и файл
4. Пример конфигурации (пример config.yaml).
telegram:
target_chat_id: -1001234567890
post_as_channel_id: -1009876543210
session:
phone: "+358000000000"
session_path: "./sessions/main.session"
api_id: 123456
api_hash: "abcdef1234567890abcdef1234567890"
openai:
api_key: "ENV_OPENAI_API_KEY"
model: "gpt-4o-mini"
temperature: 0.6
max_tokens: 300
database:
host: "127.0.0.1"
port: 5432
user: "neurochat"
password: "neurochat_pass"
name: "neurochat_db"
strategy:
min_messages_per_cycle: 10
max_messages_per_cycle: 25
# между этими значениями при старте каждого цикла выбирается случайное число сообщений, после которых сработает ответ
min_minutes_per_cycle: 10
selection_window_minutes: 60
reply_max_words: 120
language: "ru"
personal_style: |
Я — дизайн-студия. Отвечаю только на темы, связанные с дизайном, визуалом, инфографикой, брендингом, упаковкой и оформлением маркетплейсов.
content_requirements: |
Коротко, профессионально, без эмодзи и канцелярита. Ответы должны звучать естественно, как от живого человека. Без ссылок и оффтопа.
excluded_patterns:
- "реферал"
- "подпишись"
- "ставка на спорт"
- "казино"
- "взаимная подписка"
runtime:
dry_run: false
log_file: "./logs/neurochat.log"
log_level: "INFO"
timezone: "Europe/Helsinki"
5. Поведение программы
5.1 Мониторинг чата
Скрипт подключается через Telethon к указанному чату и отслеживает все новые сообщения.
Если сообщение содержит слова из excluded_patterns — оно не сохраняется и не обрабатывается.
Все остальные сообщения сохраняются в базу данных с базовой информацией (текст, автор, дата и т.д.).
Для каждого сообщения вычисляется некоторый «score» — насколько оно близко к тематике студии (дизайн, визуал, брендинг и т.д.). Логику оценки реализует разработчик. Возможно подключение другой AI модели – от replicate, или локальный алгоритм подсчета score по ключевым словам, вопросительности предложения и тд. Если данный функционал будет слишком сложным, то можно рассмотреть набор ключевых слов на входе к скрипту + рандомизацию (ответ на рандомное сообщение). Однако приветствуется подключение алгоритма высчета score.
5.2 Условия запуска ответа
Проверка срабатывает по двум условиям:
1. Прошло время min_minutes_per_cycle;
2. Накоплено случайное количество сообщений, выбранное при старте цикла в диапазоне от min_messages_per_cycle до max_messages_per_cycle.
Если время вышло, но нужное количество сообщений (случайно выбранное в этом диапазоне) ещё не достигнуто — программа продолжает ждать.
5.3 Выбор сообщения для ответа
При срабатывании условия скрипт выбирает самое релевантное сообщение за период selection_window_minutes.
Критерий релевантности (score) — по усмотрению разработчика, но должен учитывать:
- тематическое совпадение с описанием personal_style;
- адекватную длину текста;
- приоритет вопросам, обращённым к аудитории.
5.4 Формирование ответа
Через OpenAI формируется короткий ответ (до reply_max_words слов).
Тон и формат — как указано в personal_style и content_requirements.
Ответ должен быть естественным, вежливым, без шаблонности и повторов.
5.5 Отправка сообщения
Ответ публикуется как reply на исходное сообщение от имени канала post_as_channel_id.
Если Telegram не позволяет ответить от имени канала — допускается fallback-отправка от имени аккаунта владельца.
В режиме dry_run: true публикация не выполняется, но ответ фиксируется в лог-файле.
6. База данных
Используется только PostgreSQL.
Схему БД (таблицы, связи, индексы) и модель хранения разработчик продумывает самостоятельно.
Важно, чтобы база позволяла:
- хранить сообщения и их параметры;
- хранить оценки релевантности (score);
- фиксировать факты публикации ответов;
- предотвращать повторные ответы на одно и то же сообщение.
7. Логирование
Ведение логов в файл и консоль.
Минимум: дата, уровень, действие, результат, chat_id, msg_id.
При dry_run: true логировать текст сгенерированного ответа и целевое сообщение.
8. Комментарии и документация
У каждой функции — короткий docstring (назначение, ключевые аргументы, возвращаемое значение).
Структура кода — модульная и читаемая.
В README.md описать:
- как запустить скрипт;
- как настроить config.yaml;
- порядок подключения к PostgreSQL;
- пример dry-run лога.
9. Критерии приёмки
- Скрипт успешно подключается к Telegram, сохраняет сообщения и логирует их.
- После накопления нужного количества сообщений генерирует релевантный ответ.
- В режиме dry_run ответ не публикуется, но отображается в логе.
- В обычном режиме ответ публикуется в чат корректно в виде reply.
- Код хорошо структурирован и снабжён комментариями, написаны тесты pytest с покрытием кода ±70% кода.
10. Что требуется от разработчика в отклике
- Короткое описание подхода к архитектуре (структура модулей, как будет реализован scoring).
- Пример использования Telethon для reply от имени канала (если есть).
- Срок и фиксированная стоимость работы.
- Опционально — предложения по улучшению (анализ контекста, фильтрация по авторам, кеширование и т.д.).
|
|
Ориентировочная стоимость:
200
|
|
Тип субъекта:
Физическое лицо
|
|
Варианты оплаты:
Возможна предоплата
|
|
Место работы:
В офисе
|
|
Дата публикации:
03.11.2025 11:00
|
|
Контакты:
Контакты видны только авторизованным пользователям, которые оформили подписку.
|
Авторизоваться
Просмотров: 77
Похожие задания и вакансии
Тендер № 7188
Нужна запись клиента, чтоб исчезала из его записей (backend-доработка в мобильном приложении) Laravel
Добрый день!
Нужна доработка для мобильного приложения на бэкенд-стороне
Задача https://docs.google.com/document/d/1o8V-1tJuhVtTW_6vCKEWNQVBoDHRy-070-NPAJhdxIw/edit?usp=sharing
Подробности можем обсудить ...
Открыт
Просмотров: 35
Опубликован: 07.11.2025 11:55
Опубликован: 07.11.2025 11:55
Тендер № 7178
Написать скрипт для автоматизации выводов
Срочно нужен скрипт для автоматизации выводов по данной теме: telegra.ph/Novaya-tema-zarabotka-na-birzhe-MEXC-09-15
Нужно успеть за пару дней желательно. ...
Открыт
Просмотров: 29
Опубликован: 04.11.2025 21:31
Опубликован: 04.11.2025 21:31
Тендер № 7156
Требуется Full-stack Разработчик
MiniApp для работы с промокодами
СТАТУС: открыт
Что за проект:
Разработка мини-приложения в Telegram и скидочного бота, который поддерживает интеграцию промо-партнёров ...
Открыт
Просмотров: 78
Опубликован: 26.10.2025 15:06
Опубликован: 26.10.2025 15:06
Тендер № 7139
Требуется Backend-разработчик ИИ-платформы
Мы запускаем MVP платформы для соискателей (HRTech). Цель – быстро вывести на рынок ядро продукта, которое помогает кандидатам улучшить свои резюме и видеопрезентации с ...
Открыт
Просмотров: 99
Опубликован: 16.10.2025 17:43
Опубликован: 16.10.2025 17:43
Работа и вакансии на Freten.ru
Для более удобной навигации в разделе работа, ниже указаны разделы и подразделы сайта по разным направлениям, странам, городам, специальностям и профессиям. На нашем сайте вы найдете разделы:
- Москва, Санкт-Петербург, Волгоград, Воронеж, Екатеринбург, Казань, Краснодар, Красноярск, Нижний Новгород, Новосибирск, Омск, Пермь, Ростов-на-Дону, Самара, Уфа, Челябинск, Саратов, Тюмень, Тольятти, Барнаул, Ижевск, Махачкала, Хабаровск, Ульяновск.
- Индия (ГОА, Дели, Мумбаи).
- Индонезия (Бали, Джакарта).
- Кипр (Айя-Напа, Ларнака, Лимасол, Никосия, Пафос, Протарас, Фамагуста).
- ОАЭ (Дубай, Абу-Даби, Аджман, Рас-эль-Хайма, Фуджейра, Шарджа).
- Таиланд (Бангкок, Паттайя, Пхукет, Самуи, Хуахин)
- Шри-Ланка.
- Вьетнам (Дананг, Нячанг, Хошимин, Ханой).
Надеемся что наш сайт по поиску работы и вакансию будет вам полезен и вы найдете работу вашей мечты!







