Сборник IT новостей про Python. Самые актуальные новости про Python на одной странице.Читайте нас через Telegram @py_digest, RSS
Попробуйте наш тренажер IT инцидентов https://app.incidenta.tech. Вы научитесь диагностировать самые популярные сбои в IT.
Гибель богов. Fable и ещё 10 LLM реорганизуют код. Сравнение
Это подробный разбор одного эксперимента. Я взял god node из реального LangGraph агента и попросил 5 американских и 6 китайских моделей сначала предложить, как её распутать, а потом оценить предложения друг друга. Дальше тремя разными способами пытался понять, кому из них в этом деле верить.
Действительно богатые сообщения в Telegram-ботах: разбираем Rich Messages
!Очень долгое время разработчики Telegram-ботов довольствовались двумя способами форматирования сообщений: HTML и Markdown. Оба этих способа делали одно и то же: добавляли простое форматирование в обычный текст.Для большинства задач этого было достаточно, но в какой-то момент обычного HTML и Markdown может не хватать.В недавнем обновлении Telegram Bot API 10.1 эту проблему решили, добавив Rich Messages.
Harness Bench: как оценить агентский harness и выбрать связку с моделью
Когда мы собираем AI-агента, первым делом выбираем модель под задачу. Но в реальном приложении она не работает в одиночку, ей нужен агентский harness — программная обвязка. Поэтому выбирать приходится не просто модель, а связку «модель + harness».Чтобы делать этот выбор осознанно, мы создали Harness Bench — открытый фреймворк, который тестирует связки на реальных задачах в одинаковых условиях
Делаем отказоустойчивое файловое хранилище поверх JPEG-файлов
Что, если хранить зашифрованный контейнер не в одном файле, а распределять между несколькими JPEG-изображениями? Причём так, чтобы потеря части изображений не приводила к потере данных. В этой статье мы посмотрим, как может работать такая схема, и разберём её основные принципы без погружения в код.
Геостатистика в QGIS без SAGA: кригинг на чистом NumPy
Мы создаем софт для горно-геологических служб калийных рудников. Наши геологи и маркшейдеры каждый день превращают тысячи скважинных проб в карты: отметки кровли пласта, содержания KCl, мощности, газоопасность. Классический инструмент для этого - кригинг, и в QGIS он формально есть: SAGA, GRASS, Smart-Map, связки со SciPy. На практике же каждый вариант чем-то не устраивал, и год назад я начал писать свой плагин.
Интеграция CGM в Django: Libre, Medtrum, Home Assistant и собственное хранилище данных
Современный диабетик использует сразу несколько устройств и сервисов. Сенсор непрерывного мониторинга глюкозы, приложение производителя, иногда инсулиновую помпу, иногда обычные шприц-ручки. Каждый производитель строит собственную экосистему, и объединять их между собой никто не собирается.Мне хотелось получить единую систему, которая автоматически собирает показатели сахара, хранит историю и предоставляет данные уже моему приложению.
Сегментация опухолей головного мозга на МРТ-снимках с акцентом на точность границы
Один из самых важных параметров на МРТ снимках — это граница опухоли. Именно эта граница определяет, какие структуры головного мозга были затронуты опухолью, и позволяет оценить степень поражения соседних областей и тканей. Благодаря качественному определению контура можно точнее спрогнозировать лечение, поэтому нельзя недооценивать важность определения границ.
audiogear: как разметить миллионы аудиозаписей для TTS
Конвейер на Python + Hydra, который превращает папку с аудио в богато размеченный датасет: качество речи, просодия, разборчивость, спикер, транскрипция — по колонке на запись. От одной видеокарты до кластера, карты под нагрузкой, и он не падает на «длинном хвосте» записей, на которых обычно рассыпается наивный скрипт.
Создаем собственные окружения в Reinforcement Learning
Обучение с подкреплением (Reinforcement Learning) сейчас переживает ренессанс. Мы видим впечатляющие демонстрации успехов искусственного интеллекта: алгоритмы, обыгрывающие чемпионов в го и StarCraft, управляющие роботами‑гуманоидами и оптимизирующие дата‑центры. Но за этими успехами часто стоит жесткая привязка к конкретному окружению. Стоит немного изменить правила игры, и агент теряется.
import-linter: пусть границы слоёв сторожит машина, а не человек
Обычный летний день на проекте: ruff зелёный, mypy зелёный, тесты проходят. А domain при этом тихо импортирует adapters. Слоистая архитектура, которую рисовали на старте, теперь осталась только на схеме. Линтер ловит неиспользуемый импорт и кривой отступ. Типизатор - что вместо int передали str. А то, что бизнес-логика потащила в себя SQLAlchemy или Redis, не видит никто.
Современный MQTT-сервис на Python
В Python при выборе библиотеки для работы с MQTT почти всегда приходишь к paho-mqtt. Это зрелый и самый популярный клиент, но его API построен на колбэках, а современное Python-приложение живёт в asyncio: FastAPI, фоновые воркеры, асинхронные клиенты и всё это в одном общем event loop.В одном из IoT-проектов я столкнулся ровно с этим. Мне нужен был MQTT-клиент, который без сложной адаптации встраивается в асинхронное приложение и позволяет работать с подписками как с управляемыми объектами, а не через набор колбэков.
Сдерживаем полет фантазии LLM в киносервисе
Я собрал Movie Planner — сервис для ведения базы кино с друзьями, планирования просмотров и трекинга сериалов. Мы используем искусственный интеллект в нашем сервисе, и про него я как раз хочу рассказать: полгода назад я начал открывать для себя его возможности, и с тех пор исследую всё новое и новые способы применения, экспериментирую с мультиагентными системами и ищу, как интересно можно применить нейросети.
Как я устал писать парсер под каждый прайс и сделал из этого библиотеку
У нас на проекте десятки прайсингов на топливо: один вендор шлёт CSV, другой Excel, третий JSON на вебхук. Данные одни и те же, но колонка цены везде называется по-своему, даты в трёх форматах, единицы то литры, то галлоны, а половина нужных полей просто отсутствует. И под каждый источник у меня жил отдельный парсер на сотню строк if-else. Сначала их было три, потом восемь, потом я перестал считать. А по-настоящему добило другое: эти парсеры ломались молча. Вендор тихо переименовывал колонку.В третий раз за месяц копируя один и тот же парсер, я понял, что так нельзя, и вынес логику маппинга из кода в данные. Из этого выросла библиотека fidelis: