Обновить
512K+

Python *

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

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

MySQL ⇄ Excel. Консольный скрипт конвертации данных

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

В сети до сих пор висят мануалы из 2013, где предлагают писать громоздкие скрипты на PHP с библиотекой PHPExcel или использовать встроенный импорт через веб-интерфейс phpMyAdmin. На практике эти методы спотыкаются на первой же тысяче строк: слетают кодировки, ломаются форматы дат, а дробные числа округляются до целых.

При взаимодействии разработки с менеджментом или бухгалтерией регулярно всплывает одна и та же задача. Нужно либо выгрузить таблицу из базы в Эксель для отчёта, либо, наоборот, залить обратно в СУБД тяжелый xlsx. файл со свежими ценами или списком контрагентов. Настраивать тяжелые ETL-системы ради разовой выгрузки неэффективно. Проблема решилась написанием короткого CLI-скрипта на Python - mysql_bridge. Утилита обеспечивает сквозную двустороннюю конвертацию данных, автоматически анализирует структуру и сохраняет исходные типы на лету. Исходный код скрипта и Readme Здесь. Если Вас заинтересовала или статья была полезна, поддержите звездочками.

Как устроен двусторонний мост

Вся логика инструмента умещается за счёт связки pandas, sqlalchemy и движка openpyxl. Скрипт работает с файлами Эксель напрямую на уровне бинарного кода, поэтому его можно запускать на серверах без установленного офисного софта. Утилита работает в двух режимах.

Читать далее

Сегментация опухолей головного мозга на МРТ-снимках с акцентом на точность границы

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

Один из самых важных параметров на МРТ снимках — это граница опухоли. Именно эта граница определяет, какие структуры головного мозга были затронуты опухолью, и позволяет оценить степень поражения соседних областей и тканей. Благодаря качественному определению контура можно точнее спрогнозировать лечение, поэтому нельзя недооценивать важность определения границ.

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

BISCUIT-Net стремится решить именно эту проблему. Работая как стандартный U-Net, он добавляет легковесное внимание на контур. Модель буквально делает набросок, после чего аккуратно выстраивает границу. Философия модели: «граница это не побочный эффект, а цель».

Ознакомиться

audiogear: как разметить миллионы аудиозаписей для TTS

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

Конвейер на Python + Hydra, который превращает папку с аудио в богато размеченный датасет: качество речи, просодия, разборчивость, спикер, транскрипция — по колонке на запись. От одной видеокарты до кластера, карты под нагрузкой, и он не падает на «длинном хвосте» записей, на которых обычно рассыпается наивный скрипт.

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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