Обновить
512K+

Python *

Высокоуровневый язык программирования

571,1
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

UAV Human Detector

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели8.2K

В статье рассматривается один из компонентов системы управления БЛА для поисково-спасательных работ — обнаружение людей на изображениях с бортовой камеры. Описан процесс выбора датасета, подготовки данных, обучения модели YOLOv8 и оценки её качества на тестовой выборке. Также приведены полученные метрики, примеры работы модели и обсуждаются возможные направления дальнейшего повышения точности обнаружения людей.

Читать далее

AI-интегратор: профессия, которой нет в учебнике — я собрал её руками на n8n

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели10K

Меня зовут Даниил. Я разработчик интеграций — до этого Kafka, REST, highload. В 2024–2025 мне первый раз поставили задачу, которую HR называет по‑разному: AI automationn8n integratorapplied AI engineer. Я называю это AI‑интегратор: человек, который собирает бизнес‑процесс из событий, API и LLM — в основном без классического релиза, на no‑code/low‑code оркестраторе.

Я не ML‑инженер. Я не prompt‑инженер в вакууме. Я впервые поднял и довёл до рабочего состояния self‑hosted n8n с LLM внутри pipeline: событие приходит → модель что‑то понимает → данные улетают в Google Sheets, Telegram, amoCRM / Bitrix24.

Читать далее

Как заставить ИИ играть по правилам ролевой системы: архитектура авторитарного бэкенда для AI RPG

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели9.4K

Сделать текстовую игру на базе LLM легко, если вас устраивает бесконечный неконтролируемый чат, который ломается через 30 ходов из-за модельного дрейфа и амнезии. Сделать полноценную RPG с детерминированными механиками, инвентарём, картой-графом и пермадезом — инженерная задача.

Ниже — подробный разбор архитектурных решений, юнит-экономики, борьбы с гонками данных и инфраструктурных грабель, собранных при разработке проекта «Стирая Грань» (Beyond The Verge) — полностью русскоязычной AI RPG на стеке FastAPI + PostgreSQL/pgvector + Flutter Web.

Читать далее

Ранжируем треки с помощью TRIBE и RBF

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели6.3K

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

Читать далее

Трансформер в on-premise AppSec: как мы встроили ML-модель для классификации секретов в продукт без GPU

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели6.6K

Рассказываем, как мы интегрировали CodeBERT-based модель классификации секретов в production-продукт с жёсткими ограничениями по железу, сократив время инференса с 320 до 90 секунд и размер модели с ~600 до ~130 МБ — без дискретных ускорителей и тяжёлых зависимостей.

Читать далее

Заброшенные репозитории на GitHub. Какие языки теряют разработчиков и когда код перестают обновлять

Уровень сложностиСредний
Время на прочтение18 мин
Охват и читатели12K

GitHub постепенно превращается в кладбище старого кода. Мы сравнили тысячи репозиториев и посмотрели, какие языки быстрее теряют активность, а где экосистема всё ещё растёт.

Читать далее

Энтропия, которая измеряет порядок: IH-анализ находит закономерности в разнотипных данных

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели7.1K

Обычно энтропия — мера хаоса. Но наш сегодняшний герой — IH-анализ (Information-Entropy analysis) — вычисляет информационную энтропию, чтобы измерить обратное: степень детерминированности связи между признаками и целевой переменной. Мы будем вычислять: насколько утверждение «если А, то Б, и, если не А, то и не Б» выполняется в наших данных устойчиво. Одновременная работа с категориальными и количественными признаками нас не затруднит.

Читать далее

Приручаем недетерминизм агентных систем

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели6.4K

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

Event Sourcing — паттерн, где состояние не снапшот, а иммутабельный лог событий. Недетерминизм он не убирает, но даёт инструменты для работы с ним.

Читать далее

Фотограмметрическая поворотка на Arduino за 2500 рублей

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели19K

Ко мне на кафедре обратились двое старшекурсников. Они пишут программу для археологов: пользователь фотографирует, что нашел, программа лезет в модель (которая натренирована на исторические архивах) и возвращает карту вероятностей, где поблизости могут лежать неметаллические артефакты, которые металлоискатель не ловит. Дерево, керамика, кость, ткань и тд. Для обучения модели им нужен был большой датасет фотографий находок времен WW2 (значки, гильзы, медали, фрагменты обмундирования) под разными углами и наклонами.

Они прикинули два варианта: либо снимать каждый предмет вручную с разных ракурсов, перетаскивая штатив или поворачивая объект пальцами, либо сначала вылепить 3D-модель каждого артефакта вручную и потом программно крутить её в виртуальной сцене под разным светом, рендеря оттуда кадры для датасета. По обоим выходило пара месяцев работы.

Я предложил собрать автоматическую поворотку. Спроектировал, напечатал, написал прошивку и питоновский скрипт. Сразу не заработало, переделал пару дней. К ночи рабочей версии я сидел за столом и каждые 12 минут жал ресет на Arduino, меняя предмет на платформе. К утру датасет был готов.

Читать далее

Как мы укротили сложный процесс с помощью CQRS и стейт-машин

Уровень сложностиСложный
Время на прочтение8 мин
Охват и читатели10K

Привет, Хабр! Меня зовут Никита, я являюсь разработчиком в направлении SSL инфраструктурной команды биллинга в Timeweb Cloud. Сегодня я хочу рассказать, как мы наводили порядок в коде одного из наших микросервисов, почему отказались от лапши в контроллерах, и главное — почему мы решили выложить наш внутренний архитектурный фреймворк в Open Source. Если вы пишете на Python и хоть раз сталкивались с болью распределенных транзакций, отваливающихся внешних API и проблемой dual-write (двойной записи) — присаживайтесь поудобнее. Речь пойдет про наш open-source фреймворк python-cqrs (он же доступен на PyPI).

Читать далее

Разработка на Python: когда много думать = вредить проекту

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели8.8K

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

Если и у вас есть желание написать какую-нибудь сложную абстракцию «на будущее» или применить новый паттерн просто потому, что вы его выучили — остановитесь на секунду.

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

Читать далее

Байты, нибблы, и подсветка: пишем свой TUI hex-редактор на Python

Уровень сложностиСложный
Время на прочтение36 мин
Охват и читатели12K

В жизни каждого разработчика иногда приходится рассматривать бинарные файлы через специальные HEX-редакторы.

Мы открываем его, видим три колонки цифр и букв, и кажется что все предельно ясно-понятно. Но почему адреса считаются шестнадцатеричными, что такое ниббл и зачем он вообще нужен? В этой статье мы не просто напишем свой hex-редактор на Python — мы разберем, как он устроен, от битового представления до цветовой подсветки. Выясним, чем подсветка по нибблам отличается от подсветки по категориям байтов, и почему градиенты в hex-дампе — это не просто украшение, а рабочий инструмент.

Также мы изучим, какие практики и паттерны используются при написании редактора — от mmap для чтения файла до интерпретации байтов.

Будет и код, и архитектура, и результат, и практика.

Читать далее

predict_proba выдаёт 0.9 — но это не вероятность 90%

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели7.3K

В ML легко перепутать аккуратное число с честной вероятностью: модель выдаёт predict_proba = 0.9, и кажется, что событие произойдёт в 90% случаев. Но это не всегда так.

В статье разбираем, почему выход модели может быть просто внутренней оценкой уверенности, чем калибровка отличается от AUC, как увидеть смещение через reliability diagram и Brier score — и когда вероятности нужно обязательно калибровать, прежде чем использовать их в бизнес‑решениях.

Читать далее

Ближайшие события

Новинка: Прикладные API для искусственного интеллекта и Data Science

Время на прочтение4 мин
Охват и читатели9.6K

В течение последних двух лет мы проделали большую работу по изданию неустаревающих книг, связанных с проектированием и развитием API. Как известно, сам вопрос «Что такое API?» довольно многогранен, и в своё время на Хабре развёрнутый ответ на него дала одна из наших топовых авторов Ольга Назина @Molechka — к настоящему моменту её статья собрала почти 1 350 000 просмотров и 1555 закладок. Книги Ольги Назиной не относятся к этой статье напрямую, но, если вы их ещё не читали, рекомендуем посмотреть все четыре. Будем исходить из того, что API — это предоставляемый программой интерфейс‑контракт, в котором заложены правила взаимодействия с ней, в частности, форматы принимаемых и выдаваемых данных. Нашим главным бестселлером в этой области является книга «Проектирование архитектуры API: Как правильно проектировать, развивать и эксплуатировать API» (вышла на русском языке в июне 2024 года), написанная великим Джеймсом Гофом в соавторстве с Дэниэлом Брайантом и Мэтью Оберном, а также ещё три крутые книги:

— «API как искусство: разработка, поддержка, интеграция» Сергея Константинова (вышла в мае 2024 года)
— «Архитектура бэкенда. API для надежных корпоративных приложений» Владислава Светлакова (вышла в августе 2025 года)
— «Web API. Сборник рецептов: Повысьте уровень JavaScript‑приложений» Джо Аттарди (вышла в сентябре 2025 года).

На этой в продаже появилась следующая книга, наполняющая эту нишу: «Прикладные API для искусственного интеллекта и Data Science» Райана Дэя — оригинал вышел в издательстве «O'Reilly“ в апреле 2025 года. Эта весьма оригинальная книга исследует работу с библиотеками Python и в качестве сквозного проекта рассматривает фэнтези‑футбол. Для нас это первый опыт издания книги с серьёзным включением FastAPI, но в перспективе мы не теряем надежд издать и исходно русскоязычную книгу об этом фреймворке.

Читать далее

Как за один вечер я написал сервис инвентаризации оргтехники для филиальной сети из 16 локаций

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели7.9K

Знакомая работает в IT-департаменте организации с 16 филиалами и ~5000 единиц оргтехники на балансе. Попросила: “Сделай сервис, чтобы загрузить фотку шильдика, и он сказал, у кого эта железка стоит”. Звучит просто. На практике это вылилось в production-сервис с распознаванием по фото через Claude vision, ETL из бухгалтерских .xls (привет, xlrd 1.2), нормализацией грязных инвентарных номеров и автопушем в Google Sheets. Рассказываю про все грабли — от deadlock pandas vs xlrd до бага, который считал две разные железки одной

Читать далее

Ускоряем и оптимизируем numpy, pandas, scipy и sklearn

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели13K

С момента публикации статьи на Хабре «Импортозамещаем numpy, pandas, scipy и sklearn» прошло почти три года. В течение этого времени я приостановил работу над проектом из-за нехватки времени, ресурсов и сил. К тому же, меня расстроило, что не смог выполнить просьбу пользователя @N-Cube, который активно интересовался моей библиотекой и хотел ускорить работу своего Jupyter Notebook.

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

За это время в библиотеки были добавлены поддержка CUDA, множество ручных SIMD-оптимизаций с динамическим выбором SIMD, несколько реализаций линейной регрессии и многое другое.

Давайте рассмотрим, что на сегодняшний день позволяет сделать моя библиотека.

Я представлю несколько тестовых примеров в двух вариантах: с использованием AVX-2 на процессоре Intel® Core™ i7-4790K и AVX-512 на Intel® Xeon. Также покажу результаты замеров для каждого из них. Все тесты проводились без использования GPU, исключительно на процессоре. Это позволяет сравнивать производительность Python и моей библиотеки на равных условиях. Операционная система – Ubuntu 24.04, компилятор – GNU 13.3.0.

Читать далее

Как я делаю DIY-контроллер для ПК: громкость, приложения, MIDI, OBS

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели14K

В 2024 году я не знал ничего про Arduino и Python. Но за неделю собрал на макетке рабочий прототип для управления музыкой, при помощи сил ИИ и интернета. На этом я не остановился и решил получить очень ценный опыт в разработке, сделав настоящий контроллер!

Что было дальше...

Миграция микросервисов на Python с помощью LLM: экономим месяцы для разработчиков

Время на прочтение6 мин
Охват и читатели9.6K

Привет, Хабр! Меня зовут Михаил, в Циане я занимаюсь развитием культуры и developer experience. Архитектура у нас микросервисная, за каждый микросервис отвечает конкретная команда. В любой команде обычно есть микросервисы, которые помогают ей достигать собственных целей, и микросервисы, которые достались по наследству — поскольку архитектура наша не всегда развивалась достаточно последовательно. Бывает, что сервис приходит с каким-нибудь разработчиком из другой команды. Бывает, что сервис когда-то отдали команде, потому что больше некому было отдать.

Наш бэкенд написан на Python и C#. Иногда в одной команде могут быть микросервисы и на Python, и на C#. Я считаю, что это нНе самый удобный расклад, я считаю: лучше все-таки иметь один стек в рамках одной команды. Если, например, в команде с питонистами и единственным шарпистом последний уходит в отпуск, то при поломке сервиса на C# остальной команде придется этого шарписта ждать. Либо срочно вызывать на подмогу другого шарписта.

Можно переписать все микросервисы на один язык. Довольно трудоемкая задача, если заниматься этим вручную. Разработчику нужно погрузиться в микросервис, максимально покрыть тестами бизнес-логику и аккуратно все переписать. Не забывая, что делать один в один нужно не всегда, поскольку архитектурные паттерны Python и C# различаются.

Для переписывания сервисов разумно привлечь на помощь LLM. Далее я расскажу, как за неделю своей частичной занятости я с помощью LLM переписал сервис, который потребовал бы для этого два месяца от живого специалиста.

Читать далее

Как я научила Telegram-бота наводить порядок в чате с мемами: пересылка по хештегам в соответствующую тему

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели7.4K

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

Читать далее

ГИС для Minecraft. Часть 1

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели9.2K

Minecraft GIS + Google Sheets — отличный инструмент для обучения детей основам работы с данными!

Создаю свою ГИС для Майнкрафта с интеграцией в экосистему Google

Читать далее