Обновить
874.08

Python *

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

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

Дроби, проценты, степени, логарифмы + python

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

Дроби, проценты, степени и логарифмы на примерах в математике и в python. Что это такое, все их свойства, особенности и как решать примеры.

В моем конспекте объясняется фундамент, который понадобится в дальнейшем: Самое начало для изучения python, математики в целом и машинного обучения, если математику совсем не знал. Все написано простым языком и не на 100 страниц.

Читать далее

От Telegram-бота к AI-агенту: как собрать своего «исполнителя задач» на Python в 2025-м

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

В 2023–2024 почти каждый второй pet-проект с LLM выглядел как чатик: ты спрашиваешь — модель отвечает, иногда с RAG, иногда без. В 2025-м тренд сместился: на рынке всё чаще говорят про AI-агентов — системы, которые не просто болтают, а сами инициируют действия, ходят в API, планируют шаги и живут в продакшене как часть инфраструктуры.

В прошлых проектах я уже собирал Telegram-ботов: от простого «ресепшена» для малого бизнеса на aiogram 3.x до RAG-консультанта по железу «Кремний» на бесплатном стеке Groq + sentence-transformers. Логичный следующий шаг — научить бота не только отвечать в диалоге, но и самостоятельно выполнять задачи в фоне: следить за ценами на железо, мониторить статусы заказов или пинговать при аномалиях.

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

Собираем AI-агента для бота

Регулярные выражения в Python: почему ваши парсеры тормозят и как это исправить

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

Регулярные выражения часто воспринимаются как write-only код: написал и забыл, потому что прочитать это невозможно. Но настоящие проблемы начинаются не с читаемости, а с производительности. Неправильный квантификатор или использование re.findall на больших данных могут парализовать работу приложения.

Читать далее

Укрощаем зоопарк API: универсальный Python-клиент для GigaChat, YandexGPT и локальных моделей (v0.5.0)

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

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

Если вы пробовали внедрять российские LLM в свои проекты, то наверняка сталкивались с "зоопарком" API. У GigaChat — OAuth2 и свои эндпоинты, у YandexGPT — IAM-токены и gRPC/REST, у локальных моделей через Ollama — третий формат.

В какой-то момент мне надоело писать бесконечные if provider == 'gigachat': ... elif provider == 'yandex': ..., и я решил создать универсальный слой абстракции.

Так появился Multi-LLM Orchestrator — open-source библиотека, которая позволяет работать с разными LLM через единый интерфейс, поддерживает умный роутинг и автоматический fallback (переключение на другую модель при ошибке).

Сегодня расскажу, как я её проектировал, с какими сложностями столкнулся при интеграции GigaChat и YandexGPT, и как за пару дней довел проект до релиза v0.2.0 на PyPI с 88% покрытия тестами.

Читать далее

SFT vs RL: Сравнение методов настройки LLM для задач программирования и игровых сред

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

В современной разработке AI-агентов возникает необходимость адаптации больших языковых моделей (LLM) для решения специфических задач, требующих не просто генерации текста, а выполнения последовательных действий с рассуждениями. В этой статье мы рассмотрим и сравним два основных подхода к настройке моделей: Supervised Fine-Tuning (SFT) и Reinforcement Learning (RL), используя библиотеку TRL (Transformer Reinforcement Learning) от Hugging Face.

Читать далее

Автоматизируем машинное обучение с помощью ИИ-агентов

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

Решая соревнования на Kaggle начинаешь замечать паттерн. Baseline сделать просто: загрузить данные, запустить CatBoost или LightGBM, получить baseline метрику. Это занимает полчаса. Но чтобы попасть в топ решений, нужно перепробовать десятки вариантов препроцессинга, сотни комбинаций фичей и тысячи наборов гиперпараметров.

Существующие AutoML системы не сильно помогают. Они работают по фиксированному сценарию: пробуют предопределенный набор алгоритмов, выбирают лучший по метрике и возвращают результат. AutoGluon обучает несколько моделей и делает многоуровневый ансамбль, но каждый запуск начинается с нуля. TPOT генерирует pipeline через генетический алгоритм, но не учится на ошибках предыдущих запусков.

Главная проблема в том, что эти системы не рассуждают. Они не анализируют почему конкретный подход сработал или провалился. Они не адаптируются к специфике задачи. Они не накапливают опыт между запусками. Каждая новая задача для них как первая.

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

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

Читать далее

FastAPI: Гайд по нормальной структуре для новичков (Часть 1. Слой домена)

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

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

Читать далее

Уроки французского и пересоздание данных для изучения иностранного языка с помощью обучающей программы «L'école»

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

Введение

Обучающая программа «L'école» (см. мою статью: «Роль данных при изучении иностранного языка» – https://habr.com/ru/articles/930868/ ) предназначена для освоения иностранного языка по методу: «Запоминание руками + интерактивный звук + чтение по слогам + буквальный контекстный перевод». Саму программу и демо-данные к ней, на разных языках, можно непосредственно скачать из: https://disk.yandex.ru/d/5yjYP4JP1aVnIw .

И, если с обучающей программой, более-менее, всё понятно, то по данным (компьютерным урокам) остаются некоторые вопросы.

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

Как известно, изучение иностранного языка предполагает четыре навыка:

1. Понимание письменной речи.

2. Понимание устной речи.

3. Умение писать.

4. Умение говорить.

По сути, они, очень грубо, распадаются на две большие группы:

1. Звук и

2. Текст.

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

Экспериментируя с изучением французского языка, я пришел к выводу, что хорошо работают следующие навыки:

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

Читать далее

Вероятностный анализ финансовых рынков на основе чистого OHLCV и многомодульной математической модели

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

Большинство торговых систем работают так: “если RSI пересёк X — покупай”.
Но рынок — стохастическая система. Сигналы не бинарны, они вероятностны.

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

Разберём логику этого анализатора и как именно он работает.

Читать далее

Продолжение статьи: Архитектура торгового Telegram-бота для сигналов пампов и дампов

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

В первой статье я показал, как сделал парсер пампов/дампов на BingX. Сейчас же проект вырос: из простого сборщика сигналов он превратился в полноценного торгового бота, который позволяет делать максимально гибкую настройку для каждой стратегии. Я решил использовать 12% и 5% сигналы как основные - от них и будет отталкиваться бот. Сейчас он находится в стадии тестирования (на демо-апи) и каждый может его протестировать!

Разобрал основную структуру бота, функции, работу с базой данных и логику стратегий.

Читать далее

Как ускорить автотесты на Python в Pytest в 8,5 раз

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

Меня зовут Анатолий Бобунов, я работаю SDET в компании EXANTE. Однажды я пришел на проект, на котором выполнение некоторых тест-сьютов занимало больше часа, настолько медленно, что запускать их на каждый merge request (MR) было просто нереально. Мы хотели запускать автотесты на каждый коммит в MR, но с такой скоростью это было невозможно. В результате мне удалось, за счёт серии небольших, но точных изменений добиться 8,5-кратного ускорения - без переписывания тестов с нуля. В статье расскажу, какие проблемы у нас возникли и как мы их решали.

Читать далее

Первый взгляд на новые фоновые задачи в Django 6.0

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

Команда Python for Devs подготовила перевод статьи о новых фоновых задачах в Django 6.0. Фреймворк наконец получил встроенный API для очередей задач — но без воркеров, так что чудес пока ждать рано. Автор показывает, зачем это обновление всё равно важно, как оно работает внутри и что можно построить поверх него уже сегодня.

Читать далее

От CSV к дашбордам: гибкая отчетность на Postgres, Airflow и Superset

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

Привет, Хабр! Я Дмитрий Смотров, тружусь бэкендером в Astra Linux в команде продукта ACM — микросервисной системе, разворачиваемой на клиентских мощностях. Мы позволяем удаленно управлять клиентской инфраструктурой. Сначала я разрабатывал функциональность снятия инвентаризации и удаленного выполнения команд установки и удаления ПО, но в один момент моя жизнь резко изменилась. На проекте возникла необходимость в функциональности красивой и настраиваемой отчетности, в чем я увидел возможность проверить себя в новой для себя области. Я вызвался разобраться и помочь продукту стать еще лучше.

Под катом расскажу о том, с какими трудностями столкнулся в процессе, как я их решал и что в итоге получилось. Приятного чтения :-)

Читать далее

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

Питон перед Рождеством. Как я осваивал этот язык программирования

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

Это личный опыт, оказавшийся для меня неожиданным. Настолько неожиданным, что я решил разобраться, почему результат оказался намного эффективнее, чем я ожидал. Когда я разобрался, мне захотелось поделиться новым пониманием. Блог ЛАНИТ показался лучшим местом для этого.

Читать далее

Как я случайно DDOS-нул hh. ru, пытаясь найти работу: история о том, почему боты должны быть асинхронными (и вежливыми)

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

Привет, Хабр. С вами снова Вадим.

В прошлом посте я рассказывал, как написал AI‑бота Аврора, который ищет вакансии вместо меня.

Статья залетела, и к нам пришли первые 100 тестеров. И тут началось веселье.

Представьте: вы нажимаете кнопку «Найти работу», а бот молчит. 10 секунд, 20 секунд. Вы думаете: «Сломалось» и жмете кнопку еще 5 раз.

А на самом деле бот не сломался. Он просто «ушел на кухню готовить».

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

Если вы разработчик — найдете тут код про SKIP LOCKED.

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

Читать далее

Vera — ваш личный десктопный агент

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

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

Читать далее

«Король глядит угрюмо…» — а я считаю звуки. Цифровое сравнение Стивенсона и Маршака

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

Стивенсон и Маршак. Схватка поэтических тяжеловесов, которую можно судить с помощью кода Python. Награда - вересковый мед.

Читать далее

Python и паттерны GoF, часть 1: Singleton

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

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

Первым паттерном, который мы рассмотрим, разумеется, станет синглетон. Как только его по-русски не называют, кстати. Синглтон. Синглетон. Наконец, ОДИНОЧКА. Не, ну вы представляете, ОДИНОЧКА?! Покажите мне живого человека, который так говорит? Я ни одного за 30 лет использования паттернов GoF не видел.

Казалось бы, что о нём можно сказать разумного, доброго, вечного, а главное — нового? Паттерн довольно тривиальный, всего лишь способ создать объект класса, который нельзя инстанцировать более одного раза, а потом использовать этот объект везде, где нужно (часто в совсем разных местах). И довольно спорный во многих случаях. Особенно в Python, где я обычно не советую его использовать так, как в C++.

Читать далее

Pydantic V2: Почему dataclasses вам ещё больше нужны

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

На написание статьи меня сподвигла статья «Pydantic V2: Почему dataclasses вам больше не нужны» и меткий комментарий:

«Спасибо за статью, но мне кажется Вы учите детей плохому. »

Давайте попробуем разобраться, почему и датаклассы хороши, и pydantic V2 прекрасен, а вместе они становятся ещё лучше.

Или устроить смешанное единоборство?

Я пришел потестить бота, чтобы найти баги, а в итоге нашел работу в BigTech

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

Привет, Хабр. Я из тех людей, у кого аллергия на словосочетание "искусственный интеллект" в маркетинге. Обычно за этим скрывается пара if-else и API OpenAI, прикрученное синей изолентой.

Недавно наткнулся на пост ребят, которые пилят карьерного бота Аврора. Обещали, что он сам ищет вакансии, сам пишет письма и вообще молодец.

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

Спойлер: базу я им действительно чуть не положил (и помог починить), но в процессе тестирования бот унизил мое резюме, переписал его и устроил меня на собес туда, куда я сам боялся подаваться.

Ниже - история про технические костыли, asyncio и то, как бездушный скрипт продает инженера лучше, чем сам инженер.

Читать далее

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