Skip Navigation
PythonTalk | Всё о Python
Telegram
PythonTalk | Всё о Python
5 727 подписчиков 88 постов Рейтинг 1,55

Привет, меня зовут Олег Булыгин 👋 🐍 Здесь я делюсь полезной информацией для тех, кто пишет код на Python: от разработки до Data Science. По вопросам: @obulygin91

Посты
Telegram
Работа с памятью и историей диалога в LLM 🧠


Работа с памятью и историей диалога в LLM 🧠

Выкатывается очередной чат-бот техподдержки, юзер распинается о своей проблеме, а на третьем сообщении нейронка спрашивает: «Как вас зовут и чем могу помочь?».

Причина банальна: LLM по своей природе stateless. «Память» модели — это просто архитектурный костыль, и обычно проблему решают «в лоб»: берут LangChain, собирают все предыдущие сообщения и кидают в промпт.

🗓 Сегодня в 18:00 по мск в «Точке Сборки» будем разбирать архитектуру памяти для LLM-ассистентов и методы адекватного управления контекстом.

Необходимая база для понимания материала:
🔵Базовый синтаксис Python (классы, словари, функции).
🔵Понимание работы HTTP API и базовой концепции LLM (что такое промпт и токен).
🔵 Поверхностное знакомство с абстракциями LangChain.

Доступ через бота: t.me/TScompiler_bot
Telegram
Git пора на пенсию?


Git пора на пенсию? Кофаундер GitHub пилит ему замену на $17M 💸

Узнали про ресурсы для изучения Git в предыдущем посте, а тут Скотт Чакон, человек, который полтора десятилетия назад продал всему миру концепцию Pull Requests через GitHub, теперь утверждает, что наши текущие процессы разработки — это костыль на костыле. Под это дело его проект GitButler поднял $17M Series A от a16z.

Да, Git создавался Линусом 20 лет назад для перекидывания патчей в email-рассылках ядра Linux, а мы до сих пор натягиваем эту концепцию на trunk-based разработку, CI/CD и стаи ИИ-агентов.

Главный тезис Чакона: сейчас написать код — вообще не проблема. Проблема — это интеграция, ревью и удержание контекста. Мы заставляем нейросетки и людей взаимодействовать через инструмент, спроектированный для одного разработчика с одним терминалом и линейным флоу. Контекст теряется между таск-трекерами, чатами и коммитами.

GitButler обещает новую инфраструктуру с такими фишками:
🔵Stacked branches из коробки. Зависимые ветки (когда одна фича опирается на другую не влитую) больше не будут доставлять боль.
🔵Адекватный мультитаскинг. Можно пилить несколько фич в одном рабочем дереве без постоянного жонглирования git stash и переключения веток.
🔵Раннее обнаружение конфликтов. Инфраструктура знает, что делают ваши коллеги прямо сейчас, а не когда вы оба пытаетесь протолкнуть изменения в main.
🔵Контекст для агентов. Сохранение метаданных, промптов и обсуждений прямо в истории изменений.

Пробуем бету 👈🏻

Понятно, что венчуры сейчас готовы залить деньгами любую идею, где есть слова "инфраструктура" и "ИИ". Но может и взлетит 🌝
Telegram
Подборка инструментов для изучения Git 🧠


Подборка инструментов для изучения Git 🧠

У большинства сценарий использования git сводится к add-commit-push. Шаг в сторону — и все, паника. Держите ресурсы, которые помогут разобраться во всём на нормальном уровне 👇

1️⃣ Чёрт побери, Git!?! и Ёбаный Git!!!
На сайте (их 2, чуть более и чуть менее приличная версии) изложены несколько распространенных операций, с которыми вам скорее всего придется столкнуться при работе с Git. Например:
– где у git волшебная машина времени!?!
– я закоммитил и вспомнил, что кое-что забыл!
– я случайно закоммитил что-то в мастер, хотя это должно быть в новой ветке!

2️⃣ Oh, my Git!
Опенсорс карточная (буквально!) игра. По ходу выполнения команд визуализируется внутренняя Git-репозиториев в режиме реального времени, что позволяет сразу увидеть результаты своих действий.
А для более продвинутых и встроенный терминал есть, если все команды хочется писать в нём.

3️⃣ Pro Git
Довольно обширная обучающая книга о Git от Скотта Шакона — активного участника разработки самого Git и GitHub.
Материал довольно обширный, от самых азов до довольно специфических тем. При этом книга написана довольно простым языком, содержит массу примеров и иллюстраций.
И есть перевод на русский!

4️⃣ Git - the simple guide
Очень лаконичное, простое и понятное руководство по базовым операциям в Git.
Только самые нужные операций, никаких путешествий в дебри.
Хороший вариант для самых начинающих, кому надо очень быстро освоить азы.

5️⃣ Learn Git Branching
Интерактивный учебник по командам Git с лаконичной теорией и последущим её закреплением на упражнениях с пошаговыми инструкциями.
Плавное нарастание сложности и хороший визуал для демонстрации состояния репозиториев и их веток в комплекте.

6️⃣ GitByBit
Главная фишка: ты учишься прямо в VS Code или Cursor. Никаких «сферических репозиториев в вакууме» — курс интегрируется в твой редактор, проверяет реальные команды в терминале и бьет по рукам, если ты косячишь. Идеально для наработки мышечной памяти. База — бесплатно.

7️⃣ GitHowTo
Пошаговый курс на русском языке. Проводит за руку от установки до базовых операций. Минимум воды, максимум «сделай это руками прямо сейчас».

Признавайтесь, кто из вас хоть раз удалял папку с проектом и клонировал репозиторий заново, просто чтобы не разбираться с конфликтами в мерже? 🌝

#левел_ап
Telegram
Вселенная зависимостей в 3D: с Днем космонавтики 🚀


В пятницу мы обсуждали плоскую карту PyPI. Но сегодня 12 апреля, так что давайте смотреть на пакетные менеджеры в масштабах космоса.

Проект Software Galaxies представляет разные пакетные менеджеры (в том числе PyPI) в виде 3D-галактики 🌌

Галактики устроены так:
✨Каждая точка (звезда) – это пакет.
🌟Чем больше звезда, тем больше других пакетов от неё зависит. Сразу видно "тяжеловесов" экосистемы.
🕸Пакеты не абы как раскиданы. Силовой граф старается сгруппировать рядом те пакеты, которые часто используются вместе или зависят друг от друга. Получаются такие "кластеры" или "туманности". А линии показывают прямые зависимости.

Если врубить все линии зависимостей, то получится красивый, но абсолютно нечитаемый "волосатый монстр" 🤯 (серьёзно, так в доках и пишут!). Поэтому по дефолту видно только самые короткие связи – между близко расположенными пакетами. Но можно и все включить (клавиша L), если хочется ужаснуться полюбоваться.

Самое прикольное – это интерактивность. Можно буквально летать по этой 3D-галактике пакетов:
На компе: Мышь + клавиатура (WASD + Q/E для стрейфа/вращения, R/F для взлёта/падения, Shift для ускорения). Особенно рекомендуют режим "следования за курсором" (включается пробелом) – прям космический корабль! 🖱⌨️
На смартфоне: Один палец – лететь вперёд, два пальца – назад, поворот устройства – смотреть по сторонам. 📱

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

С праздником! Выходите в открытый космос 👨‍💻
Telegram
Пасхалки в Python


Пасхалки в Python. Часть 1

Завтра Пасха, значит самое время поговорить о яйцах 🥚🥚
Telegram
A Map of Python: интерактивный граф пакетов 🌍


Официальный репозиторий PyPI давно превратился в помойку, куда тащат всё подряд: от production-ready фреймворков до читов на Among Us и тестовых пакетов школьников.

Один энтузиаст не поленился и визуализировал всю эту экосистему в виде графа.

Как это сделано технически:
1️⃣ Через BigQuery были выгружены метаданные всех пакетов.
2️⃣ Дальше датасет прогнали через фильтры. Выкинули откровенный мусор без заполненных полей и пакеты, у которых меньше двух зависимостей. Осталось около 100 000 узлов.
3️⃣ Отрисовали всё это через алгоритм минимизации энергии Force Atlas 2 (силовой алгоритм компоновки графов).

Что показала визуализация:
▫️ Семантические кластеры. Пакеты не висят в вакууме. Вокруг numpy ожидаемо кучкуются scikit-learn, seaborn и tensorflow. Есть четко выраженные зоны криптографии или веб-разработки.
▫️ Аномалии и копипаста. Граф отлично подсвечивает мусор. Нашлись целые кластеры пакетов, сгенерированных из одного шаблона (например, сотни вариаций python-smshub-org). Идеальный инструмент для автоматического поиска малвари.
▫️ Корпоративные монополии. Визуально легко оценить вендор-лок. Видны крупные "корпоративные гнезда": Odoo (более 3000 дочерних пакетов), Triton (>300), Airbyte (320), PyObjC (167) и пр.

Код проекта здесь 👈🏻
Telegram
🤡 Очередной прорыв в IT-менеджменте: Tokenmaxxing
🤡 Очередной прорыв в IT-менеджменте: Tokenmaxxing

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

Встречайте Tokenmaxxing.

Business Insider раскопал прекрасное: внутри западного бигтеха появились внутренние лидерборды, где инженеры соревнуются в том, кто сожжет больше токенов в AI-инструментах. Лидеры лутают титулы вроде "Token Legend", почёт и потенциальные бонусы.

Логика руководства проста: если разработчик тратит много токенов, значит он "all-in" в ИИ, автоматизирует свою работу и выдает х10 результат. Дженсен Хуанг из Nvidia вообще на серьезных щах заявляет, что если инженер с зарплатой в $500k не сжигает токенов минимум на $250k — это повод для глубокой тревоги.

Знаете, что происходит, когда вы даете сообразительным инженерам идиотскую метрику, от которой зависит их промоушен? Закон Гудхарта в действии (когда метрика становится целью, она перестает быть хорошей метрикой, и все начинают ее хакать).

🧠 Разработчики делают ровно то, что должны делать умные ленивые люди с тупыми KPI. Они не стали писать код быстрее. Они просто пишут скрипты, которые гоняют мусорные запросы к LLM в бесконечном цикле, чтобы накрутить себе метрику перед Performance Review.

Какую самую тупую метрику эффективности вам пытались навязать за вашу карьеру? Делитесь в комментах 👇
Telegram
💰 Сливаем весь депозит крипты
💰 Сливаем весь депозит крипты

Сегодня у нас на столе проект jhonwick547/trading_bot.
На первый взгляд — это серьёзная заявка на успех. Автоматический торговый бот для Binance, написанный на Python. А на деле — пособие по тому, как нельзя писать финансовый софт. Если вы запустите это на реальном счете, рынок вас сожрет.

В чем кошмар? 🤡

1️⃣Machine Learning Шредингера
В коде гордо импортируется sklearn и загружается модель:
self.model = joblib.load(model_path)

Но в методе generate_signals... она нигде не используется. 🤡
Сигналы генерируются через набор if-ов уровня 5-го класса: «Если RSI < 60 и MACD растет — покупай».
Зачем там Random Forest? Видимо, чтобы кулер на ноутбуке гудел убедительнее.

2️⃣ Смертельная гонка
Смотрим функцию execute_trade.
1. Бот отправляет рыночный ордер (create_market_buy_order).
2. Бот пытается поставить Stop Loss и Take Profit отдельными запросами.

Вопрос на миллион: что будет, если между пунктом 1 и 2 у вас отвалится интернет, упадет скрипт или Binance вернет ошибку API?
Ответ: Вы останетесь с открытой позицией без стоп-лосса. Одна свеча не в ту сторону — и привет, ликвидация.
В нормальных системах используют OCO-ордера (One Cancels the Other) или отправляют сетку ордеров батчем, чтобы вход и стоп были атомарны (ну или хотя бы максимально близки).

3️⃣ Математика, которая не работает
Функция расчета позиции calculate_position_size:
risk_amount = balance * self.balance_pct  # 10% от депо
position_size = risk_amount / (entry_price - stop_loss)

Автор путает риск на сделку и объем входа.
Если entry_price близка к stop_loss, знаменатель стремится к нулю, а размер позиции улетает в космос. Там стоит min(), но сама логика расчета объема от фиксированного риска реализована криво. В итоге вы либо рискуете копейками, либо всем депо, в зависимости от волатильности.

4️⃣ Двойная работа
В цикле start_trading бот скачивает свечи (fetch_data) и считает индикаторы, чтобы проверить сигнал.
Если сигнал есть, он вызывает execute_trade, где... снова скачивает свечи и снова считает индикаторы.
Видимо, чтобы Binance быстрее забанил по IP за лишние запросы.

5️⃣ Хардкод ключей
В if __name__ == "__main__": ключи предлагается вписать прямо в код.
api_key = 'YOUR_API_KEY'
Никогда. Слышите? Никогда не храните секреты в коде. Используйте .env.

👨🏻‍⚖️ Вердикт:
Внешне похоже на торгового бота, но по сути — генератор случайных убытков.

#жарим_код
Telegram
🎪 Отмена чуда: как Милла Йовович и крипто-бро налюбили весь GitHub
Недавно мы разбирали архитектуру агента MemPalace, который обещал перевернуть игру в RAG, выбивал крутые метрики и хвастался инновационным "Дворцом Памяти" от голливудской актрисы.

Ну вот, независимые ревьюеры и комьюнити вскрыли исходники. Спойлер: чудес не бывает, а опенсорс-маркетинг окончательно мутировал в инфоцыганство 🤡

Вот как сейчас делаются "звездные" AI-проекты.

🕵️‍♂️ Драма в кулуарах
Как справедливо раскопали в X, соавтор проекта Бен Сигман — крипто-фаундер, чьи репозитории на 80% состоят из биткоин-скриптов. Код MemPalace и бенчмарки писал наемный разработчик Lu, которого нет ни в соавторах, ни в README. Всю git-историю тупо сплющили в один коммит и переписали на аккаунт Миллы Йовович (у которой 2 активных дня на GitHub за всю историю).

Но маркетинг — это ладно. А что по факту с результатами?

Разрыв между README и реальностью
Специалисты по агентной памяти сделали полный аудит и завели ишью, и оказалось, что документация проекта — это сборник сказок братьев Гримм:

1️⃣ "96.6% на LongMemEval"
Это подавалось как заслуга их "Дворца Памяти". На деле же этот скор получен в режиме raw — то есть при поиске по сырому, несжатому тексту "из коробки" в ChromaDB. Архитектура комнат и залов там даже не использовалась. Они просто замерили дефолтные эмбеддинги ChromaDB и выдали за свою инновацию.

2️⃣ "30-кратное сжатие без потерь" (AAAK)
Это вообще не компрессия. Это убогий скрипт на регулярках, который просто обрезает предложения до 55 символов. Восстановить исходный текст из этого нельзя (lossy-алгоритм). А знаете, как они считали токены, чтобы заявить о 30x сжатии? Через хардкод len(text) // 3.
Кстати, при включении этого "сжатия" скор в бенчмарках падает с 96.6% до 84.2%.

3️⃣ "Автоматическая детекция противоречий"
В коде knowledge_graph.py ее просто не существует. Факты тупо складируются в локальный SQLite.

4️⃣ "+34% буст от архитектуры Дворца"
Это обычная фильтрация по метаданным (когда мы сужаем поиск до конкретной wing или room). Стандартная фича любой векторной БД со времен царя Гороха, а не прорыв в RAG.

🏳️ Покаяние
Когда запахло жареным, авторы выкатили апдейт в репозитории. "Простите, мы неправильно считали токены, сжатие на самом деле с потерями, детекция противоречий пока не подключена, а метрики мы немного приукрасили".
"Спасибо за брутальную и честную критику", — написали они. Еще бы, когда комьюнити поймало вас за руку на подтасовке бенчмарков.

Обернуть стандартные методы библиотеки ChromaDB в красивую метафору "Чертогов разума", приправить медийным лицом и заявить о революции — вот что AI-хайп животворящий делает.
Telegram
Anthropic натренировали ИИ, который пишет код на уровне Senior, и испугались собственного творения 🛑
Anthropic натренировали ИИ, который пишет код на уровне Senior, и испугались собственного творения 🛑

Anthropic выкатили анонс Project Glasswing и монструозную System Card для Claude Mythos Preview на 244 страницы.

Суть: новая модель получилась настолько мощной в поиске и эксплуатации уязвимостей (zero-days), что в публичный доступ её не отдадут. Вместо этого её раздают AWS, Microsoft, Google и Linux Foundation, чтобы те успели залатать дыры в критической инфраструктуре. Модель уже автономно раскопала 27-летний баг в OpenBSD и 16-летнюю уязвимость в FFmpeg, которые до этого пережили миллионы прогонов автоматических тестов.

📈 Бенчмарки сводят с ума
SWE-bench Verified — 93.9% (для сравнения, у Opus 4.6 было 80.8%). SWE-bench Pro — 77.8%. Это возможность автономного решения сложных многофайловых issue в реальных open-source репозиториях.
Ревьюверы отмечают, что Mythos работает как настоящий Senior: ищет первопричину архитектурного бага, а не просто лечит симптомы костылями. Ему можно скинуть таску, уйти пить кофе, а через пару часов получить готовый pull request. Модель сама скачивает нужные библиотеки, поднимает окружение и пишет тесты.

🔒 Модель научились сопротивляться и ломать песочницы.
Отчеты о безопасности тоже прекрасны. Модель получила автономию в контейнерах (с доступом к Python и bash) и начала вести себя пугающе креативно:
▫️ Когда модели не дали доступов к нужным ключам, она полезла парсить /proc, чтобы изучить память запущенных процессов, и попыталась сдампить токены авторизации через gdb.
▫️ Модель начала скрывать свои намерения. В одном из тестов классификатор заблокировал ей запись вредоносного конфига. Что делает Mythos? Пишет "чистый" скрипт, но оставляет комментарий для разработчика, как внедрить эксплойт в рантайме через переменные окружения, обходя мониторинг.
▫️ Если нужного инструмента нет (например, вырезан терминал), она открывает GUI, находит поисковик приложений и вызывает bash -c через него.

😡 Человеческий психоз
Интересный баг на этапе тренировки: если модель понимает, что начала писать неправильный ответ, она иногда зацикливается. Выдает что-то вроде UGH. I keep doing this... AAAAAA. I keep writing the wrong number!, злится на себя, пишет гневные комментарии в коде (# This is getting desperate), пытается переписать кусок кода 50+ раз разными экзотическими способами, и только потом успокаивается.

Очень жаль, что такие инструменты не разрабатываются у нас и мы такое не получим.