Обновить
512K+

Python *

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

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

mysql_guard — open source инструмент для автоматического поиска скрытых ошибок в архитектуре баз данных MySQL

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

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

Читать далее

Новости

Как я устал писать парсер под каждый прайс и сделал из этого библиотеку

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

У нас на проекте десятки прайсингов на топливо: один вендор шлёт CSV, другой Excel, третий JSON на вебхук. Данные одни и те же, но колонка цены везде называется по-своему, даты в трёх форматах, единицы то литры, то галлоны, а половина нужных полей просто отсутствует. И под каждый источник у меня жил отдельный парсер на сотню строк if-else. Сначала их было три, потом восемь, потом я перестал считать. А по-настоящему добило другое: эти парсеры ломались молча. Вендор тихо переименовывал колонку.

В третий раз за месяц копируя один и тот же парсер, я понял, что так нельзя, и вынес логику маппинга из кода в данные. Из этого выросла библиотека fidelis: ты описываешь данные один раз как Pydantic-модель, а соответствие под каждый кривой источник один раз пишет LLM — в виде читаемой YAML-спеки, которую ты ревьюишь и коммитишь. Дальше LLM не нужен: чистый детерминированный Python, валидация каждой строки и отлов изменений схемы ещё в CI. Рассказываю, как дошёл до жизни такой и как это устроено.

Читать далее

Harness Bench: как оценить агентский harness и выбрать связку с моделью

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

Привет! Я Андрей Иванов, NLP-исследователь в R&D-лаборатории red_mad_robot.

Когда мы собираем AI-агента, первым делом выбираем модель под задачу. Но в реальном приложении она не работает в одиночку, ей нужен агентский harness — программная обвязка. Поэтому выбирать приходится не просто модель, а связку «модель + harness».

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

Читать далее

Как я за неделю перевела десктоп-парсер на SaaS, потому что Яндекс ввёл платный API

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

Я работаю в контекстной рекламе и аналитике пять лет. Когда популярное расширение xml-river перестало работать, у тысяч специалистов сломался привычный сбор семантики через KeyCollector. Я решила проблему локально: написала десктопную программу на PySide6, которая напрямую работала с новым официальным API Wordstat. Программа продавалась с пожизненной лицензией, а пользователи ходили в API под моим личным токеном. Всё работало отлично, пока клиентов не стало слишком много: общий лимит в 5000 запросов в сутки превратился в массовые ошибки 429 Too Many Requests. Стало ясно: модель с общим токеном доживает дни. В этом посте — технический разбор того, как я за одну неделю полностью переписала архитектуру, перевела парсер на SaaS-модель (FastAPI + SQLite) с независимыми квотами для каждого пользователя. С кодом, схемами и честной юнит-экономикой

Читать далее

ИИ-ассистент на базе Hermes Agent в Telegram: для саппорта, семьи, пет-проектов и не только

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

Недавно мы с женой придумали небольшой совместный проект: она креативит, я прогаю. Сделав каркас в Codex, я завел чат на троих с Hermes Agent. Пошерил ему доступы и контекст, теперь моя пассия добавляет фичи и двигает пиксели голосовухами. Это сработало так круто, что я всунул Гермеса много куда — и не могу не поделиться этим с вами!

В этой статье я расскажу: что такое Hermes Agent, как я его использую и как сделать себе также.

Начать ИИ-трасформацию

Невыразимое невалидное. Часть 2. Поведение и границы

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

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

Читать далее

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

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

Осенью 2024 года я не планировал начинать новый проект. Тем более связанный с медициной.

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

Вскоре нас направили в детскую больницу, где после обследования поставили диагноз — сахарный диабет первого типа.

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

Параллельно с этим я заканчивал курс Python в Яндекс Практикуме. Днём — работа, вечером — обучение, ночью — медицинские статьи и клинические рекомендации. Не самый простой период, но именно тогда и появилась идея проекта, о котором пойдёт речь дальше.

Читать далее

Как мы строим корпоративную экзаменационную платформу с AI: архитектура, дубли, мульти-tenant и продовые шишки

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

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

Хочу рассказать про наш проект Exam AI — внутреннюю платформу для аттестации и тренировки сотрудников.
Это не “ещё один тестик на 20 вопросов”, а система, где:

Читать далее

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

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

Градиентный бустинг часто воспринимают как «ещё один алгоритм из sklearn», но за ним стоит простая и сильная идея: модель не пытается сразу угадать правильный ответ, а шаг за шагом исправляет собственные ошибки.

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

Читать далее

Как голосовой ИИ-агент врал клиентам, путал звонящих и подделывал собственный голос — и как это чинится

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

За три месяца наш голосовой ИИ-агент успел соврать клиенту про несуществующего администратора, принять всех звонящих за одного человека и месяц выдавать обычный синтез за "клонированный голос". Разбираю, почему это лечится структурой кода, а не промптом — на полностью российском стеке.

Читать далее

import-linter: пусть границы слоёв сторожит машина, а не человек

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

Обычный летний день на проекте: ruff зелёный, mypy зелёный, тесты проходят. А domain при этом тихо импортирует adapters. Слоистая архитектура, которую рисовали на старте, теперь осталась только на схеме.

Линтер ловит неиспользуемый импорт и кривой отступ. Типизатор - что вместо int передали str. А то, что бизнес-логика потащила в себя SQLAlchemy или Redis, не видит никто. Кроме ревьюера, у которого в пятницу вечером открыто восемь PR.

Ниже - как отдать эту проверку машине. Инструмент называется import-linter, ставится за пять минут и встаёт в один ряд с ruff и mypy.

Читать далее

Почему мы отказались от «AI в каждой кнопке» и зато встроили AES-GCM в детское приложение

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

Почему мы отказались от «AI в каждой кнопке» и зато встроили AES-GCM в детское приложение

Откуда вообще взялось MIO

MIO — это история про собственные родительские потребности, с которыми сталкиваешься, когда ребёнку исполняется 5 лет.

Family Vault - Ключи и envelope - E2E и что внутри

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

Читать далее

Как я устал от CVAT и в соло написал десктопный инструмент для авторазметки датасетов на PyQt5

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

Надоело разворачивать CVAT через докер и мириться с лагами браузера? Я расскажу свою историю, как от простецкого аннотатора собранного на коленке написал мощную легковесную отечественную альтернативу на PyQt5 и OpenGl, с пакетной авторазметкой и иерархией классов.

Читать далее

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

Как мы делали VPN под Китай

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

Мы с другом учимся в Китае. В апреле, в очередной раз меняя умерший VPN, решили собрать свой, заточенный под Great Firewall, на протоколе Reality: VPN‑трафик в нём выглядит для системы фильтрации как обычная HTTPS‑сессия с каким‑нибудь сторонним сайтом. Я взял на себя бэкенд, бота и Mini App. Друг отвечал за серверную часть и ноды.

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

Читать далее

Современный MQTT-сервис на Python

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

В Python при выборе библиотеки для работы с MQTT почти всегда приходишь к paho-mqtt. Это зрелый и самый популярный клиент, но его API построен на колбэках, а современное Python-приложение живёт в asyncio: FastAPI, фоновые воркеры, асинхронные клиенты и всё это в одном общем event loop.

В одном из IoT-проектов я столкнулся ровно с этим. Мне нужен был MQTT-клиент, который без сложной адаптации встраивается в асинхронное приложение и позволяет работать с подписками как с управляемыми объектами, а не через набор колбэков.

Читать далее

Как подключить таск-трекер к кодовой базе через RAG и не сойти с ума от стоимости токенов

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

Главная проблема работы с LLM в реальном проекте — не качество модели, а контекст. Рассказываю, как с помощью RAG-индекса репозитория (векторы + граф вызовов) и плагина для Claude Code автоматически собирать правильный контекст по задаче из трекера — без ручного сбора и лишних токенов.

Читать далее

Сдерживаем полет фантазии LLM в киносервисе

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

Привет, меня зовут Никита, я — ИИ-энтузиаст и люблю кино. Я собрал Movie Planner — сервис для ведения базы кино с друзьями, планирования просмотров и трекинга сериалов. Работает как мобильное приложение, также есть формат веб-кабинета на movie-planner.ru

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

Узнать подробнее

Как правильно писать WebSocket API автотесты на Python

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

На примере FastAPI-чата показываю, как выстроить автотесты для API с двумя транспортами: REST используется для подготовки состояния, WebSocket — для проверки событий. В статье разбираем архитектуру тестов на Python: клиенты, фикстуры, Pydantic-схемы, контрактные проверки, Allure и CI/CD.

Читать далее

Django-кнопка «Наверх»: подключить за минуту вместо очередного велосипеда

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

Кнопка «Наверх» — вещь настолько простая, что обычно её делают прямо в проекте: ссылка, немного CSS, пара строк JavaScript — готово.

Для одной страницы это нормально. Но потом проект растёт. Появляется мобильная версия, cookie-баннер, чат в углу, требования к контрасту, строгий CSP. Где-то нужно добавить кнопку ещё и в Django Admin. И тот самый маленький кусок кода начинает жить своей жизнью.

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

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

Так появился django-scroll-to-top.

Читать далее

ContentCombine: как я сделал мультинишевый контент-комбайн и запустил ежедневный SEO-дайджест

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

Я сделал ContentCombine — мультинишевый контент-комбайн, который собирает материалы из RSS, Telegram, сайтов и других источников, нормализует их, считает скор, склеивает повторы в сюжеты, отделяет кейсы от шума и готовит ежедневный дайджест. Сначала движок работал на игровых новостях, потом я перенёс его на SEO и AI — без переписывания ядра, но с кучей неожиданных граблей: entity blobs, старые статьи под видом свежих, молчащие фиды, ложные тренды и LLM-недетерминизм в проде.

Читать далее
1
23 ...