Обновить
590.5

Python *

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

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

Создаем красивые и удобные CLI-приложения на Python с помощью Typer и Rich

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

Вспомните свой последний скрипт для автоматизации. Возможно, он скачивал данные, обрабатывал файлы или отправлял отчеты. Вы быстро набросали логику, запустили из командной строки, передав пару аргументов через sys.argv, и… всё сработало. Вы молодец.

Проходит месяц. Скрипт нужно запустить снова. В каком порядке шли аргументы? Какой из них был необязательным? А может, коллега просит поделиться вашей утилитой? В этот момент простая автоматизация превращается в проблему юзабилити.

Читать далее

Почему ваш AI-ассистент пишет «вырвиглазный» код, и как это исправить грубой силой

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

Технически это называется «неконсистентный». А по-человечески — боль. Делюсь рабочим, хоть и неидеальным, способом её лечения.

Читать далее

Изучаем Python: модуль Pytest для начинающих с домашним заданием

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

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

Это не ваша вина. Это естественный этап роста любого проекта. И чтобы перейти от «кода, который страшно трогать» к «надежной и стабильной системе», профессиональные разработчики используют один мощный инструмент — автоматизированное тестирование.

Читать далее

Schema-Guided Reasoning: как научить языковые модели последовательно рассуждать

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

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

Для AI-инженеров это системная проблема. Возьмём автоматизацию документооборота: нужно классифицировать договоры, извлекать реквизиты, проверять стандарты. Но модель работает как лотерея — результат не поддаётся логике или меняется при повторном запуске с одинаковыми данными. Как встроить такой результат в бизнес-процесс?

Для решения этой задачи появился подход Schema-Guided Reasoning (SGR). Его активно продвигает Ринат Абдуллин в материалах по работе с LLM. Идея проста и эффективна: заставить модель мыслить не хаотично, а внутри заданной схемы. Это не панацея, но SGR серьёзно снижает количество ошибок, делает процесс прозрачнее, а также позволяет тестировать отдельные компоненты рассуждений.

Читать далее

Production AI сервер за ₽0: полный гайд по сборке ML-станции для Stable Diffusion на б/у комплектующих

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

Собрал production ML-сервер на двух RTX 2060 из хлама за ₽0. PyTorch + CUDA 11.8 + Stable Diffusion генерируют 512x512 за 38 секунд. YOLOv8 работает параллельно на второй GPU. Вот полный гайд: от BIOS настроек до первого теста. Никакого облака, только локальное железо.

Читать далее

Как стримить большие ответы в Django через StreamingHttpResponse и async-генераторы

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

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

Сегодня рассмотрим решение одной непростой задачи, как в Django выдавать очень большие объёмы данных, например, выгрузку в CSV или потоковый JSON-формат NDJSON) так, чтобы сервер не ложился от нагрузки, а пользователи быстрее получали первые данные. Разберём, как использовать StreamingHttpResponse и генераторы (в том числе асинхронные) для стриминга больших ответов и поговорим нюансах.

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

Мы опубликовали silero-tts v5 на русском языке

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

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

Итак представляем вам новый v5 релиз наших публичных моделей для синтеза речи!

Что поменялось?

Возвращаем неактивных клиентов из YClients по SMS с умной проверкой Number Lookup

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

Привет, Хабр! Сегодня покажем, как автоматизировать напоминания клиентам компании, переставшим пользоваться ее услугами. Пример: кейс сети салонов красоты.

Во все филиалы сети ежедневно записываются около ста человек. Реактивировать часть потерянных клиентов можно с помощью SMS-информирования о персональной скидке. Но делать это вручную неудобно и долго. Поэтому мы сделали автоматический сценарий: он раз в сутки проверяет базу YClients, находит неактивных клиентов, выбирает лучшее время для отправки сообщения через Умную проверку номера МТС Exolve и отправляет им SMS с предложением вернуться.

Читать далее

Thefittest: зачем я пишу свою open-source библиотеку эволюционных алгоритмов

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

Автор: Шерстнев Павел

Что если модель могла бы проектировать саму себя? Подбирать архитектуру, параметры, операторы — без эксперта, без ручного тюнинга и десятков итераций? Эволюционные алгоритмы позволяют это сделать. Я собрал их в рабочую технологию — Thefittest — open-source проект, где эволюция используется для построения и оптимизации моделей машинного обучения.

Читать далее

Зарабатываем, открывая позиции против трейдеров на bybit

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

Привет, Habr! В этой статье я хочу поделиться своим проектом — Telegram-ботом, который автоматизирует торговлю на бирже Bybit на основе сигналов из специализированного канала. Бот парсит сообщения из Telegram-канала @TokenSplashBybit, извлекает информацию о предстоящих "token splash" (это события, когда новые токены добавляются на биржу с возможностью получения airdrop), и открывает длинные позиции (лонги) в момент результата.

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

Читать далее

Анализ EEG-датасетов с Kaggle: от сигнала до ML-модели

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

Электроэнцефалография (ЭЭГ) — это неинвазивный метод регистрации электрической активности мозга через электроды на поверхности головы. За последние годы ЭЭГ-данные перестали быть исключительно медицинской прерогативой и прочно вошли в мир data science. Сегодня их используют в нейромаркетинге для оценки реакций на рекламу, в когнитивных исследованиях для измерения внимания и памяти, в разработке Brain-Computer Interface (BCI) и даже в спортивной аналитике.

Читать далее

По следам CPython. Часть 2. Предконфигурация

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

Привет, читатель! Меня зовут Александр Щербанюк, и я Python-разработчик. Это вторая статья цикла, который посвящен разбору внутреннего устройства CPython.

В рамках прошлой статьи была настроена IDE и разобраны первые несколько функций CPython и используемые в них структуры. Так, повествование дошло до функции pymain_init из Modules/main.c.
Эта же статья будет посвящена разбору части вышеобозначенной функции, а конкретнее — этапу предконфигурации CPython.

Итак, продолжим изучение внутренностей CPython.

Читать далее

Шаблоны и принципы деления кода на классы

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

За 9 лет разработки ПО  я периодически выступал в  роли ментора и сталкивался с проблемой, которую недавно озвучил начинающий программист после онлайн-курсов: 

«Не понимаю, как делить код на классы».

Оказалось, на курсах учили языку, но не программированию. А ведь язык — лишь инструмент, и принципы проектирования кода универсальны для разных языков программирования.

Я показал студенту несколько готовых шаблонов классов, чтобы он мог сразу применить, и хотел дать методичку по теории, но под рукой не оказалось ни заметок, ни статей, ни книг. Поиск в интернете и запросы к ИИ выдавали только материалы по ООП и принципам SOLID, которые мало касались нужной темы. Выходило так, что вся нужная для такой методички информация, лежит у меня в голове.  

Так и родилась идея написать эту статью.

Читать далее

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

Selectolax: быстрая альтернатива Beautiful Soup

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

Если спросить у питониста: «Чем парсить сайт?», — в большинстве случаев он ответит Selenium или Beautiful Soup. И будет по-своему прав — это два главных направления в мире парсинга на Python.

Selenium, со всем своим множеством форков, наследников и схожих по принципу библиотек, — инструмент мощный. Он отлично подходит для сложных сценариев, работы с динамическими сайтами и автоматизации действий пользователя в браузере. Но за это удобство приходится платить: Selenium требует немало системных ресурсов и работает заметно медленнее.

Beautiful Soup (или просто «суп») — полная противоположность. Он лёгкий, быстрый и прекрасно справляется с «простыми» сайтами, где нет интерактивных элементов и сложного JavaScript.

В этой статье я расскажу об альтернативе Beautiful Soup — библиотеке Selectolax, воплощающую в себе простоту использования и высокую скорость работы.

Читать далее

Как мы сократили время написания инструкций в несколько раз с помощью LLM и Whisper

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

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


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

Читать далее

5 библиотек Python, которые выведут вас на новый уровень. Часть 2

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

Вы научились получать и обрабатывать данные. Но что дальше? Как хранить эту информацию надежно, а не в CSV-файлах? Как поделиться результатами своей работы с другими, предоставив им удобный доступ через API? Что делать, если сайт настолько сложен, что Requests не может справиться с его динамическим контентом? И как убедиться, что весь написанный вами код не сломается после очередного изменения?

Читать далее

«Автопилот» для HeadHunter — как я потратил 100 часов на бота- чтобы сэкономить тысячи часов айтишникам на поиске работы

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

Привет- Хабр!

Поиск работы – это... боль. Нет- не так. Это – ад.

Это бесконечный скроллинг- десятки открытых вкладок.

Читать далее

CPython простыми словами: всё, что нужно знать начинающему

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

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

Сегодня вместе заглянем за дверки Python и разберемся, что же там внутри. Оказывается, под привычным синтаксисом Python скрывается целая машина – интерпретатор CPython, написанный на языке C.

Это самая популярная и каноничная реализация Python. Существует и другие реализации (PyPy, Jython, IronPython и т.д.), но 99% времени, говоря Python, имеют в виду именно CPython – оригинальный и наиболее поддерживаемый интерпретатор. Без строгой формальной спецификации языка Python, именно поведение CPython во многом определяет, что такое Python.

Изучить внутреннее устройство

WebREPL и uPyLoader: Выбираем способ беспроводного управления ESP

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

Практикуемся создавать и загружать постоянные инструкции в виде файлов, которые ESP устройство (микроконтроллер) будет выполнять автономно с помощью:

 uPyLoader — файловый менеджер и редактор в одном флаконе, как блокнот с закладками: и файлы видно, и поправить можно.

 WebREPL — удаленное управление по Wi-Fi без проводов, как пульт управления по воздуху: управляй устройством, изменяй, корректируй и добавляй инструкции (файлы), вообщем, проводи отладку без подключения кабеля.

Разберем:

 - Как работать с файлами на устройстве с помощью uPyLoader.

- Как настроить беспроводное управление через WebREPL.

- Как настроить Wi-Fi в двух режимах: точка доступа и клиент.

 Только практические шаги с объяснением, которые вы сможете повторить.

Приступаем

Как я собрал AI-ассистента для отца с больным сердцем: Tool-Calling RAG Pipeline на GPT-4o-mini без LangChain

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

Мой отец — человек, переживший несколько сложнейших операций на сердце. Жизнь с хроническим заболеванием — это бесконечный поток анализов, заключений и схем приёма лекарств. Находясь далеко (я живу во Вьетнаме), я постоянно волновался: не забудет ли он про дозу, правильно ли понял назначение, задал ли все нужные вопросы врачу?

Мне нужен был не просто бот-напоминалка, а второй пилот — умный, конфиденциальный и мультимодальный AI-Кардиолог. Ассистент, который знает его анамнез наизусть, понимает голосовые команды и может «прочитать» фотографию свежего анализа.

Я решил собрать полноценный автономный агент с возможностью вызова внешних инструментов (Tool‑Calling) и локальной базой знаний (RAG), но без использования громоздких фреймворков вроде LangChain или LlamaIndex.

Читать далее

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