Обновить
1024K+

Python *

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

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

Базовый минимум. Часть 4:  ИИ-агенты

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

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

В четвертой, завершающей части серии «Базовый минимум» разбирается, что такое ИИ-агенты, чем они отличаются от RAG-систем, как работает ReAct и зачем нужны мультиагентные системы. В конце будет показан простой воспроизводимый пример минимального ИИ-агента-помощника в путешествиях в Google Colab.

Читать далее

Почему ваш монитор не умеет показывать бирюзовый (и ещё 65% цветов)

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

Всё началось с принтера. Точнее — с 1700 рублей, типографии на Театральной и фотографии моря в Абхазии. Кадр был невероятный: бирюзовая вода, низкое солнце, плачущие эвкалипты, и такой цвет, что хотелось окунуться в дисплей. Я выбрал баритовую бумагу, хотел потом вставить в рамку. Прождал сорок минут в очереди и... На выходе грязно-голубая лужа.

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

Читать далее

Как мы внедрили бота, чтобы слайды делали сами себя

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

Привет! На связи Маша Иванова — старший аналитик в команде монетизации и Азамат Эмирбеков — старший BI-разработчик. Мы помогаем коллегам в командах Авито Недвижимости и Авто — собираем аналитические данные.

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

Читать далее

Маленький LLM-чат на Python с Ollama и LiteLLM. Часть 1: ставим окружение и пишем первый запрос

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

Простой старт в LLM-разработке без API-ключей и облака: ставим Ollama, скачиваем модель и делаем первый вызов из Python через LiteLLM.

Читать далее

Параметризация Pytest: когда файловая коллекция становится тест-кейсами

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

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

Меня зовут Владислав Тимашенков, я занимаюсь автоматизацией тестирования в ГК InfoWatch. Мы разрабатываем DLP-систему для защиты контента и предотвращения утечек информации.

Специфика продуктов InfoWatch состоит в анализе самых разнообразных данных. Поэтому практически каждый автотест требует подхода с широким набором параметров. Для нашей команды хорошим решением стало вынести генерацию параметров pytest.mark.parametrize в отдельный компонент, который собирает данные из файловой коллекции проекта.

Существует множество способов параметризировать тестовые функции. Эта статья — пример изящной параметризации Pytest для сценариев, основанных на файловой коллекции проекта с большим количеством данных. Расскажем про наш опыт решения такой задачи.

Параметризация Pytest позволяет сделать из теста каркас, шаблон, который принимает данные для конфигураций, для assert и т.д.

Пример из документации Pytest:

Читать далее

Эволюция логирования в Lenta tech: грабли, миграции и неочевидный финал с Victoria Logs

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

Привет, Habr!

Меня зовут Максим Юрченко, я руководитель группы DevOps-инженеров в Lenta tech («Группа Лента»). В статье я расскажу о том, как за последние четыре года менялась наша система логирования, какие решения мы принимали по ходу роста инфраструктуры и к какому результату в итоге пришли (спойлер — без подводных камней и граблей не обошлось).

Читать далее

Как отправлять email через LoRa mesh-сеть (Meshtastic + Python)

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

Meshtastic позволяет обмениваться сообщениями через LoRa mesh-сеть даже без доступа к интернету. Но можно ли связать такую сеть с обычной электронной почтой?

Как получать и отправлять email там, где нет интернета и мобильной связи? Я сделал Python-шлюз для Meshtastic, который позволяет передавать письма через LoRa mesh-сеть и также писать ответ в сеть, который потом отправится как обычная почта.

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

В статье я расскажу, как устроен этот шлюз, как решалась проблема ограниченного размера LoRa-пакетов, как реализована фрагментация сообщений и как подключаться к Meshtastic-ноде через USB или Bluetooth, автоматически находя её текущий адрес.

Читать далее

Добавляем в бизнес-портал Битрикс24 роботов для автоматизации

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

В прошлой статье мы сделали первое пробное фронтенд-приложение.

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

Для проекта используем специально подготовленный для работы с AI-агентами шаблон AI-стартера, где уже заложены подробные инструкции для работы с ИИ.

В статье — описание всех изменений, возможных проблем во время работы и их решения. И ссылка на репозиторий с проектом, конечно.

Читать далее

Автоматизируем сканирование инфраструктуры: скрипт 3.0 для Сканер-ВС 7

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

Привет, Хабр! Это Антон Дятлов, инженер по защите информации в Selectel. Не так давно компания «Эшелон» выпустила Сканер-ВС 7, в котором изменилась логика работы с API. Старый скрипт перестал корректно работать, да и улучшения напрашивались сами собой. 

Рассмотрим основные изменения и улучшения. Ниже я приведу фрагменты кода и поясню, что именно изменилось и как это работает. Детали под катом.

Под кат!

Можно ли торговать, не анализируя рынок? Небольшое исследование

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

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

Правда и то, что со стороны других людей (не наших многомиллионных героев) ситуация может выглядеть по‑другому. 

Представьте детский сад. Один ребёнок приносит коробку конфет. Он её открывает. Показывает всем. Но делиться не собирается.

У остальных детей возникает понятная смесь эмоций: любопытство, раздражение.

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

Заработок без прогноза?

6 800 замеров глюкозы у кошек с диабетом: что я узнал, создав платформу для мониторинга

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

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

Полгода назад я писал здесь, как за 5 дней с помощью Claude создал приложение для мониторинга диабета у своей кошки Манишки. Ей было 13 лет, она весила 3 кг, и каждый день я мерял ей сахар глюкометром и колол инсулин. Из блокнота на холодильнике данные перекочевали в Excel, потом в Python-скрипт с графиками, а потом — в полноценное веб-приложение Diabnostic.

С тех пор кое-что изменилось: Манишка вышла в ремиссию в декабре 2025 — глюкоза пришла в норму, инсулин больше не нужен. Но приложение жило своей жизнью: за 5 месяцев работы на платформе зарегистрировались 346 владельцев, и вместе с их питомцами накопился уникальный датасет — 6 783 записи глюкозы от 121 питомца.

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

Поехали!

Как устроены память и Garbage Collector в CPython: разбор для Python backend interview

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

В Python памятью управляет не только Garbage Collector.
На самом деле основа всего — reference counting, а GC лишь помогает собирать циклические ссылки.

В этой статье разберём, как на самом деле устроено управление памятью в CPython:

что находится внутри PyObject
как работает ob_refcnt
почему одного reference counting недостаточно
как GC ищет циклический мусор
какие объекты вообще участвуют в сборке
и как всё это помогает искать memory leak в production

Если ты готовишься к senior Python интервью или просто хочешь понимать, как Python работает под капотом, — добро пожаловать под капот CPython.

Читать далее

Архитектура вместо синтаксиса: CodeSpeak — язык разработки следующего поколения, использующий силу LLM спецификаций

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

Команда разработчиков под руководством Андрея Бреслава, российского разработчика и автора языка программирования Kotlin, представила публичную альфа-версию нового инструмента для разработчиков — CodeSpeak. Платформа позиционируется как язык программирования нового поколения, в котором инженеры пишут спецификации на английском языке, а нейросети берут на себя генерацию, тестирование и рефакторинг исполняемого кода. Полноценное внедрение инструмента позволяет сократить объем кодовой базы в проектах в пять-десять раз. Технология поддерживает интеграцию в существующие сложные проекты на Python.

ИИ-язык, созданный для людей

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

DNS TXT как канал доставки конфигов: тихо, надёжно, неубиваемо?

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

Когда сервер с конфигом заблокировали — клиент отвалился. Разбираем способ доставки который сломать сложнее чем сам интернет

У любого прокси-сервиса есть слабое место которое не связано с протоколом. Сервер переехал, IP сменился, конфиг устарел — и пользователь сидит без связи пока не получит обновление вручную. Чем больше пользователей, тем острее проблема.

Стандартное решение — раздавать конфиги через HTTPS. Удобно, пока URL не попал в реестр. После этого тысяча человек одновременно пишет в поддержку.

DNS TXT-записи решают эту проблему не через обход блокировок, а через выбор канала который блокировать политически сложно.

Читать далее

Локальный голосовой ввод: Whisper + Ollama на Python

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

Мне нужен был голосовой ввод. Не диктовка в Google Docs, не облачный API — а простая штука: зажал клавишу, сказал, отпустил, текст появился в активном окне. Локально, без отправки аудио куда-либо.

Готовых решений, которые бы устроили, сходу не нашёл. Сделал свое. Может, кому будет полезно.

Читать далее

7 дней на AI-продукт: как мы автоматизировали подготовку к международным экзаменам

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

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

Привет, Хабр! Меня зовут Дмитрий Орлов. На AI Talent Camp я выступал в роли хастлера (AI-Product) команды ExamLab Bot и ожидал классический хакатон: собрать команду, получить дедлайны, сделать демо и разъехаться. На деле это оказался интенсив с быстрыми итерациями и постоянным общением с менторами. Нам всё время напоминали, что MVP — это не демка «на сцену», что мы отвечаем за полноценный AI-продукт, который будет нужно развивать. Поэтому мы с Дарьей Дмитриевой, которая выступала в роли хакера (LLM Engineer), и смогли сделать то, на что в продуктовой разработке уходят недели.

Читать далее

Линейная алгебра для нейросетей: векторы на практике

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

Данная статья посвящена основе основ нейронауки — линейной алгебре. Если вы когда-либо планируйте изучать искусственные нейронные сети (и не только), то вам необходимо начать именно с этого. Причем не важно, собираетесь ли вы заниматься фундаментальными исследованиями (Data Science) или просто лепить модели в продакшн на конвейере (ML Engineering), вы обязаны знать их математику хотя бы поверхностно. Любые настройки, дообучение и применение даже готовой модели, требуют понимания основ. А по сему данное знание, как минимум, не будет избыточным.

Материал рассчитан на новичка. Если вы знаете школьную математику, то сможете освоить и мой курс. В будущем я напишу статью о линейном представлении нейросетей, где мы адаптируем полученное знание под прикладные задачи, напишем некоторые слои на Python и построим настоящую модель!

В этой статье:
* Понятие вектора;
* Векторизация данных;
* Умножение на скаляр;
* Сложение векторов;
* Норма вектора;
* Скалярное умножение;
* Векторное умножение;
* Практика с кодом;
* Домашняя работа.

Все будет объяснено на красочных примерах в игровой форме. Ничего сложного. А в конце вас ждет самостоятельная практика с кодом.

Приятного чтения!

Читать далее

Мой плохой код — это ваша вина

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

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

Я как-то привык что если что-то ломается или плохо работает, то это я виноват. Это называется «брать ответственность за свои поступки» или, в случае программиста, за свой код, и это считается хорошим делом.

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

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

Сейчас я вам это покажу. Будет интересно, но впереди много боли. Я предупредил.

Хочу страдать

Аугментации изображений: как улучшить качество моделей без новых данных

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

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

Но на практике её часто используют поверхностно: «добавим флип, поворот и color jitter».

В этой статье разбираем аугментации глубже:
— два режима аугментаций (in-distribution и out-of-distribution)
— почему нереалистичные трансформации могут улучшать обобщающую способность
— когда аугментации начинают вредить
— как строить устойчивый пайплайн аугментаций

Материал основан на ~10 годах практики обучения моделей компьютерного зрения (на работе, при написании научных статей, в ML соревнованиях) и ~7 годах разработки библиотеки Albumentations.

Читать далее

Умная теплица на Raspberry Pi 4: управляем GPIO, ESP8266 и автоматизацией через веб-интерфейс. Часть 1

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

Когда у меня появилась теплица, первым желанием было автоматизировать всё, что можно: контроль температуры, управление вентиляцией, полив, освещение. Готовые решения либо стоят дорого, либо замкнуты в экосистеме одного производителя, либо не дают нужной гибкости. Поэтому я решил создать собственную систему по автоматизации управления процессами в теплице. Также у меня было много бесхозных контроллеров ESP8266/ESP32, которые нужно было куда‑то «пристроить».

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

Читать далее