Кодерів кличуть у Лас-Вегас: Bright Data разом із шоу BattleBots запустили безкоштовний конкурс для розробників, де головне завдання — побудувати проєкт на основі веб-даних BattleBots. Канал Tech With Tim показує на практичному прикладі, як із цього зробити складну, але цілком реалістичну AI‑систему прогнозування боїв роботів.
![]()
Умови челенджу: дані, код і квиток до Вегаса
Суть конкурсу доволі пряма: потрібно створити девелоперський проєкт, який:
- використовує інфраструктуру Bright Data;
- збирає й аналізує дані, пов’язані з BattleBots (офіційні сайти, вікі, турнірні таблиці, фанатські майданчики тощо);
- публічно задеплоєний (будь-де — від власного хостингу до Vercel);
- позначений потрібним хештегом, після чого робота подається через форму.
Приз — VIP‑вікенд BattleBots у Лас-Вегасі: переліт і готель для двох, квитки на фінал чи півфінал, доступ у закулісні «піт-зони» та додаткові бонуси.
Журі оцінює:
- чіткість і креативність ідеї;
- технічну реалізацію;
- практичний вплив (навіть якщо він локальний — для фанатської спільноти);
- публічність і видимість проєкту.
На сторінці конкурсу вже є приклади проєктів спільноти, зокрема BattleBots Hub — повноцінний портал з рейтингами роботів, AI‑симулятором боїв, пошуком по даних та агрегуванням Reddit-коментарів.
Як побудувати AI‑прогнозатор боїв BattleBots
Один із показових прикладів — веб-додаток «BattleBots AI Fight Predictor». Це типова конкурсна робота рівня «вище середнього», яка демонструє можливості стека Bright Data + векторна БД + LLM.
Що робить застосунок
- Дозволяє обрати двох роботів (з ~24–25 доступних).
- Після запуску прогнозу:
- підтягує статистику по кожному боту (перемоги, поразки, серії, історія матчів);
- додає фанатський сентимент із Reddit;
- проганяє дані через модель GPT 5.4;
- повертає:
- імовірність перемоги кожного робота у відсотках;
- пояснення рішення: ключові фактори, «наративний» розбір бою, факти й уривки з даних;
- зведену статистику та витягнуті з векторної БД фрагменти.
Фронтенд — React-додаток із живою «таймлайновою» панеллю, де в реальному часі видно, які саме запити виконуються: збір статистики, матчів, сентименту, звернення до моделі тощо.
Що в ньому особливо важливо для конкурсу
- Комбінування «сухої» статистики й фанатського сентименту. Не тільки рахунок перемог/поразок, а й сприйняття зброї, стилю бою, конкретних матчапів.
- Повний прозорий ланцюжок: від сирих даних до пояснюваного AI‑висновку.
- Форматована відповідь від LLM. Модель повертає результат у заданій схемі (переможець, впевненість, метод, ключові фактори тощо), що дозволяє побудувати чистий та керований інтерфейс.
Дані, скрейпінг і векторна база: як це зібрано технічно
Щоб передбачати результат бою, системі потрібен масив структурованих даних — і тут починається справжня технічна робота.
Збір даних: Bright Data як «антибот»
Спершу потрібно зібрати:
- список усіх роботів BattleBots;
- офіційну статистику: рекорди, історію матчів, турнірні таблиці;
- додаткові дані з фанатських джерел (Reddit тощо);
- структуровану інформацію з вікі та профільних сайтів.
Скрейпінг звичайними засобами (Playwright, Puppeteer, кастомні скрипти) швидко впирається в:
- ліміти запитів;
- блокування за IP;
- CAPTCHA;
- антибот-захист.
Вихід — використання Web Unlocker API від Bright Data:
- сервіс ховає скрейпер за великою мережею проксі;
- дозволяє паралельно сканувати сотні сторінок;
- повертає вже розблокований HTML, готовий до парсингу.
Типовий підхід:
- У дашборді Bright Data створюється веб-доступ із типом Web Unlocker.
- Генерується API‑ключ і базовий приклад запиту (curl).
- На цій основі пишеться клієнт (наприклад, на Python), який:
- приймає URL потрібної сторінки;
- відправляє його на Web Unlocker;
- отримує HTML-відповідь;
- передає її парсеру (для виділення ботів, матчів, статистики, тредів із Reddit).
Зокрема, таким чином збираються:
- карти профілів усіх ботів із вікі;
- історії поєдинків із зазначенням переможців, нічиїх, сезонів;
- гілки обговорень на Reddit із фанатськими коментарями.
Після цього сирі дані потрібно розібрати й нормалізувати: окремі таблиці для ботів, матчів, коментарів, тредів, сезону, параметрів зброї тощо.
Векторизація: як зробити дані придатними для LLM
Обсяг інформації надто великий, щоб цілком передавати його у вікно контексту моделі. Рішення — векторна база даних:
- Кожен фрагмент тексту (наприклад, опис бою, абзац з вікі, група коментарів) перетворюється на вектор за допомогою OpenAI Embeddings.
- Ці вектори зберігаються у векторній БД разом із метаданими:
- ім’я робота;
- тип даних (матч, опис, сентимент тощо);
- посилання на джерело.
Векторна база дає змогу:
- виконувати пошук за схожістю змісту, а не простим збігом рядків;
- швидко знаходити всі фрагменти, пов’язані з конкретним роботом або типовою ситуацією.
Коли користувач запускає симуляцію, застосунок:
- Обирає два імена ботів.
- Формує запит до векторної БД:
- витягнути всі релевантні дані про першого робота;
- те саме — про другого;
- за потрібності — загальні тренди з турніру/сезону.
- Отримані «чекпоінти» даних передає в модель як контекст.
Цей підхід має назву RAG (Retrieval Augmented Generation): модель не «вигадує» факти, а доповнюється актуальними структурованими даними з бази.
Промпт і відповідь: як навчити LLM поводитися як аналітика
Наступний крок — побудова промпту, який перетворює LLM на умовного «аналітика боїв BattleBots».
У промпті задаються:
- роль: експерт із BattleBots із «глибокими знаннями»;
- завдання: на основі переданих даних оцінити шанси двох роботів у гіпотетичному поєдинку;
- вимоги до відповіді:
- вказати переможця;
- надати відсотковий рівень впевненості;
- розписати ключові фактори (зброя, історія матчів, стиль бою, фанатський сентимент);
- викласти «наративний» розбір поєдинку.
Окремо задається схема відповіді — структурований формат, наприклад JSON із полями:
winnerconfidencemethodkey_factors- інші деталізовані поля для пояснень.
Це дозволяє фронтенду не «вгадувати», що повернула AI‑модель, а чітко мапити дані на елементи інтерфейсу.
Для чого це все розробнику
BattleBots-челендж — показовий кейс того, як сучасні інструменти дозволяють:
- об’єднати веб-скрейпінг, проксі-інфраструктуру та AI в одному проєкті;
- пропрацювати повний пайплайн даних — від HTML-сторінок і Reddit-коментарів до структурованого AI‑прогнозу;
- потренуватися у створенні прозорих, пояснюваних AI‑систем, які не просто видають відповідь, а деталізують, на чому вона базується.
Навіть якщо приз поїде до когось іншого, результатом лишається готовий публічний проєкт — відмінна демонстрація навичок роботи з даними, AI та сучасним веб-стеком.


