Skip Navigation
Telegram
Как перестать писать LaTeX руками и заставить Python делать это за вас


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

Пакет latexify делает ровно одну вещь: транслирует Python-функции в математические формулы LaTeX.

Это не очередная LLM-обертка. Библиотека работает максимально детерминированно: она использует встроенный модуль ast, чтобы распарсить абстрактное синтаксическое дерево вашей Python-функции, и по жестким правилам транслирует узлы AST прямо в LaTeX-разметку.

Что она умеет на уровне AST:
🟢Распознает и конвертирует модули math и numpy (math.sqrt станет \sqrt, math.gamma\Gamma).
🟢Разворачивает if/elif/else в красивые кусочно-заданные функции (piecewise).
🟢 Рендерит NumPy-матрицы.
🟢 Понимает операции над множествами (&, | превращаются в \cap, \cup, если включить флаг use_set_symbols=True).
🟢 Умеет генерировать не только формулы, но и псевдокод (декоратор @latexify.algorithmic).

В Jupyter Notebook или Colab декоратор @latexify.function автоматически заставит ячейку отрендерить красивую формулу. Не нужно даже вызывать print().

🔗 Исходники лежат на GitHub, а пощупать вживую можно в Google Colab.

#годный_опенсорс
Telegram
Киберпанк, который мы заслужили 👾🍆
Киберпанк, который мы заслужили 👾🍆

Тут по сети гуляет пост с реддита, над которым все массово потешаются. Девушка радостно рапортует, что дала Claude доступ к своим Bluetooth-секс-игрушкам. Теперь нейронка во время секстинга сама решает, когда, как долго и с какой интенсивностью включать вибрацию.

Большинство хихикает про восстание машин и "AI-бойфрендов". А мы давайте посмотрим на внутрянку.

Открываем исходники Signal Bridge Remote. Девушка, которая в посте прямым текстом говорит «I'm not a developer», с помощью самого же Клода спроектировала, написала и задеплоила распределенную киберфизическую систему:

1️⃣ Сервер на FastAPI, который выступает как MCP (Model Context Protocol) эндпоинт для Claude.
2️⃣ Вменяемая архитектура с JWT-аутентификацией, rate-лимитами и прогрессивными банами IP (защита от сканирования).
3️⃣ Relay-хаб на вебсокетах, который прокидывает команды с VPS на мобильное устройство.
4️⃣ Локальный клиент на Android (через Termux), который транслирует команды в протокол Buttplug.io (да, это реальный opensource-стандарт для intimate hardware) и управляет железом по Bluetooth.

Claude здесь не просто генерит текст. У него зарегистрированы инструменты (tools) вроде pulse, escalate, vibrate и read_battery. LLM анализирует контекст диалога и вызывает нужную функцию, передавая параметры интенсивности и паттерна.

И там даже реализован полноценный dead man's switch: если вебсокет отваливается, железо немедленно стопается по таймауту локального хаба.

Пока на курсах заставляют писать 100500-й TODO-лист на Django, люди решают свои базовые потребности, интегрируя LLM в физический мир с соблюдением требований fault tolerance.
Я даже не знаю, что меня здесь впечатляет больше: то, насколько быстро протокол MCP адаптировали для remote-дрочки, или то, что код, сгенерированный LLM для управления вибратором, архитектурно логичнее и отказоустойчивее, чем микросервисы в некоторых финтехах.

#годный_опенсорс
Telegram
Лилу Даллас, мультипасспорт 🛂 А теперь она RAG-архитектор
Да, актриса Милла Йовович спроектировала архитектуру долгосрочной памяти для LLM-агентов (ЧТО ВООБЩЕ ПРОИСХОДИТ)?!. И нет, это не промо-акция очередного шиткоина, а абсолютно рабочий инструмент, который натягивает индустриальные стандарты.

Вместе с инженером Беном Сигманом они выкатили в опенсорс проект MemPalace, который выбил 100% на бенчмарке LongMemEval. Для сравнения: популярные коммерческие тулзы вроде Mem0 там нервно курят в стороне с их 30-45%.

Как пишет сама Милла в Instagram*, плоский векторный поиск по тысячам кусков текста превращает векторную БД в "склад, забитый хламом", где найти нужную деталь становится невозможно.

🏰 MemPalace использует принцип "Дворца памяти" (мнемотехника древних греков).
Вместо того чтобы заставлять нейронку сжимать текст и галлюцинировать, система сохраняет весь verbatim-текст (прямую речь), но жестко структурирует его на уровне метаданных в ChromaDB:

1️⃣ Wing (Крыло) — сущность (конкретный проект или человек).
2️⃣ Hall (Зал) — тип памяти (факты, события, предпочтения).
3️⃣ Room (Комната) — конкретный топик (например, auth-migration).
4️⃣ Drawer (Ящик) — исходный чанк текста.

Когда агент ищет инфу, система не делает слепой similarity search по всей базе. Она фильтрует: Крыло -> Зал -> Комната. За счет одной только этой иерархии метрика recall вырастает на 34%.

Что там под капотом:
▫️ Базовая версия выдает 96.6% recall на LongMemEval вообще без обращений к LLM API (чистый Python + ChromaDB + локальные эмбеддинги). Ноль затрат.
▫️ Гибридный режим (векторный поиск + LLM-реранкер на дешевом Claude Haiku) добивает метрику до 100%.
▫️ Никаких тяжелых графовых баз. Temporal Knowledge Graph реализован на обычном локальном SQLite.
▫️ Встроенный сжатый диалект AAAK. Это символьный язык для агентов, который жмет контекст в 30 раз без потери смысла, чтобы не выжирать окно токенов при загрузке агента.

Бен Сигман в своём X* справедливо гордится результатами и приглашает форкать репозиторий.

🔗 Код лежит тут: MemPalace

Дежурная справка для товарища майора:
Instagram принадлежит компании Meta, которая признана экстремистской организацией и запрещена в РФ.
Социальная сеть X заблокирована на территории РФ.


#годный_опенсорс
Telegram
Netflix выкатил VOID: Inpainting, который понимает причинно-следственные связи 🍿


Netflix выкатил VOID: Inpainting, который понимает причинно-следственные связи 🍿

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

Ресерчеры из Netflix совместно с INSAIT опубликовали модель VOID (Video Object and Interaction Deletion). Эта штука не просто замазывает пиксели фона, она удаляет объект вместе со всеми его физическими интеракциями на сцене.

Удалили человека, державшего гитару — гитара реалистично падает на пол.
Убрали подставку — предмет скатывается со стола.

Как это работает:
База — CogVideoX от Zhipu AI. Вся магия здесь зарыта не в переусложнении архитектуры, а в пайплайне подготовки данных и хитром conditioning'е.

1️⃣ Quadmask (4-value mask)
Вместо классической бинарной маски (удалить/оставить), сетку кормят маской из четырех значений:
0 (black) — сам объект на удаление.
127 (grey) — affected region (зона интеракции, где изменятся физические процессы, например, траектория падения).
63 (dark grey) — оверлей.
255 (white) — статический бэкграунд, который не трогаем.
Эту маску на препроцессинге автоматически собирает связка из SAM2 и Gemini (VLM-Mask-Reasoner).

2️⃣ Контрфактический датасет
Модель не симулирует физику в реальном времени. Чтобы научить диффузионку физике, инженеры сгенерили датасет парных видео в Blender (на базе mocap-данных HUMOTO) и Kubric. В одном видео объект есть, во втором — объекта нет, и движок просчитывает физику падения остальных элементов. Модель просто выучила этот физический приор.

3️⃣ 2-Pass Inference
Первый проход базово удаляет объект. Но мы знаем, что видео-диффузионки обожают мерцать. Поэтому есть Pass 2: он использует оптический поток для генерации warped noise в латентном пространстве. Это жестко фиксирует темпоральную консистентность.

Для запуска этого пайплайна вам понадобится GPU от 40GB VRAM (A100). Диффузионные трансформеры на видео жрут память безбожно. К счастью, в коде из коробки прикручен CPU-offload и FP8 квантизация, так что можно попытаться втиснуть это в железо попроще, если у вас много времени на ожидание тензоров из оперативки.

Код, веса (в формате safetensors) и демо-ноутбук уже открыты.

#годный_опенсорс
Telegram
Локальный RAG прямо поверх полноэкранных игр


Локальный RAG прямо поверх полноэкранных игр

Казалось бы, кого сейчас удивишь очередной оберткой над LLM?
🎮 Проект GameWikiTooltip с таким пользовательским флоу: играешь в Elden Ring или Helldivers 2, нажимаешь Ctrl+Q, поверх игры всплывает прозрачный оверлей. Внутри — браузер с вики или чат-бот, который отвечает на вопросы по билдам и механикам, опираясь на базу распарсенных YouTube-гайдов.

Смотреть исходники стоит не только ради геймерских фичей, но и ради архитектурных решений:

▪️ Вменяемый пайплайн поиска. Не просто слепой промпт в LLM. Реализован гибридный поиск: FAISS для семантики + bm25s (быстрая реализация на Rust) для точного лексического матчинга. Результаты мержатся через Reciprocal Rank Fusion (RRF), а сверху накручен кастомный Intent Reranker, чтобы отличать запросы механик от просьб посоветовать билд.
▪️ Глубокие Win32 хуки. В полноэкранных играх стандартные бинды библиотек отваливаются из-за перехвата инпута игрой (DirectInput/RawInput). Здесь реализован жесткий перехват глобальных шорткатов через ctypes (RegisterHotKey) и фильтрацию нативных сообщений Windows прямо в Event Loop'е Qt.
▪️ Интеграция PyQt6 и asyncio. Вечная боль десктоп-разработчиков: как подружить Event Loop от Qt с асинхронностью питона, чтобы UI не фризило при сетевых запросах к LLM. Здесь это элегантно решено через qasync.
▪️ Оффлайн-распознавание голоса. Чтобы не тайпать во время замеса, прикручен локальный vosk, который слушает микрофон в отдельном потоке и скидывает текст в инпут.

Отдельный плюс за архитектуру: парсинг ютуб-гайдов, чанкинг и эмбеддинги вынесены в оффлайн-шаг, а в рантайме приложение только гоняет легковесный поиск по локальным векторам и отправляет контекст в Gemini Flash 2.5 Lite для финальной генерации ответа.

Но а если вам не интересны исходники, то в играх может пригодиться по прямому назначению 😏

#годный_опенсорс
Telegram
🏴‍☠️ Перевод текстов: бесплатно, сердито и без API-ключей
🏴‍☠️ Перевод текстов: бесплатно, сердито и без API-ключей

Если вы хоть раз пытались прикрутить перевод текста к своему пет-проекту или парсеру, то знаете эту боль. Официальный Google Cloud Translation требует привязку карты и квоты, DeepL API — прекрасен, но дорог (и сложен в оплате из РФ), а писать свой скрапер для веб-морды переводчика — это гарантированный ад с генерацией токенов (tk), подписью запросов и постоянными отвалами верстки.
Но есть translators — библиотека, которая делает эту работу за вас.
Это агрегатор, который (по сути, методом реверс-инжиниринга) стучится в веб-интерфейсы более 30 переводческих сервисов.

Что под капотом:

1️⃣ Ассортимент. Кроме банальных Google/Bing/Yandex, там есть DeepL (лучшее качество для европейских языков), Baidu/Alibaba (для китайщины) и даже специфические штуки типа VolcEngine.

2️⃣ HTML-friendly. Функция translate_html умеет переводить контент, не ломая структуру тегов.

3️⃣ Умный обход. Есть поддержка разных HTTP-клиентов: requests, httpx, niquests и даже cloudscraper. Если один метод блокируют по фингерпринту, можно переключиться на другой прямо в аргументах.

4️⃣ JS-магия. Библиотека сама выполняет нужный JavaScript (через exejs) для генерации подписей запросов. Да, для этого в системе должен быть Node.js, но это малая плата за халяву.

🧑‍💻 Как это выглядит в коде:

import translators as ts

text = "Python is a language for rebels."

# Используем движок Alibaba
print(ts.translate_text(text, translator='alibaba', to_language='ru'))
# Вывод: Python - это язык для повстанцев.

# Или DeepL (если IP не в бане)
print(ts.translate_text(text, translator='deepl', to_language='ru'))


⚠️ Ложка дегтя (куда же без неё):
Это не решение для High-Load продакшена. Это скрапинг.
Вас будут банить по IP, если начнете долбить тысячи запросов в секунду (хотя в либе есть кэширование сессий preaccelerate).
API веб-интерфейсов могут меняться без предупреждения, и придется ждать обновления пакета.

Но для дата-аналитики, сбора датасетов, ботов или личных тулзов — хороший инструмент, который сэкономит кучу денег.

#годный_опенсорс
Telegram
Симулируем кожаных 👩‍👩‍👦


Симулируем кожаных 👩‍👩‍👦

У Microsoft есть интересный open-source проект — TinyTroupe. В чем суть? Большинство фреймворков заточены под assistance — помощь в решении задач. TinyTroupe заточен под симуляцию. Разница фундаментальная: ассистент должен быть эффективным, а симулятор — достоверным. Достоверный человек тупит, имеет предвзятость, помнит о завтраке и обладает характером.

Что внутри этого Python-зоопарка:
1. TinyPerson: У агента есть mental_faculty (когнитивные способности) и два вида памяти: EpisodicMemory (событийная цепочка) и SemanticMemory (база знаний и фактов).
2. Action Correction: Если LLM-агент внезапно «забывает» свою личность (например, веган начинает советовать стейк-хаус), система валидации TinyPersonValidator ловит это за руку, дает агенту по шапке и заставляет перегенерировать действие.
3. TinyWorld: Среда обитания. Здесь агенты взаимодействуют по правилам, которые вы описываете кодом. Можно задать даже социальную сеть с графами отношений.
4. TinyFactory: Генератор толпы. Если вам нужно 50 бразильских врачей, любящих тяжелый металл и экологию, для теста вашего нового приложения — фабрика их нашинкует по демографическим вводным.

Зачем это все?
Синтетические данные: Вместо того чтобы мучить реальных юзеров или покупать сомнительные датасеты, вы прогоняете проект через фокус-группу из 100 агентов с разными характерами.
Тестирование ПО: Можно заставить агента «пользоваться» вашим чат-ботом или поисковиком и смотреть, где он сломает логику своими человеческими ожиданиями.
Маркетинг: Оценка рекламы на симулированной аудитории до того, как вы сольете весь бюджет.

Внутри — типичный современный Python-стек: llama-index для RAG, chevron для шаблонов промптов и много-много JSON-спецификаций. Главный минус — по умолчанию все заточено под OpenAI.

Ну и кроме всего прочего, это доказательство, что мы живем в матрице 🌝

#годный_опенсорс