Все потоки
Поиск
Написать публикацию
Обновить
458.96

Python *

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

Время на прочтение11 мин
Количество просмотров2.6K

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров849

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

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

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

Читать далее

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

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

🚀 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 мин
Количество просмотров6.9K

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

Читать далее

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

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

Время на прочтение9 мин
Количество просмотров1.8K

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

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

Читать далее

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

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

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

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

Читать далее

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

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

В процессе разработки 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 мин
Количество просмотров4.2K

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

Читать далее

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

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

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

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

Читать далее

Гайд по правильным ожиданиям в UI — тестах. SeleniumWebDriverWait и Expected Conditions

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров561

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

Читать далее

TY — не thank you, а быстрый type checker для Python

Время на прочтение7 мин
Количество просмотров2.7K

Всем привет! Меня зовут Иван, я программирую на Python, а в свободное время пишу для блога МТС. В прошлый раз поделился опытом, как я осваивал Go и с чем у меня были сложности. Спасибо всем, кто читал и комментировал! Сегодня хочу обсудить мегабыстрый инструмент для проверки типов данных Python — ty: как он устанавливается и используется, какие есть правила и нюансы, а еще посмотрим, как можно его применять. Приступим!

Читать далее

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