Собрали в одном месте самые важные ссылкии сделали Тренажер IT-инцидентов для DevOps/SRE
Я живу один, и обычно знаю, кто может быть у меня дома. Но во время отъезда в голову иногда лезут неприятные мысли. «А вдруг кто-то всё-таки заходил, пока меня не было?». Это мог быть сосед, родственник или мастер, но без камеры остаётся только гадать.И захотелось закрыть этот вопрос одним простеньким скриптом. Камера видит человека у двери, а в Telegram приходит сообщение и кадр. В процессе немного перестарался.
Главная инженерная задача здесь — превратить поток неструктурированного текста из сотен телеграм-каналов в события, с которыми может работать остальная система: определить тип события, место, краткое описание, убрать дубли и понять, кому именно его нужно отправить.Мы изначально строили систему без постоянной ручной модерации. События появляются круглосуточно, поэтому ручная проверка плохо масштабируется. Часть работы выполняет LLM-конвейер, часть — пользователи, которые могут сами сообщать о событиях и проверять сообщения друг друга.
Краны, экскаваторы, самосвалы, погрузчики — достаточно редко увидишь такую технику на дорогах общего пользования. Эта техника не ездит по расписанию, а «скачет» между объектами в окрестностях города. Цена плохого решения в распределении такой спецтехники считается не минутами простоя, а сотнями тысяч рублей на перегонах и упущенными возможностями по заказам.Разберём, как с помощью точных методов мат. моделирования (MIP, CP-SAT) собрать систему распределения парка по заказам
В этот раз у нас получилось очередное приключение на 20 минут. Изначально мы не планировали делать прямо большой релиз, но как обычно одно потянуло за собой другое, в процессе мы нашли много новых источников данных и получился прямо полноценный релиз: Что вошло в релиз?
Первый вариант системы выглядел вполне стандартно: документы разбиваются на фрагменты, для них считаются embeddings, пользователь задаёт вопрос, несколько наиболее подходящих фрагментов отправляются в LLM вместе с запросом.
В статье расскажу, как мы построили AI‑QA‑агента, который проходит тест‑кейсы так же, как это делает человек: запускает приложение на симуляторе, выполняет сценарий шаг за шагом, анализирует экраны с помощью VLM и автоматически сравнивает ожидаемый результат с фактическим.Идея родилась из бытовой боли. В нашем мобильном приложении десятки тысяч тест‑кейсов, регресс проводится дважды в месяц, и каждый цикл съедает значительную часть ресурсов QA‑команд. Во время регресса QA фактически недоступны для остальных задач. А с учетом санкционных ограничений окна для релизов ограничены и цена пропущенного дефекта возрастает: следующий шанс исправить может появиться не скоро.Примерно в то же время я заканчивал задачи с VLM для Умной камеры и плотно общался с командой VLM Core — ребятами, которые развивают инфраструктуру мультимодальных моделей внутри банка. Вопрос напрашивался сам собой: а что если агент на базе VLM сможет выполнять эти проверки вместо людей?
Написал ядро статического анализа для детекта IDOR-уязвимостей в Python-коде. Вместо поиска подозрительных конструкций и ключевых слов оно отслеживает путь от подконтрольного пользователю идентификатора до объекта и проверяет, была ли выполнена авторизация именно для этого объекта. В статье разберу архитектуру ядра, taint-анализ, логику детекта и покажу, как всё это работает на реальном коде.
Короткая версия: за несколько месяцев на одной домашней видеокарте у крымскотатарского языка появились работающее распознавание речи (WER 0.3463 → 0.1701) и синтез, который прочитал вслух целую книгу — шестнадцать глав, 1 час 58 минут звучания. На обучение моделей из этого ушли часы. Всё остальное время съели данные, проверки и выяснение того, какие из моих собственных измерений врут.
Документация устаревает быстрее, чем код успевает писаться? Рассказываем, как мы построили конвейер из Python-скриптов и нейросетей, который сам находит изменения в PHP-контроллерах и обновляет документацию API Invapi.
Статья рассчитана как на людей, близких к IT и ИБ, так и на тех, кто далек от этих областей. Автор постарался подробно разобрать каждый шаг: почему было принято то или иное решение, на какие признаки он опирался и где искать дополнительную информацию по теме.Итак, в этой статье взламываем уязвимую машину Messenger, а точнее — проводим эксплуатацию цепочки из двух базовых уязвимостей и реализацию двух бизнес-рисков:
Моя основная работа на распределительном центре — выдача и приём ТСД. Формально автоматизация этого процесса в мои обязанности не входила. Но когда я увидел, как устроена выдача оборудования, решил попробовать самостоятельно изменить процесс — получить практический опыт в автоматизации и оптимизации складских операций.В итоге от нескольких простых изменений я пришёл к полноценному приложению, которое позволило автоматизировать идентификацию сотрудников и выдачу оборудования. Кстати, приложение абсолютно бесплатно, и вы можете его использовать на своём складе или предприятии.
Я прогнал топ VRAM-калькуляторов из выдачи Google, показал на скриншотах, где ломается каждый (даже лучший), сверил числа с живым vLLM на A100/H100 — расхождение ~1% — и собрал ridgepoint: калькулятор, который считает как движок, а не как учебник. Ставится локально (pip install ridgepoint), GPU не нужен. Сколько реально влезет
Рассказываем, как мы автоматизировали перевод технической документации и построили отдельный слой вокруг LLM, который выполнял главную работу.
Один settings.py удобен только в начале проекта. Когда появляются несколько окружений, Celery, Redis, внешние API и объектное хранилище, настройки быстро превращаются в источник скрытых ошибок. Разбираю практическую структуру django-split-settings: без магии, неявных переключений и случайного запуска с production-конфигурацией.
Поднял Recall@5 поиска по памяти на 17%, померил качество самих ответов и получил прирост, неотличимый от шума: тест Макнемара, p = 0.79. Месяц работы впустую. Потом посмотрел в промпт, поправил там одну формулировку и получил плюс 16 процентных пунктов за вечер. Модель отказывалась отвечать, когда ответ лежал прямо перед ней.Внутри: как собрать свой набор проверочных вопросов и не обмануться, почему параметры BM25 из статей проиграли подобранным перебором, и какие шесть приёмов не сработали вообще.
После покупки ExeGate LLB-3000 выяснилось, что работать с PowerManagerII с клавиатуры и на слух неудобно. Вместе с Codex я разработал дополнение: разобрали графические кнопки, наладили навигацию, добавили текстовые показания и проверили управление. Рассказываю, как устроено решение и что в этой работе делал я.
Тикет пришёл от разработчика, который писал импорт учёток из старой системы. Формулировка была такая: «кажется, у нас ломается верификация, но ломается она в плюс — подходят пароли, которых не было».Ломалось не у него. Так работает bcrypt, и работает уже двадцать семь лет.
В наши дни все, кому было интересно, уже попробовали RAG, я в том числе. И стандартная схема тривиальна: цепляем LangChain, три импорта, .from_documents() — и бот с базой знаний готов. Мой первый опыт был такой же, и это даже заработало за один вечер.Но как это поддерживать? А что случится, если всё полетит?Пять слоёв абстракции, и я без понятия, что происходит на любом из них. Поэтому я решил повторить свой эксперимент с контейнерами: отбросил все слои и переписал вручную на Python.
В прошлой статье я разбирал флот из тридцати трёх ИИ-агентов и в разделе про энергетику упомянул вскользь: чертёж там рисуется одной функцией сразу в двух форматах.
Год назад я написал статью «Переводим fb2 книжки, с нейронками, для себя» — про то, как собрал на паре Tesla P40 в гараже программу Sunny Narrator («Солнечный сказочник»), которая переводит художественные книги через локальные и облачные LLM. Тогда это был скорее прототип «доказать себе, что так можно»: черновики читались с головной болью, книга в тысячу страниц переводилась два дня, а электричество, отключённое посреди процесса, стоило ещё двух.За год программа доехала до версии 2.1,