Обновить
512K+

Python *

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

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

Per-user OAuth для MCP-серверов: Keycloak, n8n и Telegram-бот через один Auth Proxy

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

MCP-серверы не умеют в авторизацию, n8n не умеет в per-user токены, а OAuth-клиенты говорят на разных диалектах. Рассказываем, как один Auth Proxy перед FastMCP Gateway закрыл все три проблемы — и почему в итоге бот переехал на LangGraph

Архитектура, грабли и код

Mountain| Первый финал, первая победа и новый старт

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

За 25 дней нам удалось добиться довольно больших изменений в нашем проекте.

Мы провели:

Рефакторинг back-end сервисов

Убрали часть легаси кода на фронте

Переработали некоторый UI элементы и добавили плавности

Добавили новый функционал

Читать далее

Медленное мышление для быстрых машин: архитектура рефлексирующего ИИ-агента нового поколения

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

Мы привыкли, что ИИ-агенты — это про скорость. Быстрее написать код, быстрее ответить, быстрее сгенерировать. Но скорость без размышления — это не интеллект, а рефлекс. Настоящий прорыв происходит, когда агент начинает думать, прежде чем делать. Проверять себя после каждого шага. Сомневаться. Спрашивать разрешения. И только потом действовать.

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

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

Читать далее

Как мы переписывали логику очередей: Celery => aio-pika => FastStream

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

Наш путь активной работы с очередями RabbitMQ начался с классического Celery. Осознав критичность низкоуровневого контроля системы, принялись работать с aio-pika. Но и этот уровень слишком местами сложный (далее расскажу почему), и нашли отличное решение, на текущий момент, в лице FastStream. Сразу оставлю такую пометку, что каждый инструмент подходит для решения своей задачи. Мы больше хотели сделать акцент на удобство и скорость разработки относительно затрачиваемого времени на миграции решений.

N.B.: Код возможно покажется неоптимальным или старым. Это всё наш дорогой Легаси.

Читать далее

WebAssembly как платформа расширений для Python: ускорение, встраивание и опасные ловушки API

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

WebAssembly можно использовать как способ расширять Python без нативной сборки под каждую платформу: упаковать Wasm-модуль внутрь библиотеки, запускать его через wasmtime-py и ускорять участки, где чистый Python уже не справляется. Но за удобной схемой быстро проявляются неочевидные детали: store, линейная память, знаковые указатели, ручное копирование данных и риск записать их совсем не туда.

В статье разберёмся, где Wasm действительно полезен для Python и почему работа с таким API требует особой аккуратности.

Читать разбор

ТОП-7 графиков для вашей презентации

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

Лучше один раз увидеть, чем сто раз услышать — в аналитике эта пословица работает на все сто. В новой статье разбираем, почему одна удачная визуализация объясняет процессы, зависимости и помогает найти инсайты быстрее, чем десятки слайдов с текстом и формулами. Также рассмотрим несколько оригинальных интерактивных визуализаций на Plotly — за пределами привычных распределений, боксплотов и прочих «школьных» графиков. 

Об авторе: Мария Жарова — преподаватель Центра «Пуск» МФТИ, ML‑инженер в Wildberries, автор канала EasyData.

Читать далее

Пишем свой SQL query builder на Python: DSL, кеширование в Redis и защита от инъекций

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

Объектный построитель SQL-запросов без ORM и моделей. Позволяет писать сложные SQL-запросы в виде цепочек Python-методов (table[‘person’].filter(…).join(…).get()) и получать результат в виде списка словарей. Под капотом — параметризованные запросы для защиты от инъекций, продуманная система кеширования с инвалидацией по таблицам (in-memory и Redis), поддержка синхронного и асинхронного кода из коробки. Для тех случаев, когда ORM избыточна, а сырой SQL небезопасен.

Читать далее

Защищаем личные номера телефонов на маркетплейсах: соединяем клиента и исполнителя

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

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

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

В этом материале соберём такой сценарий на Python, используя вместо базы данных Битрикс24. Решение берёт контекст из CRM в момент звонка и через МТС Exolve соединяет клиента, исполнителя или поддержку. 

Читать далее

Возвращение блудного программиста (ч.3)

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

Эта часть будет практической, если помните я решил углубиться в React и Flask. Поэтому при помощи ИИ начинаю. Нет, ИИ не будет делать за меня весь проект, он будет выполнять функцию наставника. Ну и иногда чернорабочего (как, например, собрать файл SQL для инициирования БД) для ускорения ручного труда.

Читать далее

OpenWebUI: System Prompt vs Skills vs MCP Tools — разбираем на живом примере валидации URL

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

System Prompt учит модель что говорить, Skills — как проверить сказанное, MCP Tools — как сделать это в реальном мире. Разбираем трёхуровневую архитектуру на примере бота техподдержки с валидацией ссылок.

Читать далее

z.ai GLM 5.1: Как я научил слепую модель видеть

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

Если у вас есть неограниченный доступ к фронтир моделям (Calude, Codex и т.д.), то эта статья не для вас.

Сегодня доступны отличные недорогие модели для кодинга и архитектуры. Например, GLM-5.1 (реферальная ссылка +10% бонус на пополнение) умеет генерировать, рефакторить, отлаживать код, строить архитектуру – в десятки раз дешевле фронтит моделей или вообще бесплатно при локальном развёртывании.

Но у всех таких моделей часто есть общая слепая зона: они не видят результат своей работы. В этой статье я рассказываю, как "научить модель видеть".

Читать далее

Делаем мини-CRM с СМС-уведомлениями через МТС Exolve

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

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

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

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

Я Леонид Тараскин, руководитель портфеля продуктов в МТС Exolve. В этом гайде на Python расскажу, как собрать из связки МТС Exolve и MWS Tables легкую CRM с исходящими и входящими СМС-уведомлениями.

Читать далее

Пишем прототип ИИ-агента для EdTech-саппорта без векторных баз и фреймворков: чистый Python, Gemini и JSON

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

У любого EdTech продукта есть проблема поддержки студентов. Я и сам столкнулся с ней в мою бытность автором курсов на степик. Студенты сталкиваются с трудностями и пишут в чат / на форум в надежде, что им помогут (особенно, если они заплатили за обучение свои кровные).

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

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

Читать далее

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

Самые популярные ошибки начинающего SDET-специалиста

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

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

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

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

Методы обнаружения контуров в изображении: пространственные фильтры

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

Большинство современных CV-алгоритмов невозможно представить без выделения границ объектов. В этой статье разбираем, как работают пространственные фильтры — от простейших масок 2×2 до полноценного детектора Канни.

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

Читать далее

Как использовать GitHub Actions и настроить интеграцию с PyPI для Python-проектов

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

Когда я создавал свой первый Python-пакет я столкнулся с интересной задачей:как настроить CI/CD в GitHub так, чтобы при отправке новых изменений ничего не ломалось, а код автоматически публиковался в PyPI.

Обычно, чтобы проверить любой коммит, попадающий в master-ветку через pull request, необходимо запускать тесты. Кроме того, полезно использовать линтеры для проверки стиля кода, особенно если над проектом работают несколько разработчиков.

В этой статье я расскажу как все это настроить в Github, чтоб оно выполнялось автоматически.

Читать далее

Франкенштейн на 30 ГБ RAM: Как мы пересадили мозг Gemma в скелет DeepSeek и сломали Transformers

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

Операционная «Ghetto MLOps»: пересадка 31B‑мозга Gemma в MoE‑экзоскелет DeepSeek. Без наркоза и дообучения.

Дисклеймер: Эта статья не о том, как сделать убийцу ChatGPT бесплатно. Она о том, как глубоко можно залезть под капот PyTorch и Transformers, и как заставить работать вместе вещи, которые физически не должны работать. Слабонервным математикам читать с осторожностью.

У нас было две бесплатные видеокарты T4 в Kaggle, 30 ГБ оперативной памяти и безумная идея: что будет, если взять веса классической модели (Gemma-4-31B) и хирургическим путем, без всякого дообучения, вшить их в MoE-архитектуру (DeepSeek-V4)?

В академической среде вам скажут, что это невозможно: разные размерности, несовместимые слои нормализации, разные принципы роутинга токенов. Но в парадигме Ghetto MLOps нет слова «невозможно». Есть только вопрос: сколько костылей потребуется, чтобы это скомпилировалось?

Читать далее

Я сделал Телеграм бота для Evernote, о котором немного мечтал годами

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

Прывітаначкі, похоже с одной стороны сегодня программистов нужно меньше чем раньше, с другой стороны — благодаря LLM действительно можно делать задачи на порядок быстрее. Предполагаю, что в ручную этого бота я бы делал месяц, через Codex gpt-5.5 xhigh — часа три.

В Evernote у меня записано много идей. Хорошо бы то, хорошо бы это. И таки некоторый прогресс в их реализации есть. И вот недавно — открываю официальное приложение Evernote на iPhone, а заметки не загружаются. У меня самый дорогой премиум аккаунт. Вот так стало понятно — надо делать.

Про другие неофициальные клиенты:

Я мантейнер Geeknote — неофициальный CLI на Питоне, он внутри моего бота.

NixNote на C++

CliNote на Go — недавно заархивирован — feel free to форкнуть и починить.

И вот теперь я сделал Телеграм бота https://gitlab.com/vitaly‑zdanevich/bot_telegram_evernote

На Питоне — хотя я предпочитаю Go — но Geeknote зависимость на нём, так что для единообразия.

Читать далее

Высокоэнтропийный вайбкодинг

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

Генератор картинок видит "высокоэнтропийный вайбкодинг" как-то так. Но имеется более практическое применение.

>>>>ЧИТАТЬ

At-least-once. Это не баг провайдера. Это ваша архитектурная проблема

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

Думал, зайду в крипту и буду просто дёргать API блокчейна. Не вышло.

Захожу в проект. Стек: FastAPI, PostgreSQL, Redis как Celery broker, Celery workers, Docker, Web3. Стартап на хайпе, деньги реальные, архитектура собрана на коленке. Смотрю на архитектуру платёжного процессинга и первая мысль: ребята, вы серьёзно? Финансовые операции с реальными деньгами, без idempotency вообще, Redis как брокер без persistence, Web3.py синхронные вызовы внутри Celery тасков.

Разговор был короткий: задача такая, чини что есть. Сроки горели.

Читать далее