Мониторинг Reddit с ИИ в A-Parser: ищем места на Октоберфест

Support Anastasia

Administrator
Команда форума
A-Parser Enterprise
hero_reddit.webp


Как настроить мониторинг Reddit по ключевым словам и получать алерты в Telegram с помощью A-Parser (на примере r/Oktoberfest)



1. Почему для мониторинга Reddit недостаточно поиска по ключевым словам

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

Для этого недостаточно периодически загружать страницу или искать точное совпадение по словам. Рабочему монитору нужно решить четыре практические задачи.

  1. Обеспечить предсказуемый регулярный сбор. Разовый запрос к публичной странице Reddit может сработать, но при автоматическом мониторинге необходимо учитывать ограничения доступа, лимиты запросов, сетевые ошибки и изменения формата ответа. Самописному решению также потребуются повторные попытки, журналирование и сохранение результатов. В зависимости от объёма сбора могут понадобиться прокси.
  2. Отличать ключевое слово от намерения автора. Допустим, монитор отслеживает слова ticket, table и seat. Они могут встретиться в вопросе о правилах бронирования, обсуждении стоимости билетов, предупреждении о подозрительном продавце и конкретном предложении двух свободных мест. Слова похожи, но каждое сообщение требует разной реакции.
  3. Отделять целевые события от обычных публикаций сообщества. Даже в тематическом сабреддите большая часть обсуждений может не соответствовать конкретной задаче монитора. Пользователи r/Oktoberfest спрашивают о погоде, одежде, транспорте и программе поездки. Эти публикации полезны участникам сообщества и не являются спамом, но не требуют алерта для человека, который ждёт предложение свободного места.
  4. Не обрабатывать одни и те же посты повторно. Свежая лента меняется постепенно. Если собирать её каждые 15 минут без сохранения истории, значительная часть публикаций будет снова попадать в обработку. Поэтому монитор должен запоминать стабильный ID или URL каждой просмотренной записи.
В результате задача формулируется шире обычного поиска:

Появилось ли после предыдущей проверки новое событие, которое соответствует нашим правилам и требует внимания?

Почему для примера выбран r/Oktoberfest

Октоберфест длится всего несколько недель — с сентября до начала октября, — поэтому здесь особенно важны конкретная дата и скорость реакции. Пока одни участники r/Oktoberfest обсуждают погоду в Мюнхене, выбор дирндля или дорогу до Терезиенвизе, другие публикуют объявления вроде: «Освободились два места в шатре на вечер 26 сентября».

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

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

Для монитора целевой сигнал выглядит примерно так:

«Планы изменились, появились два свободных места за столом на конкретную дату. Пишите в личные сообщения, если хотите присоединиться».

Рядом с таким объявлением находятся десятки публикаций о погоде, одежде, транспорте и правилах фестиваля. Поиск по слову table не всегда отличит предложение места от общего вопроса о бронировании. Смысловой фильтр — отличит, а база уникализации не позволит отправить тот же пост повторно.

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

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



2. Архитектура: конвейер из трёх заданий A-Parser

В A-Parser рабочий процесс строится из трёх стандартных парсеров. Каждый отвечает за отдельную операцию, а результат автоматически передаётся следующему этапу.

infographic_reddit.webp


Вся система оперирует тремя типами состояния, исключая необходимость во внешних базах данных:

СостояниеГде хранитсяЗачем это нужно
Память (какие посты уже видели)Встроенная база уникализации A-ParserИсключает повторные запросы к ИИ и дубли алертов
Смысл (какие посты целевые)Вывод FreeAI::DeepAI и детерминированная проверка title/bodyОтделяет важное событие от информационного шума
Канал доставки (куда слать итог)Настройки парсера Net::HTTPОбеспечивает оперативную доставку без внешних вебхуков

Как задания передают результат друг другу

Результат каждого задания автоматически становится входом для следующего. Первый этап передаёт только новые публикации. Второй извлекает из ответа категорию SELL, BUY, COMPANY, ALERT или NO_MATCH, затем проверяет признаки категории в исходном title/body. NO_MATCH и не прошедшие фильтры посты не дают строки результата. Третий отправляет отдельный Telegram POST для каждой оставшейся строки.

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



3. Шаг 1. Собираем только новые публикации

Первый этап следит за свежими публикациями в выбранном сабреддите. В нашем примере встроенный парсер Reddit::Posts проверяет ленту r/Oktoberfest и получает заголовок, содержание и ссылку на каждую запись.

Но свежая лента меняется постепенно. При следующем запуске в ней по-прежнему будут находиться публикации, которые монитор видел во время предыдущей проверки. Если каждый раз отправлять весь список в ИИ, старые посты будут анализироваться повторно, а пользователь рискует получить одинаковые алерты.

Чтобы этого не происходило, A-Parser сравнивает постоянную ссылку публикации posts.link с уже сохранёнными ссылками. История хранится в базе redditArticleSeen, поэтому при следующем запуске старые посты не передаются в DeepAI повторно.

Логика выглядит так:

Код:
Первый запуск: A, B       → передать A и B
Второй запуск: A, B, C    → передать только C
Третий запуск: A, B, C    → ничего не передавать

Саму ленту Reddit парсер загружает при каждом запуске, но в результат и на следующий этап попадают только новые ссылки.

Уникализация отвечает только на вопрос: видели ли мы эту публикацию раньше? Она ещё не определяет, полезен ли пост. Новый вопрос о погоде будет считаться новой записью, но его отсеет смысловой фильтр на следующем этапе.

В результате нейросеть анализирует только новые публикации, а пользователю не приходят повторные алерты о событиях, которые монитор уже обработал.



4. Шаг 2. DeepAI предлагает категорию, A-Parser проверяет результат

После проверки новизны публикация передаётся в FreeAI::DeepAI с моделью gpt-oss-120b. Модель анализирует заголовок и текст поста и предлагает одну из пяти меток.

МеткаЧто она означает
SELLАвтор предлагает билет, бронь или свободное место
BUYАвтор ищет билет, место или бронь
COMPANYАвтор ищет попутчиков или компанию
ALERTАвтор предупреждает о мошенничестве, проблеме с билетом или важном ограничении
NO_MATCHПубликация не относится к целевым событиям

Обработка проходит в два этапа:

Код:
пост Reddit
→ категория DeepAI
→ проверка заголовка и текста в A-Parser
→ алерт или тишина

DeepAI получает исходную ссылку, заголовок и текст публикации, а затем возвращает одну строку в формате КАТЕГОРИЯ | краткий факт. Например:

Код:
SELL | Автор предлагает места за столом на конкретную дату.

Ответ модели считается кандидатом, а не готовым алертом. A-Parser извлекает метку категории и проверяет её по исходному посту. Для SELL и BUY в тексте должны быть признаки билета, места, стола или брони и соответствующего намерения. Для COMPANY и ALERT действуют отдельные проверки. Публикации об отелях, одежде, приложениях, услугах и общих советах исключаются.

Если модель возвращает NO_MATCH или исходный пост не проходит проверку, сообщение не создаётся. Краткий факт из ответа DeepAI используется только для диагностики: заголовок и ссылка будущего уведомления берутся непосредственно из Reddit.

Такое разделение снижает риск ошибочной отправки: DeepAI помогает разобрать поток по смыслу, а A-Parser проверяет результат по исходным данным. При этом система не подтверждает подлинность билета, надёжность продавца или достоверность утверждений автора.



5. Шаг 3. Получаем готовый алерт в Telegram

После смысловой фильтрации Net::HTTP отправляет каждый целевой результат в Telegram отдельным HTTP POST. Не нужно разрабатывать отдельный сервис для бота или переносить данные вручную: доставка остаётся частью той же цепочки A-Parser.

В сообщение попадает только информация, которая помогает быстро понять, стоит ли открывать пост и связываться с автором:

  • категория события;
  • исходный заголовок Reddit-поста, обрезанный до безопасной длины;
  • ссылка на оригинальный пост.
Например, итоговый алерт может выглядеть так:

Код:
SELL | 4 table spots at Schützenlisl 26-09-2026 | https://www.reddit.com/…

Если за один запуск найдено несколько подходящих публикаций, для каждой из них отправляется отдельный компактный алерт со ссылкой на исходный пост. Если целевых событий нет, сообщение не отправляется.

В результате Telegram не превращается в копию Reddit-ленты. Пользователь получает уведомление только о новой публикации, которая соответствует заданным правилам, и может открыть именно её исходную ссылку.

Telegram в этом сценарии — лишь один из возможных каналов. Тот же финальный этап можно направить в корпоративный чат, CRM или другой сервис, принимающий HTTP-запросы.



6. Запускаем монитор по расписанию

Для r/Oktoberfest мы настроили проверку каждые 15 минут. Дальше цепочка работает без участия пользователя: проверяет свежую ленту, передаёт новые посты в DeepAI и отправляет алерт, только если публикация прошла отбор. Если подходящих событий нет, Telegram остаётся без новых сообщений.

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

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



7. Что показал тестовый мониторинг r/Oktoberfest

Тест планировался примерно на 100 публикаций, а цепочка обработала 101 пост. Ниже — результаты запуска.

infographic_reddit_2.webp


МетрикаЗначение в тесте
Найдено парсером Reddit572
Записано и классифицировано101
Ответов в формате КАТЕГОРИЯ | факт101 из 101
Ответов модели SELL34
Ответов модели BUY28
Ответов модели COMPANY12
Ответов модели ALERT2
Ответов модели NO_MATCH25
Прошло все фильтры и отправлено18
Состав отправки10 SELL, 4 BUY, 4 COMPANY
Ответы Telegram18 из 18 — HTTP 200
Интервал проверки15 минут
Сбороколо 6 минут
Классификация в четыре потокаоколо 6,5 минуты
Доставкаменьше минуты

Эти показатели относятся к одному зафиксированному тестовому запуску и показывают, как исходная лента сокращается до небольшого потока целевых алертов.



8. От сезонного кейса — к постоянному мониторингу

Октоберфест — только один пример. Та же схема подходит для других задач, где важно не собрать все публикации, а заметить новое событие с определённым смыслом. Для переноса достаточно изменить источник, критерии отбора и канал доставки.

ЗадачаКакой сигнал искатьКуда отправлять
Поиск лидовпользователь ищет подрядчика, сервис или альтернативу продуктуотделу продаж или в CRM
Мониторинг брендажалоба, запрос возврата, положительный отзыв или сравнениев канал поддержки или маркетинга
Поддержка и инцидентысообщение о сбое, блокирующей ошибке или проблеме с оплатойв чат дежурной команды
Мониторинг объявленийновое предложение, запрос на покупку или предупреждение о мошенничествев Telegram или рабочий чат

Когда достаточно обычного фильтра

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

Смысловой анализ полезен там, где одно намерение выражается разными словами. Например, запрос подрядчика может звучать как «кого посоветуете», «ищем специалиста», «нужна помощь с проектом» или «кто может взяться за задачу».

Как изменить промпт для другой задачи

Для переноса монитора необязательно переписывать всю цепочку. Начните с того, какое событие должно вызвать алерт, а затем замените категории и их определения в queryformat parser preset redditmon_deepai.

Универсальная заготовка выглядит так:

Код:
Ты классификатор публикаций из [ИСТОЧНИК] для задачи [ЦЕЛЬ].
Категории:
TARGET_1 ([точное определение первого события]),
TARGET_2 ([точное определение второго события]),
NO_MATCH (всё остальное).

Ответь ОДНОЙ строкой строго в формате:
КАТЕГОРИЯ | краткий факт до 15 слов.

Без markdown, без пояснений, без списков.
ПУБЛИКАЦИЯ: $query
Ответ:

Например, для поиска лидов можно использовать категории LEAD, COMPARISON, COMPLAINT и NO_MATCH; для поддержки — OUTAGE, LOGIN, PAYMENT и NO_MATCH; для мониторинга бренда — NEGATIVE, REFUND, PRAISE и NO_MATCH.

При настройке нового промпта полезно соблюдать несколько правил:

  1. Одна категория должна означать одно действие. Если LEAD и BUY описывают почти одинаковое намерение, модель будет путать их.
  2. Определяйте не тему, а событие. Формулировка «пост о продукте» слишком широкая; «автор ищет альтернативу продукту» задаёт проверяемое намерение.
  3. Всегда оставляйте NO_MATCH. Модели нужен безопасный вариант для тематических, но нецелевых публикаций.
  4. Сохраняйте короткий машинный формат. Строку КАТЕГОРИЯ | факт проще проверить и передать следующему заданию.
  5. Добавляйте примеры для похожих категорий. Если модель путает поиск подрядчика с просьбой дать совет, добавьте несколько коротких пар «публикация → категория» прямо перед $query.
Одной замены промпта недостаточно. Те же названия категорий нужно указать в выражении tok = a.match(...) внутри resultsFormat и создать для них подходящие проверки исходного текста. Если заменить SELL на LEAD только в промпте, модель вернёт новую категорию, но текущий шаблон её не распознает.

При смене не только задачи, но и источника проверьте также формат $query, извлечение заголовка и URL. Текущая версия ожидает строку, сформированную Reddit::Posts, и ищет в ней ссылку Reddit. Для форума, отзывов или другого API эти правила нужно адаптировать к полям нового источника.

Главный вывод

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

В A-Parser этот процесс объединяется в одну последовательность:

Код:
собрать новые публикации
→ убрать уже просмотренные
→ определить смысл
→ отправить готовый алерт

Кейс r/Oktoberfest показал эту механику на поиске свободных мест за столами. Но тот же принцип можно применять к лидам, отзывам, объявлениям и сообщениям о сбоях.

Начинайте с одного источника и одного типа события. Чем точнее определено условие алерта, тем меньше шума получит человек на выходе.



Приложение: готовый пресет A-Parser

Код:
eNrtGQ1v27byrxBC19ib40h2srXOKwLXdda8l8R5iYuHIc4MWqJtzbKoklRc
t8p/3x1JS3S+1gd0eNjDgoQij3fH433xyHzxbpmQMU+9TtDwFJULeSGYZEp6
nesvXqb7Xse7ZFEUK3LG01hxQXZJjycJCxVJ2cpreBkVEvgAzbVF7XQuuAQu
DS9iU5onymt88dQ6Y8CMw5oijhhMxhGMMzpjIc9TwPFuaZIDzo/+3dP4kgsH
1UMRnsHOBP+0FkyJmMmKqv0MRS6ZJqqwXWnyNP6YIy7oBvfVufYyu9UkThfe
TcOi/JzwCU28jhI528CGhocEadKZd3dzs2Ejj7lYUlT19XfkeHDZ7/bek4yc
nJMsaGr+h+TkmCScZ804jdgn8g8S+MEh+e5GaIWPcfEOAeqsiV2YIEVBVKwS
ZsG63xQsS2jIaiNvBD/pyGuQkQe/dUsx4dHaEoQ8VSxVT5M0ZT6BvdT8Bgla
vr9hwXM1AXtG41wklhX0YHKUwqB//u4QGxiXWpRX9JYNOWx/GieVcuUxjM7p
EnVmt7k0Lhj4/p5UDJSjPqEzUJwEP6aJUST6YqXcD8Zm4CsccKGLznAs+BJA
imkGCFxvjHDtvdDjypj/NjReZ0oTCeaUIO8xBemicsbYOVZMUBBwkKE4AP7i
8bSbJKfsliUVvWb/No+TCOKmOwWiE0v4OMrgAY+7cnfuUuDKKwEybMTRg7eD
s4oo4qd8tlFFEi9jBWPZ0/HX8RvegrGs1JdReleoOEzYFWMp0Cy5YOWSZhUr
CKSOjKUYQpUFu1kF2trRloG2geB303g2sGG5wczTIeSnQdrjyyxhuMVH0lJC
pYynGLoQxZeVE3WltRMOSrHvs+zphYFxmbQ8xXki/3llNpCJGHz0AMVegqpd
WazRQpokHy5Pt6QEQql4Nkj7Qtyzr3Ycb65UJjt7e6vVqmk0DqG33BN7g4Xi
EyamTKo9SHN7Hi6g2IyDazqautik6Y3YmK6eyd2VktzEfSwY6550Ou/AAbon
2oJICAE3jgBEY+/xdDVKKXmDaYqmcsXEVrawuQJThQsWJfhwlH401No5mlzE
M4DlAPvYhBXCeW2n5ujnumnzHXRQR9e/kpsf6jvIR7k0Nu/Vrn8tynm+AAxa
cr3qn54Wbz/8UvQGZxfd81+K7mn/clicD8Zn3WHvvSECTbEtxrWjuD4aTWoQ
EQumCvORhWRU6Qa6GVe6kYXesWlloegkYQVaRdxSDJ/ilufhnAlEUJ+hHeW+
z/bVZwZsZTjHdbQQ7FOY5BF7TIw5VywpBOfLYpaDm+geDUE1Sx6ZVWgsJumk
oGBrtYR0XkSxSKMEPmkkkgJSGBNzLllaKEHDOcyDjBLwswJFjUNWCiJZkjwm
BcILbOBUK+gt5EW914RNFWYk0AYVrODTKfR1K80H0UOahiypek6XRRsYi3Cd
Av60Yo8Ist5AUOtbkDkk59FI/lCjBU2La3/3NfjAZg+TfH1/C3CqLmBVMuXC
kGFr6XSXpmv81o9qxojW6kfG4kfG2kfW0Ef1Ip6SNc8JykGAltj5iDOJY54y
Pdf8vmb8Bj3G5VwHxmxRkwVIVT96Gs24aIQ2eswsqzlQreZxOAe3Q5eATFzI
fDYDRykMGXDKQLJpLKSCYmHJisB2RKkxoMxwF4+sMMkhFsG38bsuYJIhM0hr
aYT6YBxyYGHpi5ngeVYoPmMKvf5zLimKpC3rmIDUJF8y0FFhVFXMYpHIerFk
EInlHKRDYvjXixknJVeqoGSJqrHkCcwK0HaSHKFrTaHDVyUIfPEImOUMHChX
zGg0YeLRoF9RkSIP/KLZQ7ospnTBwE5QKcYRRjeUdqGOu5QrQnEt48Y4FGwX
AhClYmEOJ/O6gKFYE4dMayPiHMRqfj/Nk0RLpLmDRD70oQyEVNbELiGYeqsR
TAHgDdnB3LajQQaIWQxwsI9hars2r+Cof3rV1zDjFhVos3JwWBZuToMrAF65
LqTTJ5aFsPvTVrUJ3FnZuhwyvMfqPq1O+q7MaPun6PTXtIBqMF6+JHnTx4+y
VtBnD9ql6Zen3s5oVOw0yM7uTt2FpQgj2zCxgTnF9Su/rlkv5QzPMDIGjAL+
xnaxapxbIRCzIOBkh8QexKXo36Lubv1dd/+Zdfc5/x8V2tceles0VHPBaAR3
2tbN15beQzivZ4Iu/1ql97epqJ29uxX1OVOdzvvh8OKrnkGef3a4jz3jPOpx
PbbY13ADv/mvH0KCZyiWcITyyHlquRhcDZ97a5nqOLYPIxXZixAEJS8AnoEv
s+ZvkqfPsdHua3g5XDa3AJrFTWUVDveF2d6Eq8v+xWm31x//52T4fjzsn/Z/
vuyejd8OhuPh4F/98z2obqMzqGrpjD23ML59OCuGUD+N4+jN49x777vD8cm7
l5jI3ryori9PPuvAJUcrYmxeT+ALECjSaZmiv8mTSPvv1Px/mZofT8QplIh/
kHGt8v5yKfemzKblm/SX+68UAHnwTAEwN4N0PLhX77da2O5PCH7aVLcT3fp6
Iqja9ivd36/6Ft9gakZtpvu+YTd1QMF9pHaL2AOjwt33zbwGBaxaY4vQSHNQ
EViZDtyFmobHQwk1VrvtSuvs6FWH4CWB1Cq6duvZ/W1k1u1+RXZgBSGOzK8c
/R5UXPcnDYMVPtyHYdhwuGwtGGlISJ7QsTVlvUHgCmI3Zcz42hXCsf5+2zHd
K0fGEJjYG8VXMbIShA47vxLZEjNgqq8alqWr0YNKo65QW7M/3tf6tiDsKTsF
9w2xUT3Is3npsiK1KtUeBOQJj/Yrfvuhs0tmuTYdj7YkrQdeEDpIgd5TEDmQ
1w+MvLUlV+l/gNp2lWNUZUPIDYjwYeh0nKAK/Cp/BHobQbuStqVnA23l1hSu
XI6H+Q8YUyc6Xrvy+G4KII6xGQkOnE1aU9rEYrXt5In2T2RJxSLiq9QNpXLy
QbqaOrwjBzVyJX2SlSV0gyh4YKRWc5Ri5dghpoSASudZH+nACbFVSXa8DeEL
88Y8wv9D4CMVz3H2tY9nChZrUq2TTeWmj+mIJVgsZ2qXS7kbtPyJPticSrjj
tc2VxRTf9jTXg96chQsmdGUQYt+7u4Ny4Td5YY4lPF7xULrbOjjvfgcE9rer

Где находится промпт для DeepAI

В готовом TEMPLATE всё уже настроено. В задании Reddit Monitor - Classify поле queryFormat содержит только $query: оно передаёт строку с данными Reddit в FreeAI::DeepAI без изменений.

Полный промпт хранится отдельно — в поле queryformat пресета настроек парсера redditmon_deepai. Когда запускается классификация, A-Parser подставляет полученную строку поста вместо $query внутри этой инструкции:

Код:
Ты классификатор постов Reddit про Октоберфест. Категории: SELL (автор продаёт билеты, места, бронь стола), BUY (ищет купить), COMPANY (ищет компанию), ALERT (предупреждает о проблеме), NO_MATCH (всё остальное). Ответь ОДНОЙ строкой строго в формате: КАТЕГОРИЯ | краткий факт до 15 слов. Без markdown, без пояснений, без списков.
POST: $query
Ответ:

После импорта переносить промпт вручную не нужно. Редактируйте queryformat в redditmon_deepai только в том случае, если хотите изменить категории или адаптировать монитор для другой задачи.

Как указать Telegram-бота и получателя

Откройте третье задание Reddit Monitor - Telegram и найдите настройки Net::HTTP. В них нужно заменить два placeholders:

  1. В поле queryformat вместо REPLACE_WITH_TELEGRAM_BOT_TOKEN укажите токен, полученный у @BotFather:

    Код:
    https://api.telegram.org/botREPLACE_WITH_TELEGRAM_BOT_TOKEN/sendMessage
  2. В поле body вместо REPLACE_WITH_TELEGRAM_CHAT_ID укажите получателя:

    Код:
    chat_id=REPLACE_WITH_TELEGRAM_CHAT_ID&text=$query.orig
Чтобы узнать chat_id, отправьте боту любое сообщение, затем откройте в браузере https://api.telegram.org/bot<ТОКЕН>/getUpdates и найдите значение message.chat.id. Для группы ID обычно отрицательный. Для канала можно использовать ID вида -100… или @channelusername; бот должен быть добавлен в канал с правом отправлять сообщения.

Не публикуйте экспорт после подстановки токена. Для скачивания и передачи другим пользователям используйте только TEMPLATE с placeholders.

Перед первым запуском:

  1. раскройте спойлер выше, скопируйте код пресета и импортируйте его в A-Parser;
  2. в первом task проверьте уникализацию результата posts.link по типу «Строка»;
    создайте сохраняемую базу redditArticleSeen и выберите её в поле «Сохранять уникализацию»;
  3. укажите Telegram token и chat_id, как описано выше;
  4. проверьте, что classifier использует parser preset redditmon_deepai,
    а шаблон результата извлекает категорию через a.match(...);
  5. сначала выполните короткий прогон без массовой отправки, просмотрите ответы модели и step2.txt,
    затем отправьте один контролируемый positive.

Публикуемый TEMPLATE проверен декодированием: Telegram token, chat ID и proxy credentials в него не включены. Рабочий файл с реквизитами бота распространять не нужно.

Чтобы использовать цепочку для другого сообщества, замените URL первого task и правила в prompt второго task. Формат входной строки и связи между заданиями останутся теми же.


Рекомендуемый стек для запуска:

  • A-Parser Pro / Enterprise
    Инструмент для параллельного сбора и извлечения контента. Для запуска собственного JavaScript/TypeScript-парсера нужна лицензия с поддержкой пользовательских парсеров; актуальные условия указаны на странице покупки.
  • Unlimited-прокси A-Parser
    Прокси обеспечивают высокую скорость и обход лимитов при параллельной загрузке сотен архивных страниц.



Полезные ссылки и материалы:
 
Последнее редактирование:
Назад
Верх