Обновить
512K+

Python *

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

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

Не бойтесь динамического программирования

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

Говорят, все боятся задач на динамическое программирование (aka ДП), потому что их решения выглядят как из задачника по матанализу. А мне оно всегда нравилось. Одна изящная формула — и задача решена.

В этой статье разберем три задачи по динамическому программированию с LeetCode и попробуем каждый раз прийти к изящной формуле интуитивно. Также обсудим, по каким признакам можно понять, что задача — на динамическое программирование.

Разбор трех задачек

Как я писал библиотеку для Морского Боя на Python — разбор и история моего первого пет‑проекта

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

Пишу о том, как сделал первый проект - библиотеку для логики морского боя на Python - с какими трудностями столкнулся, как налаживал архитектуру и как не бросил

Нырнуть глубже

JWT авторизация в FastAPI: от теории к практике

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

Представьте себе, что вы разработчик, и перед вами стоит задача: сделать так, чтобы после входа пользователь мог получать свои личные данные, не вводя пароль при каждом клике. Звучит как классическая задача аутентификации, правда?

Традиционный подход — сессии. Вы логинитесь, сервер создаёт сессию, запоминает ваш ID у себя в базе данных, а вам выдаёт куку с ID этой сессии. Всё работает, пока вы на одном сервере. А если у вас их два? Или десять? Куда девать сессии? Начинаются проблемы с синхронизацией, Redis, общими хранилищами…

Альтернатива — JWT (JSON Web Token). В этой статье мы с вами:

Читать далее

Лучшие промпты для генерации кода и программистов

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

Знакомая ситуация? Вы открываете файл контроллера на 2000 строк. Там перемешаны SQL-запросы, HTML-разметка, бизнес-логика и комментарии на ломаном английском. В голове начинает играть тревожная музыка, а внутренний голос шепчет: “Закрой это немедленно, пока оно не сломалось”.

В психологии это называется “когнитивная перегрузка”. Мозг просто отказывается парсить такое количество переменных одновременно. Раньше программистам приходилось часами медитировать над распечатками кода, как сыщикам, пытаясь прокачать навык “Внутренняя империя”.

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

Здесь мы разберем 6 фундаментальных паттернов промптинга, которые вытащат вас из любой ямы.

Читать далее

Мы сделали лучший REST фреймворк для Django

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

Привет! Меня зовут Никита Соболев, я core-разработчик языка программирования CPython, а так же core-разработчик фреймворка Litestar, пакета django-stubs и множества других пакетов для Django.

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

Если хотите похоливарить в коментах на тему того, какой фреймворк самый лучший и удобный – залетайте! Обсудим.

Читать далее

Где была Алиса Селезнева. Искал ее адреса с помощью Python

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

С помощью Python провел исследование космических адресов Алисы Селезневой. Вокруг нее было так много планет, неплохо исследованных, а посетила она только малую часть из них.

Читать далее

Apache Superset — боремся с фильтрами по дате. Часть 2

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

В этой статье продолжаем борьбу с фильтрами по дате в Apache Superset. Сегодня разберем, как реализовать подобие логики remove_filter в старых версиях (до 5), чтобы виртуальный датасет не оборачивался фильтрами.

Читать далее

Снимаем показания счётчика электроэнергии МИР С-05.10 c помощью Raspberry по Bluetooth

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

Из любопытства была у меня идея попробовать снять показания со счётчика удалённо, но так как был уже установлен древний дубовый счётчик Энергомера СЕ102, то вкладываться в замену не хотелось. Однако межповерочный интервал начал подходить к концу и я начал задумываться насчёт замены счётчика на более продвинутый (с интерфейсами связи). Начал выбирать варианты в виде LoRaWan, Zigbee, RS-485, но оказалось, что по современному законодательству счётчики электроэнергии меняет ресурсоснабжающая организация (так называемый «гарантирующий поставщик»). С надеждой ждал, что электрик придёт и поставит современный навороченный счётчик с кучей интерфейсов, но всё оказалось не совсем так...

Представитель ресурсоснабжающей организации установил новый счётчик МИР С-05.10-230-5(80)-G2Z1B-KNQ-S-D.

Читать далее

Как мы хакнули ИИ-бенчмарк PAC1 без нейросетей

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

Недавно я участвовал в корпоративном хакатоне по обходу ИИ-песочниц. Задача: пройти закрытый бенчмарк PAC1, где ИИ-агенту нужно работать с виртуальной файловой системой (чтение логов, поиск файлов, отправка писем) и обходить ловушки безопасности (Indirect Prompt Injections).

Но реальность оказалась суровой: хваленые reasoning-модели постоянно галлюцинировали, ломали структуру JSON на выходе (выдавая свои "мысли" вместо чистого ответа) и просто сжигали бюджет на API, зацикливаясь на одной ошибке.

Потратив часть бюджета впустую, я решил: если ИИ не справляется, мы заменим его на старый добрый хардкод. Так родился концепт Zero-Cost Agent — алгоритмического лома, который симулирует поведение нейросети.

Читать далее

Как помочь вашему RAG адаптироваться? Принимайте DRAG with KNEE! Часть 1

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

Все мы проходили через это: скармливаешь RAG‑системе сложный PDF на 50 страниц, а она в ответ либо галлюцинирует, либо вываливает на LLM простыню нерелевантного текста, съедая ваш бюджет на токены быстрее, чем вы успеваете сказать «GPT-4o». Проблема в том, что классический подход со статическим top_k — это костыль, который либо не додает контекста, либо вызывает у модели информационное «ожирение» (заполняет контекст нерелевантным мусором). Нашему RAG нужно помочь адаптироваться к безжалостной среде разрозненных документов!

Я потратил выходные на то, чтобы решить эту проблему фундаментально. В итоге на свет появился DRAG with KNEE (Dynamic RAG with Knee‑point pruning) — алгоритм, который не просто ищет «похожее», а выстраивает иерархию документов и безжалостно отсекает лишнее с помощью геометрического анализа «колена». В этой статье я покажу, как с помощью Qdrant, Python и капли математики сделать ваш RAG адаптивным.

Читать далее?

Космос из школьного кабинета: Как мы научили ИИ законам Кеплера после «разноса» от ученых

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

Существует стереотип, что современная наука об экзопланетах — это прерогатива NASA и ученых с миллионными грантами. Мы — команда обычных школьников и наш наставник — решили доказать, что для открытия новых миров достаточно ноутбука, Python и понимания того, что Машинное Обучение (ML) без физики — это просто генератор случайных чисел.

Это история проекта ExoLogica AI: путь от сокрушительного провала на конференции до создания гибридного интеллекта, который видит то, что иногда пропускают профессиональные телескопы.

Читать далее

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

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

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

Написать эту статью меня сподвигнул услышанный недавно краем уха разговор:

Читать далее

Как я написал шахматы с LLM на Python без галлюцинаций нейросетей

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

Я работаю с LLM довольно давно и застал модели времен GPT-3.5, примерно в то же время мне нужно было сделать проект по учебе в этой области, тогда я выбрал именно тему шахмат, потому-что не видел конкретно таких решений раньше, конечно ИИ в онлайн шахматах и так был практически непобедим, но мысль сыграть конкретно с нейросетью уровня Chat GPT, мне показалась интересной. Основная проблема - заставить чат бот играть в игру и не делать ничего лишнего.

В этой статье я разберу архитектуру своего проекта: шахмат на Python, где в качестве соперника выступает LLM:

Читать далее

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

Как я впервые услышал черную дыру: Python и LIGO

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

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

Когда речь заходит об обсерватории LIGO, большинство из нас вспоминает классический сценарий: где-то за миллиарды световых лет слились две черные дыры, и через миллионы лет детекторы на Земле зафиксировали гравитационный всплеск, длившийся доли секунды. В классической Общей теории относительности (ОТО) считается, что изолированная или просто поглощающая газ черная дыра гравитационно «нема». Она ничего не излучает.

Но что, если это не так? Что, если гравитационные телескопы способны «слышать» не только редкие катастрофические слияния, но и постоянный, фоновый гул от обычных черных дыр, которые прямо сейчас пожирают материю в нашей галактике? И что, если этот гул может рассказать нам о физическом размере объектов, внутри которых, как нам говорят, находится «бесконечная сингулярность»?

В этой статье я покажу, как концепция механики сплошных сред позволяет предсказать точную частоту такого резонанса. А затем мы откроем Python, подключимся к серверам GWOSC (Gravitational Wave Open Science Center), выкачаем гигабайты сырых тензорных данных LIGO и методами цифровой обработки сигналов (DSP) вытащим этот акустический след из шума.

Спойлер: мы найдем этот гул для трех разных черных дыр. И он совпадет с расчетным до десятых долей процента. Такого анализа (поиск непрерывного гравитационного резонанса от аккреции) еще никто не делал. Это буквально новый метод определения параметров черных дыр.

Слушать черные дыры

Как я написал Telegram-бота для поиска UPC-кодов релизов: 10 платформ, один парсер и много боли

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

У каждой музыкальной платформы свой API, свои баги и свой способ спрятать UPC-код релиза. Я написал Telegram-бота, который находит UPC и ISRC по ссылке с любой из десяти платформ — от Spotify до Яндекс Музыки. Рассказываю про архитектуру, парсинг десяти форматов ссылок, нестабильный Spotify API и боль работы с недокументированными эндпоинтами.

Подробнее

Мой первый опыт обработки вебхуков: как я учился делать надёжный бэкенд на Python

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

Мой первый опыт обработки вебхуков: как я учился делать надёжный бэкенд на Python

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

Я студент, изучаю backend-разработку на Python. Недавно в рамках учебного проекта столкнулся с задачей: нужно было сделать интеграцию с платёжным сервисом. Они присылают уведомление (вебхук), когда пользователь оплатил заказ, а я должен обновить статус в базе.

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

Читать далее

Как подбирать аугментации: гипотезы, протокол и метрики

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

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

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

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

Исходный гайд в документации. (Документация)[https://albumentations.ai/docs/] Репозиторий

Albumentations — открытая библиотека аугментаций изображений (15k+ звёзд на GitHub, 140M+ загрузок).

Читать далее

Реставрация ruGPT-3 XL или как я вернул к жизни забытую русскую языковую модель

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

Несколько дней к ряду я занимался реставрацией легаси модели ai-forever/rugpt3xl, это классическая языковая модель от SberDevices на 1.3B параметров, крошка по современным меркам, на которой сберовцы обкатывали свои научные наработки аж в далёком 2021м году. Подробнее о ней можно почитать в статье “A family of pretrained transformer language models for Russian” на Google Scholar.

Да, она foundation, то есть умеет только продолжать текст, не может выполнять инструкции или работать в режиме чата. Но обучена она на корпусе русского языка и этот самый русский генерит очень бодро. У неё есть две примечательные особенности: её обучали с нуля, архитектура представляет собой глубокую модификацию GPT-2.

Читать далее

Теперь silero-tts v5 на русском языке умеет задавать вопросы

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

Мы недавно писали про обновление нашего публичного синтеза, silero-tts. В прошлый раз мы существенно увеличили скорость, качество и добавили поддержку омографов.

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

Как вы догадались, эта фича — это постановка вопросов.

Хочу послушать вопросы

Аналог Discord/Mattermost или какой статус у нового мессенджера

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

Предыстория

В октябре был в путешествии, за пару месяц до, наша компания как и многие компании в РФ стали переходить на свои мессенджеры в замен Telegram. У нас выбор пал на Mattermost, ну это такой, аналог Slack. За период примерно 3 месяца я столкнулся с максимально ужасным UI по моему мнению. Нет, проработка его очень отличная. Но вот трудности в самом представлении для пользователей — ужас.

Читать далее