📰 Свой новостной канал в Telegram с нуля и почти без кода (n8n + AI)
В последнее время всё чаще ловлю себя на мысли, что читаю новости почти исключительно в Telegram. Каналов по технике и науке много, их удобно листать в свободную минуту, чтобы узнать, что нового происходит в мире. Но есть нюансы: новостей так много, что легко потеряться, приходится постоянно переключаться между разными каналами, подписки накаплиаются, и, в итоге, тонешь в информационном шуме.
Чтобы решить эту проблему, я решил запустить свой новостной канал, где будут только новости, связанные с искусственным интеллектом и робототехникой - именно те темы, которые соответствуют направленности данного канала. Также это дает возможность разделить новости (News) и проекты / мысли / идеи (Lab).
Давно хотелось попробовать зерокодинг, поэтому для реализации выбрал n8n, развернув его локально в docker. Про техническую часть напишу подробнее в следующем посте. Если коротко, то все работает так: бот автоматически собирает свежие материалы с агрегатора newsdata.io, отбрасывает дубликаты, затем передает их ИИ-редактору, который выбирает самые интересные новости по заданному набору правил. Каждые пару часов лучшие заголовки и ссылки на материалы публикуются в канале.
Оставляю в подписке пару каналов про 🦉, а про 🤖 теперь читаю у себя + всегда можно подкрутить редактора, чтобы выдавал контент поинтересней 😉
#n8n #bot #news
В последнее время всё чаще ловлю себя на мысли, что читаю новости почти исключительно в Telegram. Каналов по технике и науке много, их удобно листать в свободную минуту, чтобы узнать, что нового происходит в мире. Но есть нюансы: новостей так много, что легко потеряться, приходится постоянно переключаться между разными каналами, подписки накаплиаются, и, в итоге, тонешь в информационном шуме.
Чтобы решить эту проблему, я решил запустить свой новостной канал, где будут только новости, связанные с искусственным интеллектом и робототехникой - именно те темы, которые соответствуют направленности данного канала. Также это дает возможность разделить новости (News) и проекты / мысли / идеи (Lab).
Давно хотелось попробовать зерокодинг, поэтому для реализации выбрал n8n, развернув его локально в docker. Про техническую часть напишу подробнее в следующем посте. Если коротко, то все работает так: бот автоматически собирает свежие материалы с агрегатора newsdata.io, отбрасывает дубликаты, затем передает их ИИ-редактору, который выбирает самые интересные новости по заданному набору правил. Каждые пару часов лучшие заголовки и ссылки на материалы публикуются в канале.
Оставляю в подписке пару каналов про 🦉, а про 🤖 теперь читаю у себя + всегда можно подкрутить редактора, чтобы выдавал контент поинтересней 😉
#n8n #bot #news
Telegram
AI & Robotic News
The most interesting and unusual news from the world of AI and robotics.
⚡1
AI & Robotics Lab
📰 Свой новостной канал в Telegram с нуля и почти без кода (n8n + AI) В последнее время всё чаще ловлю себя на мысли, что читаю новости почти исключительно в Telegram. Каналов по технике и науке много, их удобно листать в свободную минуту, чтобы узнать, что…
🤖 Бот новостного канала под капотом
В текущем виде бот, отвечающий за работу новостного канала состоит из трех основных частей:
• сбор данных через API агрегатора новостей newsdata.io и их сохранение в БД MySQL;
• подборка новостей за текущую дату и отправка их через API Mistral для выбора пяти, наиболее соответствующих заданным критериям;
• публикация выбранных новостей в канале Telegram.
После активации workflow, срабатывание бота происходит по таймеру
Параллельно с основным, также активен процесс
Очень удобной опцией также является сохранение истории запусков.
#n8n #bot #news
В текущем виде бот, отвечающий за работу новостного канала состоит из трех основных частей:
• сбор данных через API агрегатора новостей newsdata.io и их сохранение в БД MySQL;
• подборка новостей за текущую дату и отправка их через API Mistral для выбора пяти, наиболее соответствующих заданным критериям;
• публикация выбранных новостей в канале Telegram.
После активации workflow, срабатывание бота происходит по таймеру
Schedule Trigger
, настроенному на интервал в два часа.Параллельно с основным, также активен процесс
Error Workflow
, который срабатывает при возникновении ошибок в основном процессе и посылает сообщения в сервисный чат. Тут надо отметить, что такое поведение реализуется только, если основной процесс срабатывает по штатному триггеру расписания - если он запущен в тестовом режиме или от ручного триггера, то процесс перехвата ошибок не срабатывает.Очень удобной опцией также является сохранение истории запусков.
#n8n #bot #news
👍1🆒1
Сбор и сохранение текущих новостей
Я использую бесплатный доступ к API newsdata.io, что имеет ряд ограничений:
• макс. число запросов в день 200,
• не больше 30 запросов в течение 15 минут,
• результаты выдаются постранично, максимальный размер страницы 10 записей.
Чтобы им соотвествовать, пришлось огранизовать цикл, в котором для каждого нового запроса к API newsdata.io, выполняемого в узле
Для содержательной части запроса (переменная
После каждого запроса необходимо обновить значения таких параметров как счетчик запросов и адрес следующей страницы: за это отвечает узел
После каждого запроса, полученные результаты с выхода узла
Вступающий далее в работу ИИ агент уже использует только информацию из базы, подробнее об этом напишу в следующем посте.
#n8n #bot #news
Я использую бесплатный доступ к API newsdata.io, что имеет ряд ограничений:
• макс. число запросов в день 200,
• не больше 30 запросов в течение 15 минут,
• результаты выдаются постранично, максимальный размер страницы 10 записей.
Чтобы им соотвествовать, пришлось огранизовать цикл, в котором для каждого нового запроса к API newsdata.io, выполняемого в узле
Request
, формируется новый адрес endpoint
в генераторе Endpoint Generator
, который написан на python. Я использую два основных запроса: для AI и для Robotics, также в основной части запроса указываю параметры для стран (us,ru,cn,jp
), языка (en,ru
) и категорий (science,technology
):# REQUESTS
base = 'https://newsdata.io/api/1/latest?country=us,ru,cn,jp&language=en,ru&category=science,technology'
if type == 'ai':
q = 'ai AND (tool OR agent OR model OR automated OR intelligence OR generative OR multimodal OR military)'
else:
q = '(robot OR robotics OR robotic) AND (new OR humanoid OR factory OR autonomous OR military OR vision)'
Для содержательной части запроса (переменная
q
) я использую параметр qInTitle
, позволяющий искать только среди заголовков, что делает результат более таргетированным, на мой взгляд.После каждого запроса необходимо обновить значения таких параметров как счетчик запросов и адрес следующей страницы: за это отвечает узел
Update Variables
, выход которого инициирует следующую итерацию цикла за счет передачи данных на вход узла Start Iteration
. Цикл продолжается до тех пор, пока не будут прочитаны все страницы ответов или общее количество запросов не превысит 30 - за выход из цикла отвечает условный оператор Limit exceeded?
, выход true
которого активирует следующую часть бота - ИИ агента.После каждого запроса, полученные результаты с выхода узла
Request
также обрабатываются и сохраняются в БД MySQL. С помощью узлов Results Array
и Filter Redundant Fields
выбираются данные для сохранения: уникальный article_id
, заголовок, краткое описание, ссылка и проч. Для того, чтобы записи в базе не дублировались, перед сохранением делается запрос имеющихся в базе article_id
для новостей, записанных туда за последние 2 суток (максимальное временное окно для endpoint latest
). В узле Merge
по их article_id
фильтруются те записи, которые уже есть в базе. Если находятся новые, то они сохраняются с помощью узла Insert
. Вступающий далее в работу ИИ агент уже использует только информацию из базы, подробнее об этом напишу в следующем посте.
#n8n #bot #news
👾2⚡1
Выбор лучших новостей и их публикация в канале
После того, как в базу были добавлены свежие новости за текущую дату, те из них, которые еще не были опубликованы, выбираются узлом
На выходе агента ожидается список, чтобы обеспечить это условие, имеется возможность подключить
Если модель выдала список
Узел
#n8n #bot #news
После того, как в базу были добавлены свежие новости за текущую дату, те из них, которые еще не были опубликованы, выбираются узлом
Today's not posted
. На его выходе формируется таблица, которую необходимо преобразовать в список для передачи в модель - за это отвечает узел Aggregate
. Он формирует список с именем chatInput
- стандартным для входных данных ИИ агента AI Agent
. Для задания параметров работы агента используется системное сообщение:You are a professional editor specializing in AI and Robotics news for a discerning audience. You receive a list of recent articles. Your task is to select the 5 most interesting and relevant articles for publication. Carefully follow these criteria:
Focus on including both Artificial Intelligence and Robotics news, whenever possible. Prioritize practical, real-world examples of how AI and robotics are being applied or adopted across industries, services, or daily life. Exclude purely scientific updates or breakthroughs that are still years away from real application. Prefer global news or stories with international impact over regional or niche developments.
Diversity: Choose news covering a range of topics or perspectives. Avoid selecting articles that are very similar in content or subject.
Relevance: Prioritize stories with significant technological, scientific, or societal impact in the fields of both AI and robotics.
Novelty: Include at most one article that is funny, unusual, or surprising, for reader variety—but keep the main focus on meaningful advancements or insights.
Exclusions:
Do NOT include financial news, investment updates, funding rounds, product launches/advertising, entertainment (games, movies), graduating or celebrity features.
Exclude press releases or marketing disguised as news.
Substance: Favor in-depth pieces that offer new findings, breakthrough research, novel applications, ethical debates, or transformative real-world implications.
Global perspective: If possible, include news from a variety of regions or cultures for broader context.
Output:
Return a JSON array with only the IDs of the selected articles, in order of editorial priority.
Example: [24, 31, 17, 8, 27]
If there are fewer than 5 eligible articles, return only those that meet the above criteria, but at least 1.
На выходе агента ожидается список, чтобы обеспечить это условие, имеется возможность подключить
Output Parser
с описанием заданного формата, а также обернуть его дополнительно функцией валидации и повторного обращения к модели Auto-fixing Output Parser
, если формат на выходе не соответствует требованиям - классно, что такой узел есть в числе стандартных. Однако, данные проверки не учитывают выдачу агентом пустого списка, что дополнительно проверяется в узле Valid Answer
. Если модель выдала список
id
лучших по ее мнению новостей, то соответствующие записи в базе отмечаются как опубликованные, если список пуст - генерируется ошибка и выполнение прерывается, а в сервисный чат посылается уведомление.Узел
Wait Updating
служит для синхронизации потоков данных, ожидая выполнения обновления записей в базе, после чего список с номерами лучших новостей передается в виде параметра для запроса их заголовков и ссылок в узле Get Best News Data
. Полученная таким образом таблица может быть сразу подключена к узлу отправки сообщений Telegram
, который самостоятельно отправляет столько сообщений, сколько строк в таблице - необходимо только задать требуемый формат.#n8n #bot #news
👾2⚡1🆒1
AI & Robotics Lab
📰 Свой новостной канал в Telegram с нуля и почти без кода (n8n + AI) В последнее время всё чаще ловлю себя на мысли, что читаю новости почти исключительно в Telegram. Каналов по технике и науке много, их удобно листать в свободную минуту, чтобы узнать, что…
🤗 Видео с подробным описанием умного новостного бота уже на YouTube
Посмотреть и послушать про то, как устроен сбор, анализ и публикация новостей можно по ссылке. Надеюсь, получилось интересно 😁
#news #bot #n8n
Посмотреть и послушать про то, как устроен сбор, анализ и публикация новостей можно по ссылке. Надеюсь, получилось интересно 😁
#news #bot #n8n
YouTube
Твоя умная новостная лента: Telegram-канал с AI-ботом на Zero Code | Smart News Feed in Telegram
Полностью автоматизированный Telegram-канал, в который умный бот собирает и публикует самые интересные и необычные новости об искусственном интеллекте и робототехнике из лучших мировых источников. Всё работает через платформу n8n – запуск без программирования…
🔥2⚡1🆒1