Обновить
815.52

Python *

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

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

QTune — open-source решение для быстрого файн-тюнинга моделей

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

Сегодня я хочу рассказать о своем проекте QTune. Это open-source приложение с графическим интерфейсом, которое превращает сложный и требовательный процесс файнтюнинга в понятный и управляемый процесс, доступный каждому. Это не просто набор скриптов, а полноценная студия, охватывающая весь цикл: от создания датасета до запуска готовой модели локально.

Читать далее

Создаем простого грид-бота для Московской биржи через QUIK и Python

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

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

Читать далее

Сказ о том, как мы приложение для падел-тенниса создавали

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

Как‑то раз двое ML‑щиков решили соединить свою любовь к компьютерному зрению и ракеточным видам спорта. Так родилась идея сделать систему видеоаналитики для падел‑тенниса.

Падел — это игра на стыке большого тенниса и сквоша. От сквоша падел взял стеклянные стенки вокруг корта, а от большого тенниса — почти всё остальное.

Читать далее

Мой первый пет‑проект: как я создавал ядро для Telegram‑ботов

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

Я собрал ядро для Telegram‑ботов и описал архитектуру, которая держится на YAML‑сценариях и очереди в БД. Почему отказался от брокера, как экономлю апдейты в базе, как работает «разблокировщик» цепочек и что это даёт в предсказуемости. Показываю решения и компромиссы без «магии».

Читать далее

Хватит тестировать на «кошках»! Разворачиваем циничный API на FastAPI за 5 минут для реальных AQA-задач

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

Привет, Хабр! Меня зовут Ваня, и я AQA-инженер. Как и многие из вас, я занимаюсь обучением будущих покорителей Postman и Pytest. И, как многие из вас, я столкнулся с проблемой: все существующие тестовые API — невыносимо скучные.

Todo-листы, интернет-магазины с товарами Item 1, Item 2, API для управления книгами... Серьезно? После пятого GET /todos начинаешь сомневаться не только в своей карьере, но и в смысле бытия. Данные в них стерильны, как операционная, а сценарии предсказуемы, как сюжет российского сериала.

Моим ученикам было скучно. Мне было скучно. Я понял, что нужен свой API. С блэкджеком и... ну, вы поняли. С API, который будет не просто функциональным, но и забавным. Который захочется «потыкать» просто ради того, чтобы увидеть очередной перл в ответе сервера.

Так родился «Cynical Circle API» — API для тех, кто понял жизнь и устал от ванильных примеров.

(Так выглядит наша интерактивная документация. Уже интригует, не правда ли?)

Читать далее

От консоли к GUI: Как написать игру «Сапёр» на Python с нуля версия GUI (часть вторая)

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

Создайте свою версию легендарного «Сапёра» на Python с графическим интерфейсом. В этом подробном руководстве вы шаг за шагом реализуете полноценную игру: от настройки игрового поля с помощью Tkinter до обработки кликов, управления флагами и интеллектуального открытия клеток. Вы освоите генерацию мин с безопасной зоной, рекурсивное раскрытие пустых областей, систему подсчёта времени и проверку условий победы

Читать далее

Как написать bzip2-архиватор на Python: разбираем преобразование Барроуза-Уилера

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

Привет! Я Рома, бэкендер-питонист в KTS.

Это вторая статья в моем цикле об алгоритме архивации bzip2. Первую можно прочитать здесь, но для понимания сегодняшней темы она необязательна. Ниже я разберу преобразование Барроуза-Уилера — ключевой этап сжатия bzip2.

Читать далее

GPT-4o vs YandexGPT: как мы отлаживали метрики в DeepEval из-за требований ИБ

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

В нашей компании мы занимаемся автоматизацией тестирования и часто сталкиваемся с необходимостью не только разворачивать сложные пайплайны, но и реализовывать метрики, которые действительно помогают выявлять тонкие баги в работе LLM-классификаторов. Есть понятная open-source инфраструктура, привычные инструменты и строгие требования ИБ. Но когда начинаешь сравнивать разные модели-судьи — например, GPT-4o от OpenAI и YandexGPT, — традиционные подходы к валидации и любимые метрики внезапно ведут себя очень по-разному.

В этой статье я расскажу, как обычный процесс локализации метрик для DeepEval вывел нас не только на поиск багов в коде, но и привёл к пересмотру самой логики автоматизированной оценки: почему педантичность одной LLM может “маскировать” ошибки, а прагматичность другой — неожиданно улучшить вашу диагностику. Разберём код живых метрик, покажем, как переход от faithfulness к relevancy помог нам обнаружить и устранить важную логическую уязвимость, и выделим пять универсальных уроков, которые понадобятся каждому, кто автоматизирует оценку LLM не “по учебнику”, а по-настоящему.

Если вам интересен опыт построения эксплуатируемых, не “пластмассовых” метрик для LLM-классификаторов в условиях ограничений ИБ и смешанных инфраструктур (OpenAI + российские модели) — добро пожаловать под кат!

Читать далее

Как экспортировать HTML-таблицы в Excel с помощью Python

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

Экспорт HTML-таблиц в Excel — это распространенная задача в обработке данных, отчетности и автоматизации. Независимо от того, работаете ли вы с данными, полученными с веб-страниц, панелями управления или отчетами на основе HTML, преобразование таблиц в формат Excel может облегчить анализ данных и их обмен.

В этом блоге мы рассмотрим...

Читать далее

Асинхронные тесты для UI и API на Python: примеры, подводные камни и трезвый вывод

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

Асинхронность в тестах выглядит как способ «бесплатно» ускорить прогон: пока один тест ждёт ответа сервера, другой мог бы выполняться. Я переписал UI (Playwright) и API (HTTPX) тесты на async/await, прогнал их в CI/CD и посмотрели на результат. Спойлер: магического ускорения не произошло — разбираемся, почему так и когда асинхронность всё-таки нужна.

Читать далее

Python: Генераторы. Методы send, throw и close

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

Это — обучающая статья, в которой подробно разбирается поведение send, throw и close методов генератора.

Впрочем, для опытных пользователей может быть интересно узнать про:
• нововведение, добавленное в close начиная с Python 3.13
• случай, в котором поведение CPython расходится с The Python Language Reference
• некоторые моменты, описанные в PEP 342 - Coroutines via Enhanced Generators

Всё это вы также найдете в статье.

Читать далее

Автоматическая сортировка файлов на Python: из хаоса в порядок одной командой

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

Привет, Хабр! Думаю, всем знакома ситуация: десятки файлов на рабочем столе, сваленных в единую кучу. Скрины, документы, архивы — и всё в одном рабочем пространстве. Наводить порядок не всегда получается, а жить в беспорядке не очень удобно. Недавно, в процессе наведения порядка, я утомился делать это руками и написал скрипт на Python, который структурирует и раскидает всё по папкам самостоятельно.

Скрипт в статье:

- Автоматически сортирует файлы по 9 категориям
- Поддерживает 50+ форматов файлов
- Предоставляет гибкие настройки

Читать далее

Голос клиента на автомате: разбираем, как анализировать звонки с помощью речевой аналитики и LLM

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

Привет, Хабр! Это Катя Саяпина, менеджер продукта МТС Exolve.

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

Сегодня покажу, как собрать простую систему фонового анализа звонков. Она забирает расшифровки разговоров через API МТС Exolve, отправляет их в GigaChat для обработки, а результаты сохраняет в базу SQLite.

Читать далее

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

XTools-py — универсальные утилиты для Python-разработчиков

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

🚀 XTools-py — универсальные утилиты для Python-разработчиков

Если вы когда-либо писали на Python и ловили себя на мысли «Опять писать парсер конфигурации…» или «Где-то у меня был код кеша, надо найти» — эта библиотека для вас.

XTools-py — это набор мощных и удобных инструментов для Python, которые помогают упростить рутинные задачи и ускорить разработку.
Вместо того чтобы тратить время на повторное изобретение велосипеда, вы получаете готовые и проверенные решения.

✨ Возможности

Find — быстрый поиск и работа с коллекциями данных.

Matrix — операции с матрицами.

Config — удобная работа с JSON, YAML, INI.

Validator — валидация строк, чисел и других типов.

Cache — простой кеш с TTL.

DateTimeUtils — работа с датами и временем.

MathUtils — расширенные математические функции.

ColorUtils — преобразование и обработка цветов.

EncryptionUtils — шифрование и хеширование.

TextUtils — удобные манипуляции с текстом.

UnitConverter — конвертация единиц измерения.

AWS S3 — облачное хранилище (асинхронно/синхронно).

Читать далее

Расширение известного трюка с XOR на миллиарды строк: введение в обратимые фильтры Блума

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

Можно ли применить известный трюк с операцией XOR, используемый для поиска в списках одного или двух пропущенных чисел, сделав так, чтобы он подошёл бы для поиска тысяч отсутствующих идентификаторов в таблицах, содержащих миллионы строк?

Читать далее

Разработка Битрикс-бота: история о том, как документация врала, а облака смеялись

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

Привет, Хабр! (И тебе, случайный читатель, который зашёл сюда просто потому, что заскучал в корпоративном чате.)

Сегодня я расскажу вам историю о том, какая задача посетила меня на этот раз и как я сделал «корпоративного бота с возможностью оценки сотрудников» — казалось бы, простая задача, но…

Читать далее

Решаем задачи международной математической олимпиады у себя на домашнем компьютере

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

Двое ученых из университета Лос-Анжелеса повторили результат OpenAI и Google с золотой медалью IMO, но с помощью обычной публичной Gemini 2.5 Pro.

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

Читать далее

Оптимизация инференса больших языковых моделей: комплексный анализ современных подходов и практических реализаций

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

В процессе разработки RAG-системы для обработки видеоконтента передо мной встала задача генерации качественных описаний для большого объема видео-клипов с использованием мультимодальных языковых моделей. Клипы имели продолжительность около 10 секунд, в отдельных экспериментах мы тестировали материал длиной в несколько десятков секунд. Финальные описания составляли от 300 до 2000 токенов и после генерации разбивались на чанки для индексации в векторной базе данных. При тестировании различных подходов обнаружились значительные различия в скорости и качестве обработки. Компактные модели, работающие с отдельными кадрами изображений (Phi, DeepSeekVL2, Moondream), демонстрировали существенно более высокую скорость по сравнению с моделями полноценной обработки видео, однако качество генерируемых описаний оставляло желать лучшего. Типичный workflow включал конкатенацию описаний отдельных кадров, при этом в DeepSeekVL2 дополнительно использовался system prompt для более интеллигентного объединения результатов анализа кадров. Модели для обработки изображений стабильно укладывались в временные рамки 3-5 секунд на клип, что значительно быстрее требуемого лимита. Полноценные видео-модели, получающие на вход целые видеоклипы, изначально генерировали описания за 30 секунд на vanilla PyTorch. Применение VLLM ускорило процесс до 12-15 секунд, а SGLang позволил достичь целевых 8-10 секунд на клип. Эти временные рамки позволили настроить обработку на кластере из 20 RTX 4090 и сгенерировать около миллиона описаний за месяц для production-системы. Благодаря применению различных техник оптимизации инференса удалось не только достичь поставленных временных целей, но и существенно превзойти их, завершив генерацию необходимого объема описаний за две недели вместо месяца. Система успешно развернута в продакшене и демонстрирует стабильную производительность. Данная статья представляет систематизированный анализ практического опыта оптимизации инференса мультимодальных LLM, полученного в ходе решения реальной production-задачи. Особое внимание уделяется сравнению эффективности различных подходов к ускорению, включая современные специализированные фреймворки VLLM и SGLang, а также аппаратные оптимизации на базе TensorRT.

Читать далее

От консоли к GUI: Как написать игру «Сапёр» на Python с нуля версия консоли (часть первая)

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

Создайте свою версию легендарного «Сапёра» на Python. В этом пошаговом руководстве вы освоите всё: от создания игрового поля до управления флагами и проверки победы. Неважно, новичок вы или опытный программист - это увлекательное приключение поможет вам прокачать навыки. Начните программировать и играть с собственным «Сапёром» уже сегодня.

Читать далее

Мифы и легенды о производительности Python

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

Антонио Куни — инженер, давно занимающийся повышением производительности Python, а также разработчик PyPy. Он провёл на EuroPython 2025 в Праге презентацию «Мифы и легенды о производительности Python». Как можно догадаться из названия, он считает многие общепринятые сведения о производительности Python как минимум вводящими в заблуждение. На множестве примеров он показал, где, по его мнению, таятся истинные проблемы. Инженер пришёл к выводу, что управление памятью в конечном итоге наложит ограничения на возможности повышения производительности Python, но у него есть проект SPy, который, возможно, станет способом реализации сверхбыстрого Python.

Он начал своё выступление с просьбы: «Если вы считаете Python медленным или недостаточно быстрым, поднимите руку»; поднялось много рук, в отличие от презентации на PyCon Italy, где руку не поднял почти никто из присутствующих. «Совершенно другая аудитория», — сказал он с улыбкой. Антонио уже много лет работает над производительностью Python, он общался с множеством разработчиков на Python и слышал кучу устоявшихся мифов, которые захотел развеять.

Читать далее

Вклад авторов