AI & Robotics Lab
18 subscribers
71 photos
26 videos
9 files
101 links
Explore AI code generation, robotics, and ROS with original projects and hands-on guides. Follow along as I share my experience, code samples, and tips for building intelligent systems.
Download Telegram
AI & Robotics Lab
📰 Свой новостной канал в Telegram с нуля и почти без кода (n8n + AI) В последнее время всё чаще ловлю себя на мысли, что читаю новости почти исключительно в Telegram. Каналов по технике и науке много, их удобно листать в свободную минуту, чтобы узнать, что…
🤖 Бот новостного канала под капотом

В текущем виде бот, отвечающий за работу новостного канала состоит из трех основных частей:
• сбор данных через 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, выполняемого в узле 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
👾21
Выбор лучших новостей и их публикация в канале

После того, как в базу были добавлены свежие новости за текущую дату, те из них, которые еще не были опубликованы, выбираются узлом 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
👾21🆒1
🏗 Зерокодинг - конструктор для разработчика

Я учился водить на механике, первая машина тоже была "на ручке" и, освоив технику переключения передач, со недоверием относился к автоматическим коробкам. Как так, я же лучше знаю, на каких оборотах переключаться: со светофора покрутить посильнее, на обгоне скинуть передачу. А тут какой-то автомат будет за меня решать. Но, покатавшись на автомате, очень быстро привык: да, местами подтупливает, нет того ощущения контроля, но едет и не надо думать о переключении.

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

Как конструктор, я питаю слабость к схемам, особенно структурным - а тут ты делаешь не просто схему как иллюстрацию, но она же и твоя программа, да еще и анимируется при выполнении - восторг 🤩 Напомнило радиокубики из моего детства.
1🔥1👾1
This media is not supported in your browser
VIEW IN TELEGRAM
LegoGPT, an AI model that generates step-by-step blueprints for custom Lego sets.

https://github.com/AvaLovelace1/LegoGPT
😁1😎1👾1
📖 Пара интересных статей по актуальным бенчмаркам для ИИ-моделей

Тема горячая - как правильно оценивать и сравнивать все более нарастающий вал новинок в условиях гонки ИИ. Ключевой аспект здесь, как мне кажется, это наличие достоверной экспертизы. За счет правильного промптинга можно повысить "критическое мышление" модели, но, тем не менее, считать ее ответ "экспертным мнением" мы пока(!) не можем. Поэтому так важны тесты / бенчмарки, обобщающие именно реальную экспертизу профессионалов в своей сфере - нечто похожее на систему стандартов типа ИСО или ГОСТ. Сам я пока только подбираюсь к этой теме поближе, по мере погружения, буду публиковать здесь всои находки.

Ставьте 👍, если также считаете эту тематику интересной.

#benchmark
👍1🔥1
🧩 The Ultimate LLM Benchmark Collection

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

🌐 Общие (multi‑skill) лидерборды
SimpleBench — https://simple-bench.com/index.html

SOLO‑Bench — https://github.com/jd-3d/SOLOBench

AidanBench — https://aidanbench.com

SEAL by Scale (MultiChallenge) — https://scale.com/leaderboard

LMArena (Style Control) — https://beta.lmarena.ai/leaderboard

LiveBench — https://livebench.ai

ARC‑AGI — https://arcprize.org/leaderboard

Thematic Generalization (Lech Mazur) — https://github.com/lechmazur/generalization

дополнительные бенчмарки Lech Mazur:

Elimination Game — https://github.com/lechmazur/elimination_game

Confabulations — https://github.com/lechmazur/confabulations

EQBench (Longform Writing) — https://eqbench.com

Fiction‑Live Bench — https://fiction.live/stories/Fiction-liveBench-Mar-25-2025/oQdzQvKHw8JyXbN87

MC‑Bench (сортировать по win‑rate) — https://mcbench.ai/leaderboard

TrackingAI – IQ Bench — https://trackingai.org/home

Dubesor LLM Board — https://dubesor.de/benchtable.html

Balrog‑AI — https://balrogai.com

Misguided Attention — https://github.com/cpldcpu/MisguidedAttention

Snake‑Bench — https://snakebench.com

SmolAgents LLM (из‑за GAIA & SimpleQA) — https://huggingface.co/spaces/smolagents/smolagents-leaderboard

Context‑Arena (MRCR, Graphwalks) — https://contextarena.ai

OpenCompass — https://rank.opencompass.org.cn/home

HHEM (Hallucination) — https://huggingface.co/spaces/vectara/leaderboard

🛠️ Coding / Math / Agentic
Aider‑Polyglot‑Coding — https://aider.chat/docs/leaderboards/

BigCodeBench — https://bigcode-bench.github.io

WebDev‑Arena — https://web.lmarena.ai/leaderboard

WeirdML — https://htihle.github.io/weirdml.html

Symflower Coding Eval v1.0 — https://symflower.com/en/company/blog/2025/dev-quality-eval-v1.0-anthropic-s-claude-3.7-sonnet-is-the-king-with-help-and-deepseek-r1-disappoints/

PHYBench — https://phybench-official.github.io/phybench-demo/

MathArena — https://matharena.ai

Galileo Agent Leaderboard — https://huggingface.co/spaces/galileo-ai/agent-leaderboard

XLANG Agent Arena — https://arena.xlang.ai/leaderboard

🚀 Для отслеживания AI take‑off
METR Long‑Task Benchmarks (вкл. RE Bench) — https://metr.org

PaperBench — https://openai.com/index/paperbench/

SWE‑Lancer — https://openai.com/index/swe-lancer/

MLE‑Bench — https://github.com/openai/mle-bench

SWE‑Bench — https://swebench.com

🏆 Обязательный «классический» набор
GPQA‑Diamond — https://github.com/idavidrein/gpqa

SimpleQA — https://openai.com/index/introducing-simpleqa/

Tau‑Bench — https://github.com/sierra-research/tau-bench

SciCode — https://github.com/scicode-bench/SciCode

MMMU — https://mmmu-benchmark.github.io/#leaderboard

Humanities Last Exam (HLE) — https://github.com/centerforaisafety/hle

🔍 Классические бенчмарков

Simple‑Evals — https://github.com/openai/simple-evals

Vellum AI Leaderboard — https://vellum.ai/llm-leaderboard

Artificial Analysis — https://artificialanalysis.ai

⚠️ «Перегретые» метрики, на которые можно не смотреть
MMLU, HumanEval, BBH, DROP, MGSM

Большинство чисто‑математических датасетов: GSM8K, MATH, AIME, ...

Модели близки к верхним значениям на них и в них нет особого смысла.
🩺 HealthBench — новый бенчмарк от OpenAI для оценки ИИ в медицине

OpenAI представила HealthBench — масштабный бенчмарк, разработанный для оценки возможностей языковых моделей в медицинских сценариях. Он создан в сотрудничестве с 262 врачами из 60 стран и включает 5 000 реалистичных медицинских диалогов.

🔍 Основные особенности HealthBench:


- Реалистичные кейсы: Диалоги отражают реальные взаимодействия между пациентами и врачами, охватывая различные медицинские специальности и контексты.

- Многоязычность: Бенчмарк поддерживает несколько языков, что позволяет оценивать модели в глобальном масштабе.

- Оценка по рубрикам: Каждый ответ модели оценивается по набору критериев, разработанных врачами, с учетом полноты, точности и уместности.

Открытый доступ: Код и данные доступны на GitHub, что способствует прозрачности и сотрудничеству в исследовательском сообществе.

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

🔗 Подробнее: https://openai.com/index/healthbench/
Media is too big
VIEW IN TELEGRAM
🧟‍♂ Roll out the fallout - let's make it fun!

I should be dreading
But strangely, I'm ready
My bottle cap fortune
Will rise in stock for real
Полный текст и перевод
1
😾 Хотели бы поговорить со своим питомцем? А, может, он быстрее найдет общий язык с ИИ и хозяин станет "третьим лишним"?

Только вчера посмотрели 5-й эпизод 4-ого сезона Love, Death & Robots - как раз про это 😎

Кто еще не добрался до нового сезона (или даже до сериала) - рекомендую 👍. Уже есть в русской озвучке.
👍21🤔1👾1
This media is not supported in your browser
VIEW IN TELEGRAM
🎲 Устал работать — придумай игру!

Вчера объяснял крестнику что такое инди игры (созданные небольшими фирмами или отдельными разработчиками - от слова independent 😁). И тут вспомнилось, что недавно попался мне ролик про возможности Gemini 2.5 Pro, в котором была показана интересная идея создания мини-приложений (JS + CSS + HTML) и их реализация в виде одного HTML-файла.

Лучше один раз увидеть, чем 100 услышать, подумал я, и закинул в модель запрос сделать незабвенный арканоид. Не с первого раза, но где-то с 3-4 попытки получился вполне играбельный вариант и даже с какими-то небольшими эффектами. Крестник, правда, не слишком проникся, а я был в восторге 🤩

Поэтому, если хочется почувствовать себя инди разработчиком:
✓ берем модельку "поумнее" типа Gemini 2.5 Pro, GPT 4.1 / o3, Claude 3.7;
✓ задаем ей задачу сделать игру с помощью JavaScript + CSS + HTML и упаковать все в один HTML-файл;
✓ сохраняем, запускаем в браузере;
✓ наслаждаемся 🤗

#games #fun
👾21🔥1
🕶 Агенты-разработчики уже здесь!

Этот год однозначно становится годом ИИ-агентов: границы чатов уже слишком тесны, ИИ выходит в реальный мир!

Передача разработки кода моделям была только вопросом времени, и вот, появились готовые решения - на этой неделе анонсированы агенты: Codex от OpenAI и Jules от Google. Это уже не просто помощники / подсказчики а вполне полноценные "разработчики", решающие задачи "под ключ" прямо в репозитории. Второй, кстати, делает это даже бесплатно - дают 5 заданий на день.

Мир меняется стремительно - готовы ли мы к таким изменениям?

#мысли #brave_new_world
🤔21😎1
jules.webm
34.5 MB
Пример работы AI-разработчика Jules

Полное видео на youtube.

1. Настраивается виртуальная машина и окружение под проект - в облаке, но пишут, что безопасно и учиться на вашем коде не будут - верим? 😉
2. Подключается репозиторий GitHub проекта.
3. Агенту описывается задача - 100% скоро они будут подтягивать таски из Jira :)
4. Агент анализирует проект и задачу, выводит план работ - тут же можно его подкорректировать в чате.
5. План одобрен - агент принимается за работу 🚧.
6. В процессе работы выводятся вносимые изменения, агент пишет и запускает тесты, доступен чат, можно поставить процесс на паузу.
7. Готовый результат формируется в новой ветке, выводится итоговое сообщение по проделанным работам и diff по файлам. Можно даже получить аудиоподкаст 🤯 об итогах работы.

Далее таск передается людям / агентам (нужное подчеркнуть) на тест и делается merge в проект - новая фича готова!

#CodeGeneration
1🔥1