Обновить
512K+

Python *

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

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

Apple Intelligence в Python для агента Hermes

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

Apple выпустила Foundation Models SDK for Python ещё в феврале 2026. Эта Python-библиотека предоставляет прямой доступ к локальной модели Apple Intelligence: модель грузится в процесс, KV-кеш лежит в памяти, инференс идёт на Apple Silicon. Библиотека получила 1,2 тыс. звёзд на GitHub, последнюю версию 0.2.0 с поддержкой изображений представили на WWDC26.

Есть несколько обёрток для Foundation Models с поддержкой интерфейса OpenAI, но нет нативного провайдера для агентов, написанных на Python, таких как Hermes, в котором локальная модель работала бы как основной инференс агента со всеми его особенностями: рейтлимитером, откатом к другим моделям и аудитом. Также известно прямое использование Foundation Models в агенте iClaw на Swift, но эти возможности пока недоступны более универсальным агентам на Python.

Почему бы не попробовать добавить к Hermes адаптер на Foundation Models SDK for Python и получить среднее время реакции на короткие запросы 2,8 секунды, а на бенчмарке из 50 вопросов из MMLU, BoolQ, GSM8K, BIG-Bench и HellaSwag выбить 46 правильных ответов?

Под катом — архитектура, код и бенчмарки нативного провайдера для автономного агента Hermes.

Читать далее

История корутин: появление, развитие, спад и возрождение

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

Привет, Хабр! Меня зовут Дмитрий Попов, я Android‑разработчик в ПСБ. В какой‑то момент мне захотелось разобраться — что такое корутина и откуда они вообще взялись. Погрузившись в различные статьи и видео, я узнал много нового, рассказал коллегам внутри команды, а теперь решил рассказать и вам. Все, что важно знать о корутинах, по моему скромному мнению, — в этой статье!

Читать далее

Mermaid как платная AI функция в проекте Django/Next

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

Mermaid это текстовый формат описания диаграмм. В строках задаются тип схемы, узлы и связи. На выходе получается SVG. Формат подходит для API и базы данных. Код можно сгенерировать, проверить, сохранить, открыть повторно и отрендерить на клиенте.

В mermind/views.py добавлен 503, если ответ модели не начинается с валидной головы Mermaid. Без этой проверки запрос завершается успешно, ответ от модели приходит, но диаграмма не строится. В ответе остаются fenced-блоки, Markdown, строки с #, служебный текст и фрагменты до первой строки диаграммы.

В проекте собран полный серверный и клиентский контур. Генерация, очистка ответа, проверка, рендер, повторная правка, сохранение и библиотека.

Как извлекать Mermaid-код из ответа модели. Ответ сначала режется до fenced-блока. Потом проверяется первая строка.

Читать далее

Как я три года пилю свой музыкальный сервер: часть вторая. Архитектура Kalinka и её место среди музыкальных систем

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

Как устроен KalinkaPlayer: модульный бэкенд, нативный аудиоплеер, пайплайн метаданных и мобильное управление в одном проекте.

Изучить архитектуру

Google добавил AI-отчёты в Search Console. Я разобрался, что они реально показывают

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

Google начал разворачивать в Search Console отчётность по своим AI-поверхностям: трафик и показы стало видно с учётом AI Overviews и AI Mode. До этого AI-клики были размазаны внутри общего веб-отчёта, и понять, сколько дал именно ИИ-ответ, было нельзя. Я полез смотреть и довольно быстро уткнулся в потолок.

Оказалось, что Search Console показывает только AI-поверхности самого Google. Ни ChatGPT, ни Perplexity, ни Claude, ни Алиса в него не попадают в принципе — они не Google. Если вы, как и я, хотите видеть весь AI-трафик, а не только гугловский, придётся идти в логи сервера. Ниже — что именно даёт новый отчёт, где у него слепые зоны и как я закрываю их парсером логов.

Читать далее

Как красиво разложить граф на экране: метод Сугиямы по шагам

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

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

Читать далее

Своя GPT-like LLM по WH40K с нуля. Часть 3: собираем и обучаем LLM (pre-train)

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

Привет, Хабр! Меня зовут Владимир, и это третья часть цикла статей по написании и обучению небольшой decoder-only LLM с нуля. В первой части мы обучили токенизатор и собрали pretrain-датасет, во второй части реализовали класс Трансформер-блока. В этой части будем собирать и предобучать нашу LLM.

Читать далее

Ассистент, а не агент: как спроектировать предсказуемую LLM-систему

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

Привет! Меня зовут Владимир Суворов, я Senior Data Scientist и core-разработчик open-source AutoML-фреймворка OutBoxML.

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

Рассмотрим задачу по пяти пунктам:

Читать далее

Температурное поле круглой конфорки. Визуализация

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

В одной из предыдущих статей https://habr.com/p/1016120/ мы рассчитали температурное поле T(r, z, t)  круглой конфорки аналитическими методами. В этой статье мы сделаем его компьютерную визуализацию.

Читать далее

Бот в MAX молчит: четыре грабли Bot API, на которых я потерял неделю

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

Синяя галочка есть. Ответа нет. Мой собственный бот в MAX игнорирует моё же сообщение: сервер отвечает 200 OK, в логах чисто, а человек на другом конце ничего не видит. Так начались четыре вечера отладки Bot API нового российского мессенджера — четыре грабли, которых нет в документации. Где живёт токен. Почему 404 на чат, в котором ты прямо сейчас переписываешься. Как молча испаряется webhook-подписка. И почему MAX не говорит, которому из твоих ботов написали. Собрал всё, чтобы следующему хватило получаса вместо недели.

Читать далее

Не отдам Gpick! Он хороший! Но крутить педали придётся…

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

Исторически лучший Gpick в KDE на Wayland остался без пипетки, а штатные kcolorpicker-ы повергают в печаль и уныние. Что делать? Велосипедить! Написал лёгкий Python-скрипт, дёргающий родной XDG-портал.

UPD: Прокачал утилиту до полноценного комбайна — теперь она выдаёт чистые данные без префиксов, умеет копировать конкретные форматы (HEX, RGB, HSL) в буфер и идеально встаёт в любые shell-конвейеры и хоткеи. Больше велосипедов богу СПО!

Читать далее

Превращаем китайский домофон за 400 рублей в Telegram-звонок с фото и видео

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

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

Читать далее

Вчера в отчёте было 12 480, сегодня 12 517: пять причин, по которым цифры за прошлый месяц продолжают меняться

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

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

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

Читать далее

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

Harness кодинг‑агента: разобрал исходники Codex, OpenCode, Pi и свою собственную

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

Я собираю своего кодинг‑агента поверх моделей OpenAI. Базовый агентный цикл написал сам на Pydantic AI, и он быстро заработал. А потом начались сложные узлы: как сжимать распухший контекст, как не дать агенту делать заново уже сделанное, как понять, что он правда закончил, а не выдохся. На каждом таком узле я застревал и шёл смотреть, как это решают взрослые. Благо исходники Codex, OpenCode и Pi лежат открыто, а архитектуру Claude Code Anthropic описывает сама.

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

Читать далее

Structured outputs, которые не работают: пять ситуаций, где схема есть, а гарантий нет

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

Strict‑режим включён, схема валидна, ответ успешно парсится — а в проде всё равно всплывают None, пропавшие ограничения и аргументы инструментов не тех типов.

В статье разберём пять ситуаций, где Structured Outputs создают ложное ощущение надёжности, и посмотрим, какие проверки действительно стоит добавить в LLM‑пайплайн.

Читать далее

Мой личный джуниор. Бонус: аутентификация в Gradio и пользователи в Langfuse

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

Привет, Хабр! Меня зовут Владимир, и это внеплановое продолжение цикла про локального MCP-агента. В первых частях мы собрали агента, научили его работать через LangGraph, добавили Gradio-интерфейс, чекпоинты и трассировку.

В этой статье я покажу как добавить аутентификацию в Gradio-интерфейс и как использовать её для упорядочивания трейсов в Langfuse и чекпоинтов в LangGraph.

Читать далее

Сегодня я для себя открыл: Pony ORM

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

Читатели хабра знают меня как автора статей о django. Например, в предыдущем посте я писал о том, как собирался переписывать django на async/await. Кстати, первые эксперименты подтвердили, что подход рабочий, и что django отлично поддаётся переписыванию. А также - что он хорошо расширяем и содержит код высокого качества.

Однако, я пришёл к выводу, что несмотря на эти достоинства, django сильно уступает Pony ORM, которая, в отличие от django и других ORM, ещё и спроектирована правильно - способом, дружественным к оптимизациям. Не случайно в статьях, которые есть о ней на хабре, её хвалят именно за производительность.

В этой статье речь пойдёт о Pony ORM, но не о фичах для пользователя, которых много (о которых можно узнать в этих видео 1, 2), а о её внутренней архитектуре.

Читать далее

Летняя встреча Go-сообщества: системное и embedded-программирование

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

Если список литературы по Go на лето уже прочитан, пора переходить от теории к живым кейсам. 23 июля собираемся в Москве и онлайн на встрече Go-сообщества от YADRO и Postgres Professional. Начинаем в 19:00 — подключайтесь к трансляции и слушайте тех, кто работает с Go каждый день.

Отменяем summertime sadness

Почему «чем проще, тем лучше» не работает на ИИ-классификаторе

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

Обучил multi-label классификатор на 15 классов для модерации Discord-сообщества, получил micro F1 = 0.9358 — цифра, с которой можно закрывать задачу и не разбираться дальше. Но стоило посмотреть на precision и recall по каждому классу отдельно, как выяснилось: recall на TOXIC — около 0.78, а для части редких меток test split вообще не подтверждает качество — положительных примеров там почти нет. Разбираю на реальных цифрах и коде: почему агрегированная метрика такое скрывает, как считать вес классов через pos_weight при сильном дисбалансе, почему checkpoint стоит выбирать по macro F1, а не по training loss, и где принцип «чем проще — тем лучше» перестаёт работать при оценке качества классификатора.

Подробнее

4 ошибки в A/B‑тестах, из‑за которых случайный шум выглядит как эффект

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

Сплиттер работает корректно, метрика посчитана, а p‑value уверенно опустился ниже 0,05 — результат кажется готовым к раскатке. Однако ошибка в оценке дисперсии способна превратить случайное различие в статистически значимое.

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

Читать далее