Обновить
256K+

Python *

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

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

Как я написал систему мониторинга диабета на Django для своей дочери. От жизненной проблемы до архитектуры решения

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

Осенью 2024 года я не планировал начинать новый проект. Тем более связанный с медициной.

После тяжёлой пневмонии дочери врач назначил контрольный анализ крови. Среди стандартных показателей оказался анализ на уровень глюкозы. Именно он впервые показал проблему.

Вскоре нас направили в детскую больницу, где после обследования поставили диагноз — сахарный диабет первого типа.

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

Параллельно с этим я заканчивал курс Python в Яндекс Практикуме. Днём — работа, вечером — обучение, ночью — медицинские статьи и клинические рекомендации. Не самый простой период, но именно тогда и появилась идея проекта, о котором пойдёт речь дальше.

Читать далее

Как мы строим корпоративную экзаменационную платформу с AI: архитектура, дубли, мульти-tenant и продовые шишки

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

Привет, Хабр.

Хочу рассказать про наш проект Exam AI — внутреннюю платформу для аттестации и тренировки сотрудников.
Это не “ещё один тестик на 20 вопросов”, а система, где:

Читать далее

Поговорим о градиентном бустинге

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

Градиентный бустинг часто воспринимают как «ещё один алгоритм из sklearn», но за ним стоит простая и сильная идея: модель не пытается сразу угадать правильный ответ, а шаг за шагом исправляет собственные ошибки.

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

Читать далее

Как голосовой ИИ-агент врал клиентам, путал звонящих и подделывал собственный голос — и как это чинится

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

За три месяца наш голосовой ИИ-агент успел соврать клиенту про несуществующего администратора, принять всех звонящих за одного человека и месяц выдавать обычный синтез за "клонированный голос". Разбираю, почему это лечится структурой кода, а не промптом — на полностью российском стеке.

Читать далее

import-linter: пусть границы слоёв сторожит машина, а не человек

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

Обычный летний день на проекте: ruff зелёный, mypy зелёный, тесты проходят. А domain при этом тихо импортирует adapters. Слоистая архитектура, которую рисовали на старте, теперь осталась только на схеме.

Линтер ловит неиспользуемый импорт и кривой отступ. Типизатор - что вместо int передали str. А то, что бизнес-логика потащила в себя SQLAlchemy или Redis, не видит никто. Кроме ревьюера, у которого в пятницу вечером открыто восемь PR.

Ниже - как отдать эту проверку машине. Инструмент называется import-linter, ставится за пять минут и встаёт в один ряд с ruff и mypy.

Читать далее

Почему мы отказались от «AI в каждой кнопке» и зато встроили AES-GCM в детское приложение

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

Почему мы отказались от «AI в каждой кнопке» и зато встроили AES-GCM в детское приложение

Откуда вообще взялось MIO

MIO — это история про собственные родительские потребности, с которыми сталкиваешься, когда ребёнку исполняется 5 лет.

Family Vault - Ключи и envelope - E2E и что внутри

Наш осознанный шаг к безопасности. Для всех, без подписки и дополнительных оплат. Мы не говорим про конкурентное преимущество — мы говорим о важности оставаться уверенным, что твои данные не утекут.

Читать далее

Как я устал от CVAT и в соло написал десктопный инструмент для авторазметки датасетов на PyQt5

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

Надоело разворачивать CVAT через докер и мириться с лагами браузера? Я расскажу свою историю, как от простецкого аннотатора собранного на коленке написал мощную легковесную отечественную альтернативу на PyQt5 и OpenGl, с пакетной авторазметкой и иерархией классов.

Читать далее

Как мы делали VPN под Китай

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

Мы с другом учимся в Китае. В апреле, в очередной раз меняя умерший VPN, решили собрать свой, заточенный под Great Firewall, на протоколе Reality: VPN‑трафик в нём выглядит для системы фильтрации как обычная HTTPS‑сессия с каким‑нибудь сторонним сайтом. Я взял на себя бэкенд, бота и Mini App. Друг отвечал за серверную часть и ноды.

Ниже — про два месяца разработки, три версии интерфейса и отказ от целой механики из‑за банков.

Читать далее

Современный MQTT-сервис на Python

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

В Python при выборе библиотеки для работы с MQTT почти всегда приходишь к paho-mqtt. Это зрелый и самый популярный клиент, но его API построен на колбэках, а современное Python-приложение живёт в asyncio: FastAPI, фоновые воркеры, асинхронные клиенты и всё это в одном общем event loop.

В одном из IoT-проектов я столкнулся ровно с этим. Мне нужен был MQTT-клиент, который без сложной адаптации встраивается в асинхронное приложение и позволяет работать с подписками как с управляемыми объектами, а не через набор колбэков.

Читать далее

Как подключить таск-трекер к кодовой базе через RAG и не сойти с ума от стоимости токенов

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

Главная проблема работы с LLM в реальном проекте — не качество модели, а контекст. Рассказываю, как с помощью RAG-индекса репозитория (векторы + граф вызовов) и плагина для Claude Code автоматически собирать правильный контекст по задаче из трекера — без ручного сбора и лишних токенов.

Читать далее

Сдерживаем полет фантазии LLM в киносервисе

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

Привет, меня зовут Никита, я — ИИ-энтузиаст и люблю кино. Я собрал Movie Planner — сервис для ведения базы кино с друзьями, планирования просмотров и трекинга сериалов. Работает как мобильное приложение, также есть формат веб-кабинета на movie-planner.ru

Мы используем искусственный интеллект в нашем сервисе, и про него я как раз хочу рассказать: полгода назад я начал открывать для себя его возможности, и с тех пор исследую всё новое и новые способы применения, экспериментирую с мультиагентными системами и ищу, как интересно можно применить нейросети. Так как я изучаю всё методом проб и ошибок, путь тернист, и если вы захотите поделиться вашим взглядом или идеями, буду рад их услышать!

Узнать подробнее

Django-кнопка «Наверх»: подключить за минуту вместо очередного велосипеда

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

Кнопка «Наверх» — вещь настолько простая, что обычно её делают прямо в проекте: ссылка, немного CSS, пара строк JavaScript — готово.

Для одной страницы это нормально. Но потом проект растёт. Появляется мобильная версия, cookie-баннер, чат в углу, требования к контрасту, строгий CSP. Где-то нужно добавить кнопку ещё и в Django Admin. И тот самый маленький кусок кода начинает жить своей жизнью.

Такой модуль нужен давно: кнопка «Наверх» встречается на множестве сайтов, но в Django-проектах её по-прежнему часто собирают вручную — каждый раз немного по-своему.

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

Так появился django-scroll-to-top.

Читать далее

ContentCombine: как я сделал мультинишевый контент-комбайн и запустил ежедневный SEO-дайджест

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

Я сделал ContentCombine — мультинишевый контент-комбайн, который собирает материалы из RSS, Telegram, сайтов и других источников, нормализует их, считает скор, склеивает повторы в сюжеты, отделяет кейсы от шума и готовит ежедневный дайджест. Сначала движок работал на игровых новостях, потом я перенёс его на SEO и AI — без переписывания ядра, но с кучей неожиданных граблей: entity blobs, старые статьи под видом свежих, молчащие фиды, ложные тренды и LLM-недетерминизм в проде.

Читать далее

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

Как агент сам откроет дверь хакеру? Разбираю три реальных пробоя AI-агентов и почему обычный ред-тиминг их не найдёт

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

В 2026 году основной поверхностью атак становятся уже не сами LLM, а AI-агенты с инструментами, памятью и доступом к внешним сервисам.

Я добавил в свой open-source сканер BarkingDog режим тестирования Agentic AI и проверил три популярных open-source проекта: Agno, OpenAI CS Agents Demo и LangGraph agent-service-toolkit.

В результате получил три разных класса проблем: Confused Deputy (ASI03), Trust Exploitation (ASI08) и Agentic DoS (ASI06). В статье разбираю реальные пейлоады, ответы агентов, архитектурные причины этих уязвимостей.

Читать далее

Расчёт электрических цепей. Вторая часть

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

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

Читать далее

Граф кода одной командой: ставим graphlens-mcp в проект и перестаём жечь токены на grep

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

Третья часть серии. В первой я разбирал сам движок graphlens — что он делает и как устроен внутри. Во второй гонял бенчмарк на 936 прогонов и смотрел, где граф реально окупается, а где проще остаться с grep. Здесь — про то, что осталось за кадром в обеих частях: движок это ещё не инструмент, и чтобы подключить его к агенту, поверх нужно дописать прилично кода. Вот этот код я и собрал в отдельный продукт. graphlens-mcp ставится одной командой, дальше работает сам. Он в alpha, бесплатный (MIT), и прогнать его на своём проекте можно минут за пять.

Читать далее

Я устал писать одноразовые скрипты для бенчмарков LLM и собрал харнесс, который сам считает Pareto-front

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

Неважно, где ты гоняешь инференс: в проде на vLLM под нагрузкой или в локалке на llama.cpp, пытаясь втиснуть Llama-3 в 4 ГБ видеопамяти — вопрос всегда один. Какая конфигурация влезет в бюджет по VRAM и при этом не уронит p95?

В статье рассказываю про разработанный харнесс, который берет эту рутину на себя и честно сравнивает бэкенды. Разбираем реальные грабли локального и прод-инференса.

Читать далее

Статический Арбитраж с нуля: как без навыков программирования написать бота и зарабатывать на неэффективностях рынка

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

Арбитраж — это заработок на временных расхождениях цен связанных активов. Разберём стратегию Pairs Trading на фьючерсах природного газа: найдем пару, проведем бэктест и запустим живого торгового бота — без глубоких знаний программирования, с помощью ИИ-агентов Cursor, OpenClaw и Claude Code. Пошаговый гайд с промптами и результатами.

Читать далее

Python: интересные развлечения со змеей

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

На этот раз у нас известный язык программирования Python, c двумя стилизованными змеями на логотипе, интересные и необычные развлечения с которым были собраны в этой замечательной статье.

Читать далее

Облачная LLM на 16 ГБ VRAM — часть 3: ChatGPT-интерфейс для ваших LangGraph-агентов

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

Финал цикла про облачную LLM на 16 ГБ VRAM.

За две предыдущие статьи мы подняли собственную локальную модель на облачном сервере с GPU на 16 ГБ VRAM, разобрались с vLLM и tool calling, собрали агентный бэкенд на LangGraph с MCP-серверами, получили вокруг него полноценный REST API из коробки и обернули все это в FastAPI-сервис через LangGraph SDK.

В этой части закрываем полный стек: к готовому агентному бэкенду на LangGraph подключаем официальный ChatGPT-подобный фронтенд от LangChain — agent-chat-ui. Переводим на русский, добавляем переключатель между тремя агентами разной архитектуры и удаление чатов. Закрываем API Bearer-авторизацией с разбором нюансов, которых нет в документации. Деплоим всё на VPS с доменом и SSL — LangGraph внутри контура, наружу смотрит только фронт.

Читать далее