Как Кембриджский университет стал одним из самых влиятельных университетов мира | Полная история 1209 года
Это полная история Кембриджского университета, одного из самых престижных университетов мира.
Команда разработчиков под руководством Андрея Бреслава, российского разработчика и автора языка программирования Kotlin, представила публичную альфа-версию нового инструмента для разработчиков — CodeSpeak. Платформа позиционируется как язык программирования нового поколения, в котором инженеры пишут спецификации на английском языке, а нейросети берут на себя генерацию, тестирование и рефакторинг исполняемого кода. Полноценное внедрение инструмента позволяет сократить объем кодовой базы в проектах в пять-десять раз. Технология поддерживает интеграцию в существующие сложные проекты на Python.
ИИ-язык, созданный для людей
В феврале 2026 года проект CodeSpeak перешел в стадию открытого альфа-тестирования, предложив инженерам концепцию поддержания спецификаций вместо исходного кода. Платформа представляет собой консольную утилиту, которая интегрируется в рабочее окружение и выступает прослойкой между разработчиком, пишущим требования на английском языке, и большой языковой моделью, которая эти требования реализует. В качестве основного движка генерации CodeSpeak использует модель Claude Opus 4.6 от компании Anthropic.
Основной метрикой эффективности CodeSpeak разработчики называют кратное уменьшение объема проекта, с которым напрямую взаимодействует человек. На примере перевода существующих open-source библиотек под управление платформы, объем исходных файлов сокращается в среднем от шести до десяти раз. Человеку остается поддерживать только короткий текстовый документ, описывающий суть алгоритма, в то время как техническая реализация скрыта под капотом системы тестирования и сборки.
В отличие от популярных чат-ботов и ИИ-агентов, CodeSpeak ориентирован не на быстрое прототипирование, а на долгосрочную поддержку продакшен-систем. Платформа изначально создавалась для работы в командах и подразумевает управление сложной архитектурой. Система умеет разворачивать проекты с нуля, однако ее главная особенность заключается в способности встраиваться в существующие кодовые базы и локально перехватывать управление отдельными модулями, не нарушая работу остального приложения.
Переход к разработке на естественном языке стал для Андрея Бреслава логичным продолжением его предыдущей работы. Во время работы в JetBrains в 2010-х годах он спроектировал язык Kotlin с целью избавить Java-разработчиков от избыточного шаблонного кода. В то время синтаксис Kotlin позволил автоматизировать множество рутинных операций на уровне компилятора, сделав программы более читаемыми.
С развитием больших языковых моделей проблема избыточности вышла на новый уровень. По мнению Бреслава, огромный пласт современного кода является очевидным не только для инженера, но и для алгоритмов машинного обучения. Если раньше компилятору требовались точные синтаксические конструкции для понимания задачи, то сегодня нейросеть способна извлечь нужную техническую реализацию из своего внутреннего представления, обученного на всем мировом открытом коде. Это делает ручное написание стандартных алгоритмов неэффективной тратой времени.
При разработке CodeSpeak команда исходила из того, что программирование исторически двигалось по пути повышения уровня абстракций: от машинных кодов к ассемблеру, затем к языкам высокого уровня вроде C и Java. CodeSpeak рассматривается как следующий шаг в этой иерархии, где уровень абстракции поднимается до естественного языка, а языковая модель выполняет роль сверхмощного компилятора, генерирующего итоговую логику.
Процесс разработки в CodeSpeak кардинально отличается от классического цикла. Точкой входа служит файл с расширением .cs.md, содержащий спецификацию конкретного модуля. Инженер описывает в нем структуру данных, логику обработки и форматы вывода. После запуска команды сборки система анализирует этот файл, собирает контекст проекта и передает план действий языковой модели.
Важнейшим элементом архитектуры платформы является автономное тестирование. В процессе сборки CodeSpeak не просто генерирует код, но и самостоятельно пишет модульные тесты для проверки заявленных в спецификации требований. Если тесты не проходят, система итеративно исправляет сгенерированный код до тех пор, пока функциональность не будет полностью соответствовать тексту. Для разработчика процесс выглядит как компиляция: на входе подается текстовое описание, на выходе получается рабочий и протестированный модуль.
В текущей версии система глубоко интегрирована с экосистемой Python и менеджером пакетов uv. Инструмент автоматически управляет виртуальными окружениями и зависимостями, позволяя создавать полноценные веб-приложения, например, на базе фреймворка Django, буквально из одного файла спецификации.
Чтобы понять, как абстрактный текст превращается в детерминированную логику, достаточно взглянуть на структуру типичного исходника CodeSpeak. На прикрепленном к статье демонстрационном видео показан процесс работы с платформой, где разработчик оперирует исключительно такими текстовыми контрактами.
Допустим, нам нужно написать конвертер для разбора сохраненных почтовых сообщений. Вместо написания десятков строк на Python разработчик создает файл eml_converter.cs.md со следующим содержимым:
# EmlConverter
Converts RFC 5322 email files (.eml) to Markdown using Python's built-in `email` module.
## Accepts
`.eml` extension or `message/rfc822` MIME type.
## Output Structure
1. **Headers section**: From, To, Cc, Subject, Date as `**Key:** value` pairs
2. **Body**: plain text preferred; if only HTML, convert to markdown
3. **Attachments section** (if any): list with filename, MIME type, human-readable size
## Parsing Requirements
- Decode RFC 2047 encoded headers (e.g., `=?UTF-8?B?...?=`)
- Decode body content (base64, quoted-printable)
Из этой спецификации система автоматически генерирует два артефакта: непосредственно исполняемый Python-компонент (например, eml_converter.py) и набор юнит-тестов (test_eml_converter.py). Система самостоятельно прогоняет тесты и убеждается, что функция корректно обрабатывает структуру файлов, извлекает нужные заголовки и не падает при отсутствии вложений.
Главная ценность такого подхода заключается в жесткой изоляции. Так как спецификация предельно четкая и имеет строгие контракты ввода-вывода, ИИ-агенту не нужно выдумывать, что именно реализовать, или галлюцинировать дополнительный функционал. Нейросеть ограничена рамками Markdown-файла. Если спустя время разработчику понадобится добавить извлечение даты получения письма, он просто допишет одну строку в раздел «Output Structure» в .cs.md файле. После команды сборки CodeSpeak обновит исключительно eml_converter.py и его тесты, совершенно не затрагивая остальную кодовую базу проекта.
Понимая, что переписать существующие энтерпрайз-проекты с нуля практически невозможно, создатели CodeSpeak предусмотрели возможность частичной интеграции. В так называемом смешанном режиме (Mixed Mode) разработчик может инициализировать CodeSpeak внутри старого репозитория и строго ограничить список файлов, с которыми системе разрешено взаимодействовать. Это позволяет внедрять новые функции через текстовые спецификации, не подвергая риску устоявшуюся архитектуру.
Для работы с уже написанным кодом реализован механизм автоматического реверс-инжиниринга и передачи управления (команда takeover). Инженеру достаточно указать утилите конкретный исходный файл: система проанализирует алгоритмы и извлечет их бизнес-логику, сгенерировав для нее новый текстовый Markdown-файл со спецификацией. В официальном блоге проекта приводится показательный пример с конвертером форматов из библиотеки Microsoft MarkItDown, где CodeSpeak успешно превратил сотни строк Python-кода в лаконичное текстовое описание правил парсинга.
Как только существующий код переведен под контроль платформы, править оригинальные исходники вручную больше не нужно. Если в дальнейшем потребуется, например, добавить обработку нового поля в почтовом сообщении, разработчик просто вписывает одно дополнительное требование в Markdown-спецификацию. Опираясь на это обновление, CodeSpeak самостоятельно перепишет исходный код конвертера, создаст нужные вспомогательные методы и расширит тестовую базу для проверки новых требований.
Архитектура CodeSpeak решает одну из главных проблем современных ИИ-помощников вроде Cursor или GitHub Copilot. При использовании агентов инженер формулирует свои намерения в интерфейсе чата. Агент выдает готовый код, который затем отправляется в репозиторий проекта. При этом сам диалог, содержащий истинный смысл и бизнес-логику решения, теряется навсегда.
Бреслав отмечает, что при таком подходе коллеги разработчика видят только результат работы машины, а не изначальное намерение. Код становится языком общения между инженерами, хотя изначально он генерировался машиной для машины. В долгосрочной перспективе это приводит к усложнению код-ревью и потере контроля над архитектурой, так как тестировать и проверять огромные массивы сгенерированного кода без понимания изначальной логики практически невозможно.
Платформа CodeSpeak меняет этот парадокс, фиксируя диалог с ИИ в виде статических файлов спецификаций. Спецификация становится главным артефактом, подлежащим контролю версий и код-ревью. Команда обсуждает и утверждает смысловую часть алгоритма, оставляя валидацию синтаксиса на откуп автоматизированным тестам.
Подход с использованием формальных спецификаций решает проблему масштабирования и поддержки больших кодовых баз, однако ручное создание таких документов, вероятно, окажется лишь промежуточным этапом в эволюции разработки. Логика развития инструментов на базе больших языковых моделей указывает на то, что в обозримом будущем инженеры перестанут писать даже сами спецификации.
Вместо структурированных файлов разработчик будет формулировать бизнес-требования на свободном естественном языке — в виде высокоуровневых продуктовых пожеланий или пользовательских историй. ИИ-агенты возьмут на себя роль системных аналитиков: они будут переводить неструктурированный текст от человека в строгие формальные спецификации. Этот процесс станет логичным развитием механизма реверс-инжиниринга, который уже сейчас используется в CodeSpeak для генерации контрактов из старого кода. Сформировав спецификацию, машина самостоятельно сгенерирует по ней исполняемый код и тесты.
В такой парадигме роль программиста кардинально меняется. Навык написания формальных контрактов с нуля будет требоваться крайне редко, уступая место навыку аналитического чтения. Главной задачей разработчика станет умение читать спецификации, понимать заложенную в них архитектуру и верифицировать логику. Человеку предстоит выступать в роли валидатора, который проверяет, правильно ли ИИ-агент интерпретировал изначальную бизнес-идею, прежде чем эта спецификация превратится в работающий продукт. Фокус профессии окончательно сместится от создания строк кода или текста к экспертной оценке и управлению смыслом.
Развитие ИИ-агентов породило в индустрии феномен, который западные разработчики в шутку окрестили vibe-coding — подходом, при котором человек просто описывает желаемый результат текстом, а нейросеть выдает готовое приложение. На фоне резкого скачка возможностей моделей многие компании начали замораживать наем младших разработчиков, ошибочно полагая, что алгоритмы способны полностью заменить начинающих специалистов.
В большом интервью, видео которого представлено ниже, Андрей Бреслав прямо называет массовый отказ от найма джуниоров глупой и временной ошибкой рынка. По его словам, управленцы сейчас ослеплены хайпом вокруг ИИ-инструментов, но эта эйфория неизбежно пройдет, когда индустрия столкнется с необходимостью поддерживать сгенерированные проекты на длинной дистанции. Рано или поздно бизнес осознает, что для развития технологий в индустрию должен постоянно поступать приток новых людей.
Главная проблема бездумного делегирования заключается в потере контроля. Бреслав подчеркивает, что если всю архитектурную работу начнут выполнять исключительно модели, а люди перестанут понимать, как именно работает код, это приведет к потере субъектности инженера. Задача человека — управлять так называемой «сущностной сложностью» (essential complexity), точно формулировать намерения и принимать технические решения. Машина выступает лишь исполнителем, и для корректной постановки задач ей по-прежнему требуется полноценный инженерный склад ума.
Начинающим разработчикам создатель Kotlin советует не поддаваться панике, а извлекать из ситуации выгоду. С одной стороны, необходимо в совершенстве освоить новые ИИ-инструменты, чтобы многократно повысить свою продуктивность. С другой — использовать освободившееся время для максимально глубокого погружения в фундаментальные, хардкорные основы программирования. Умение разобраться в том, как всё устроено «под капотом», вскоре станет редкой и крайне востребованной экспертизой на рынке, переполненном операторами нейросетей.
На данный момент CodeSpeak имеет статус альфа-версии и требует от пользователей готовности к техническим шероховатостям. Команда проекта фокусируется на улучшении механизмов синхронизации: система должна гарантировать, что при удалении кода его всегда можно в точности восстановить из спецификации, а любые изменения текста транслируются в адекватные изменения архитектуры. Несмотря на раннюю стадию, инструмент уже обозначает новый вектор развития индустрии, где главной компетенцией инженера становится умение структурировать сложность и управлять намерениями, а не владение синтаксисом конкретных языков программирования.
CodeSpeak: Software Engineering with AI — CodeSpeak
Андрей Бреслав — российский программист, один из создателей языка программирования Kotlin (руководитель группы разработчиков в компании JetBrains), сооснователь сервиса подбора психологов Alter.ru, основатель CodeSpeak.
Кто знает как скачать видео из youtube? Раньше было просто, было много бесплатных вариантов - сервисов, которыми можно было воспользоваться, а сейчас за все требуют подписку.
В итоге потратив уйму времени на поиске ничего полезного я так и не нашел. А потребность в скачке видео у меня была, и так не желая сдаваться и платить «монету», решил сделать свою программу.
Я не программист, по профессии я специалист по налогам (12 лет работы в ФНС) и IT для меня просто хобби, которое мне нравиться. Поэтому бросил себе «вызов» и решил попробовать сделать.
В итоге приложение написал на Python, интерфейс сделан через PySide (Qt). Использовал yt-dlp — движок, который умеет аккуратно работать с видеопотоками и форматами. Затем собрал вокруг него удобную оболочку, чтобы не запускать всё через консоль.
Что реализовано:
автоматическое определение платформы по ссылке;
предпросмотр: подтягивается название и превью;
выбор формата (аудио или видео);
если видео и аудио идут раздельно — корректная склейка через FFmpeg;
очередь загрузок;
история скачиваний;
Возможно, со временем я что-то ещё доработаю, улучшу интерфейс или добавлю мелочи, которые будут всплывать в процессе использования. Но инструмент уже рабочий и мою потребность в скачивании видео (с разных сайтов) он закрыл.
В будущем может решу закинуть программу на сервак и сделать свою веб версию платного приложения😆 ну или хотя бы за подписку))
Если интересна техническая составляющая пишите, отвечу)
Если кому интересная моя основная деятельность подписывайтесь на канал «Налоговый Инсайдер».
Колонка работает локально без внешних сервисов. Имеет функцию подключения к умному дому Home Assistant через собственную интеграцию «Альфа коннект». Также реализована возможность одновременного использования NPU колонки другими младшими моделями Альфы с помощью встроенного модуля «Альфа NPU Share».
Голосовой ассистент работает на SoC RK3588 со встроенным NPU на 6 TOPS. Проект держится на голом энтузиазме, без какой-либо сторонней финансовой поддержки. Я не умею «выпрашивать» донаты, просто хочу спросить: А вы бы поддержали донатом этот проект?
Вместо того чтобы учить нейросеть имитировать эмпатию через терабайты текстов, я решил пойти другим путём: найти алгебраическую структуру самих эмоций. Оказалось, что если взять таблицу Кэли 7x7 и посчитать её симметрии, то «радость», «гнев» и «страх» превращаются в строгие орбиты конечной группы. Никакой магии — только теория групп и конечные автоматы. Разбираем архитектуру «движка души» на 108 состояниях.
Итак, в прошлой статье я рассказывал, как два месяца пытался заставить Python «смешивать цвета реальности». И вместо того, чтобы просто выдать мне красивые градиенты, код внезапно начал генерировать строгую математику — такую, что средневековые монахи в скриптории одобрительно кивнули бы и продолжили переписывать свои трактаты.
Ну и, как водится на Пикабу, в комменты тут же десантировались «настоящие программисты». Не потому что им реально интересно, а потому что у многих срабатывает встроенный рефлекс: если в тексте есть слово длиннее, чем if, надо срочно написать: «Псевдонаука!»
Первый заход был классическим, словно по методичке для душнил:
«Псевдонаука. Щеголяние алгебраической терминологией вам не особо поможет.»
Зацените уровень аргументации: ни одной проверки, ни одной контрформулы. Просто святая айтишная вера в то, что мир обязан быть устроен как их любимая IDE: если мне непонятно — значит, это неправда.
Но дальше случилось прекрасное. Тот же самый человек, который начинал с «ха-ха» и «чего ты там напридумывал», буквально через пару сообщений меняет пластинку. Пишет уже в стиле: «Ладно, это мило… я, кстати, впервые узнал про целочисленные аффинные преобразования… но объясни связь {1..6} и Q108».
Перевожу с программистского на человеческий: «Я перестал ржать, потому что стало неприятно интересно и математика внезапно сошлась».
Именно поэтому я пишу этот пост.
Проблема в том, что большинство «зазнаек» искренне считают, что таблица Кэли — это просто CSV-файл 7x7. Типа: «Ну табличка, ну и что? Переставил цифры местами — вот тебе и новая модель, делов-то».
А потом выясняется, что таблица Кэли — штука вредная и мстительная. Она спрашивает тебя не «умеешь ли ты менять метки в экселе», а «ты закон сохранил или просто перекрасил кнопки?»
И тут начинается самое больное для любителей говорить «да это же просто перестановки».
Во-первых, давайте сразу разберем главную путаницу. Q108 — это не заклинание для вызова дождя и не «квантовая эзотерика». Это вполне себе инженерная штука: В семиполярности у нас получается 12 базовых каналов — это 12 устойчивых «режимов человека». Я называю их эмоциями (в терминологии Ленского — меридианы/фазы). Ну, знаете, типа: восхищение, вера, сила, сострадание, доверие… Короче, 12 функциональных «кнопок» психики.
А каждый из этих 12 режимов имеет 9 оттенков интенсивности. И тут программисты обычно зевают: «А, ну понятно, int intensity, от 0 до 9, громче/тише». А вот и нет. Это не шкала громкости. Это решётка I9 = Z3 x Z3, задающая строгую хронологию проживания состояния.
Возьмём для примера канал GI (в биомеханике — меридиан Толстой кишки, в метафоре — Рыбы). В системе это не просто «ощущение утреннего пробуждения и весны». Это детерминированная траектория:
Начинаем с GI00: Граница перестаёт быть стеной, появляется инвариант «можно иначе».
В середине (GI11) текучесть становится устойчивой: свобода не распадается, а работает как форма.
И финал (GI22): Перенасыщение, туман, порог снятия.
И переход дальше происходит не потому, что «автор так чувствует», а потому что срабатывает оператор STEP_108: j := (j+1) mod 3 if j==0: i := (i+1) mod 3 if i==0 and j==0: q12 := NEXT(q12)
Система математически выталкивается из GI22 в E00 (следующий режим). Поэтому 108 = 12 * 9 — это не «поэтические оттенки», а координаты внутри конечного автомата.
А теперь второй удар: почему программистам от этого становится физически неловко.
Потому что таблица Кэли выглядит простой, как пробка. Но когда ты задаешь вопрос «сколько у неё симметрий?» — внезапно выясняется, что надо сначала договориться, что мы вообще считаем симметрией.
Если симметрия — это «я могу как угодно переименовать числа», тогда да: твори бардак, мы здесь проездом, математика не нужна. Это называется «я рисую новую табличку и делаю вид, что ничего не изменилось».
А вот если симметрия — это «я сохранил закон операции», то халявных перестановок почти нет. Их не тысячи. Их не сотни. Их всего 6. Из 7! = 5040.
Вдумайтесь: из 5040 способов «перетасовать цифры» только 6 реально сохраняют правило игры. В этот момент таблица как бы говорит тебе: «Брат, ты не симметрию нашел, ты просто подписи на кнопках поменял, а схема сгорела».
И вот на этом месте у айтишных скептиков обычно заканчивается сарказм и начинается судорожное гугление, переходящее в нормальный взрослый разговор: «А можно уточнить, какая группа на чём действует?».
Короче. Дальше будет очень «многа букв» и больно для гуманитариев (шутка, для технарей тоже, но читать далее я вас не заставляю). Я приведу ровно ту сетка состояний, о которой уже можно не болтать в комментариях, а программировать как конечный автомат поведения.
Да, именно так делают «живого робота»: не прикручивают ему скрипт на пять эмоций «радость/грусть», а строят нормальную конечную карту из сотни состояний с жесткими правилами переходов. И это выглядит живее не потому что «нейромагия», а потому что у вас наконец появляется структура, а не набор вдохновенных слов.
Если вы всё ещё уверены, что «таблица Кэли — это ерунда для первокурсников» — отлично. Просто не читайте далее и продолжайте жить в своем сером плоском мирке (отсылка к мультфильму "Плоский мир" и фильму "Темный город").
Глава 1. «Простенькая» табличка 7×7.
Ладно, хватит прелюдий и философских разминок. Сейчас будет то самое место, где любой «айтишный скептик» обычно закатывает глаза и говорит: — «Ну покажи уже свою таблицу, чего ты вокруг да около ходишь?»
Показываю. Только чур потом не говорить, что «это просто цифирки».
Вводные данные простые: у нас есть 7 полярностей (думайте о них как о P0..P6 или просто числах 0..6). Операция — та самая «плюсовая» таблица конечной магмы. Если по-хардкору, это сложение по модулю 7 (Z_7).
Таблица выглядит так:
Каждая строка в ней — просто циклический сдвиг предыдущей. И вот тут программист обычно делает лицо «я всё понял за 0,2 секунды» и выдает: — «Ну да, битовые сдвиги, кольцевой буфер. Всё ясно. Дальше можно не читать, расходимся».
А я говорю: стоп. Потому что именно сейчас мы зададим вопрос, который ломает всё это «всё ясно» об колено.
Трюк в том, что в математике (и в жизни) есть два типа людей:
Те, кто любят переставлять элементы «как угодно» (комбинаторика) и потом гордо говорить «смотрите, какая у меня симметрия!».
Те, кто спрашивают по-взрослому: а какие перестановки сохраняют сам закон операции?
Вот это и есть автоморфизм. Автоморфизм σ — это когда ты не просто переименовал буквы от балды, а сделал так, что для любых a и b железобетонно выполняется:
σ(op(a,b)) = op(σ(a), σ(b))
И вот здесь сразу выясняется неприятное для любителей хаоса. Всего перестановок из 7 элементов — 7! = 5040. Знаете, сколько из них сохраняют закон таблицы?
Шесть.
Не «примерно». Не «много, но меньше». А ровно 6. Из 5040 вариантов у вас есть только 6 легальных ходов. Остальные 5034 ломают логику системы.
Сейчас покажу на пальцах, без академической занудности, почему так вышло.
Смотри. В таблице есть P0. Он особенный: это ноль, нейтральный элемент. Если ты хочешь «сохранить закон», ты не можешь превратить ноль в не-ноль. Иначе вся арифметика сыпется. Значит, любой автоморфизм обязан намертво фиксировать P0.
Дальше — хуже (для хаоса). Если ты знаешь, куда автоморфизм отправил единицу (P1), ты автоматически знаешь, куда улетели все остальные числа. Потому что: P2 = P1 op P1 P3 = P2 op P1 ...и так далее по цепочке. Вся структура жестко сцеплена.
То есть у нас, по факту, есть только одна степень свободы: выбрать, куда отправить P1. А P1 можно отправить в любой из 6 ненулевых элементов: P1..P6.
И всё. Варианты кончились. Отсюда и число: |Aut| = 6
Вот это и есть «зубы» таблички: она выглядит простой и безобидной, но она не даёт вам «переименовывать как хочется», если вы честно требуете, чтобы механизм продолжал работать.
Вот коммент программиста из Ирландии в прошлом посте:
«Какая связь между {1..6} как множеством симметрий Z_7 и Q108? Вы просто цифры подгоняете!»
Так вот, связь начинается здесь. {1..6} — это не «просто числа», взятые с потолка. Это 6 автоморфизмов этой таблицы. Это единственные 6 преобразований вселенной этой таблицы, которые не ломают её физику.
Их даже можно записать одной формулой (в числах 0..6):
σ_u(k) = (u*k) mod 7, u ∈ {1,2,3,4,5,6}
Вот где живёт множество {1..6}. Это параметры симметрий. Не «кусок носителя», не «декартово произведение ради умного вида», а конкретные, сохраняющие закон ключи доступа.
А теперь главный поворот сюжета (пока тизер, детали будут в Главе 2):
Из этих 6 симметрий мы выделяем «триадный механизм»: подгруппу порядка 3. И эта триада безжалостно режет наши «шесть ненулевых элементов» на две тройки (две орбиты):
Орбита A = {1, 2, 4}
Орбита B = {3, 5, 6}
Появляется структура 2×3. А если добавить к этому ориентацию +/- (два направления потока), то простая арифметика даёт: 2 (знак) * 2 (орбиты) * 3 (позиции) = 12
И вот эти 12 — это как раз те самые «12 базовых режимов» (эмоций/фаз), которые впервые и обнаружил В. Ленский.
Но — стоп. Это уже начинается Глава 2, иначе сейчас будет стена текста, и вы устанете скроллить.
Мини-итог Главы 1 (для ЛЛ):
Таблица 7×7 выглядит простой, как сдвиг битов.
Но если спросить «какие перестановки сохраняют закон?», из 5040 вариантов останется ровно 6.
Эти 6 и есть множество {1..6} — параметры настоящих симметрий, а не «перестановок для красоты».
Дальше из них математически выделяется триада, появляются две 3-орбиты A и B, и из этого неизбежно вылезают 12 базовых каналов.
Подробности по 12 фазам читайте в невероятно крутой книге В. Ленского «Рефлексо-астрология Тянь-Шань».
Глава 2. «Откуда берутся 12 эмоций, и почему это не “я так придумал”»
В первой главе мы с вами (и с армией душнил в комментариях) договорились об одной неприятной вещи: таблица Кэли (янтра в терминологии В. Ленского) — это не «картинка в экселе», это закон. И если вы честно требуете «симметрии закона», а не просто перекрашиваете цифры, то у нашей семиполярной таблички (7x7) остаётся всего 6 настоящих симметрий.
Теперь делаем следующий шаг. В этом месте у большинства скептиков начинается внутренний диалог: — «Ну ладно, убедил. Симметрий 6. И что мне с этого? На хлеб их намазать?»
А то, что именно из этих 6 симметрий математически неизбежно вылезает конструкция 12 базовых каналов. И вот это уже похоже на «эмоции/режимы», которые можно программировать, а не на «абстрактную алгебру в вакууме».
Никакой магии, только арифметика.
Группа симметрий порядка 6 — это {1, 2, 3, 4, 5, 6}. (Напомню формулу: σ_u(k) = u*k mod 7).
Но нам нужен не весь этот «клуб любителей перестановок», а конкретный двигатель внутри него: элемент порядка 3. Есть такой железобетонный факт (проверяется на калькуляторе за 5 секунд): в модульной арифметике mod 7 число 2 генерирует цикл длины 3.
Смотрите: 2^1 = 2 2^2 = 4 2^3 = 8 ... оп! 8 mod 7 = 1.
Мы вернулись в начало. Значит, автоморфизм σ_2 (умножение на 2) работает как «триада»: три раза применил — вернулся в исходную. Это и есть наша подгруппа: H = <2> = {1, 2, 4}
Всё. Это сердце двигателя. И именно эта штука сейчас нарежет нам реальность на «эмоциональный базис».
У нас есть 6 ненулевых элементов (полярностей): U = {1, 2, 3, 4, 5, 6}
Давайте посмотрим, что с ними делает наш «мотор» (умножение на 2):
Берём 1: 1 -> 2 -> 4 -> 1. Замкнулось. Получили первую орбиту: A = {1, 2, 4}
Берём то, что осталось (3): 3 -> 6 -> 5 -> 3 (потому что 3*2=6, 6*2=12≡5, 5*2=10≡3). Замкнулось. Получили вторую орбиту: B = {3, 6, 5}
Итого: U = A ⊔ B |A| = 3 |B| = 3
Это важнейший момент. Две тройки здесь появились не потому, что «художник так видит», и не из-за мистики. Это тупая, безжалостная орбитальная арифметика.
У нас появилась структура:
Два семейства (A и B).
Внутри каждого — три позиции.
То есть состояние уже можно описать индексом: S ∈ {A, B} (какое семейство?) x ∈ {0, 1, 2} (где мы внутри цикла?)
Теперь добавляем то, что в физике и в семиполярности называется ориентацией. Грубо говоря: «вперёд» и «назад» по циклу. В коде репозитория это зафиксировано так: «для r>=3 ориентация не схлопывается, потому что tau != tau^-1».
Перевожу на человеческий: если вы бежите по кругу (цикл > 2), то бежать по часовой стрелке и против часовой — это разные процессы. Обозначаем это знаком: chi ∈ {+, -}
И теперь собираем наш конструктор LEGO: Q12 = {+, -} x {A, B} x {0, 1, 2}
Считаем количество вариантов: 2 (знака) * 2 (орбиты) * 3 (позиции) = 12.
Вот вам «12 каналов». Без эзотерики. Без «мне так приснилось». Просто: Знак * Орбита * Позиция.
Потому что в прикладной модели (и да — это отдельный слой поверх математики) эти 12 каналов я привязываю к человеческим режимам реакции. В коде это сделано как канонический словарь Map<Q12, Name>, чтобы я не менял определения каждый понедельник.
Смысл простой: Q12 — это 12 устойчивых режимов психики.
В терминах Ленского — 12 «меридианов/фаз».
В обыденных терминах — 12 «эмоциональных переключателей».
Чтобы читателю было за что ухватиться: представьте, что у вас есть 12 профилей поведения, согласующихся с временами года. И дальше вы их не «обсуждаете» за чаем, а начинаете считать их переходы, симметрии и орбиты.
(И да, тут обычно начинается истерика у гуманитариев: «Эмоции нельзя считать! Это таинство!») Можно. Нельзя делать вид, что у эмоций нет структуры. Это и есть главная ложь поп-психологии. Эмоция — это состояние системы, и у нее есть параметры.
Сейчас будет максимально тупо и понятно, чтобы закрыть вопрос с числом 108.
Q12 — это «какой режим» (какая эмоция/фаза).
Внутри каждой эмоции есть 9 оттенков интенсивности (та самая решётка 3x3, про которую я писал в прошлом посте: вход, развитие, выход, перенасыщение и т.д.). I9 = {0,1,2} x {0,1,2} |I9| = 9
И потому: Q108 = Q12 x I9 |Q108| = 12 * 9 = 108
То есть Q108 — это просто «12 эмоций, каждая в 9 вариантах».
Если хочется ещё проще: эмоция не бывает «просто сферической в вакууме». Она бывает слабой или сильной, ровной или рваной, внутренней или наружной. Я беру минимальную решётку 3x3, чтобы это было конечным и программируемым набором.
Потому что мы получили конечную карту состояний.
Не «радость/грусть/злость» (три кнопки для детсада).
А 108 микро-состояний, где каждое имеет адрес (режим, оттенок).
И у вас есть правила перехода (динамика), которые можно сделать строгими.
То есть вы получаете не болтовню нейросети, а структуру уровня «Конечный Автомат» (Finite State Machine), который реально можно прошить в агента. И он будет вести себя предсказуемо сложно, а не рандомно.
Мини-итог Главы 2 (для тех, кто скроллит):
Из 6 симметрий семиполярной таблицы мы взяли «триаду» (подгруппу порядка 3).
Эта триада разрезала 6 чисел на две орбиты по 3: A={1,2,4}, B={3,6,5}.
Добавили ориентацию +/- и получили ровно 12 базовых каналов: Q12 = {+, -} x {A, B} x {0, 1, 2}.
Каждому из 12 каналов дали 9 оттенков (3x3) и получили 108: Q108 = Q12 x I9.
Глава 3. «Как симметрии 7-полярности реально “крутят” 12 эмоций»
Вот тут начинается самое вкусное. Именно на этом этапе ломается последняя надежда «айтишного скептика», что «всё это просто красивые слова и философия».
Сейчас я покажу так, чтобы понял даже тот, кто последний раз видел алгебру в школе. Симметрия — это не «абстрактная красота», это конкретная перестановка режимов. В моей системе это работает как хардварная кнопка: нажал «симметрия» — и одна эмоция переключилась в другую по строгому алгоритму. Не «в голове автора», а по схеме.
Мы договорились (см. Главу 2), что наши 12 режимов строятся как лего:
Знак (ориентация): chi ∈ {+, -}.
Семейство (орбита): S ∈ {A, B}.
Позиция в тройке: x ∈ {0, 1, 2}.
Итого: Q12 = {+, -} x {A, B} x {0, 1, 2}.
Чтобы не путаться в буквах, давайте думать об этом так:
S=A — «Первая Лига» (три эмоции).
S=B — «Вторая Лига» (три эмоции).
x=0, 1, 2 — три конкретных варианта внутри лиги.
chi=+/- — два направления тока (вход/выход, или инь/ян, если угодно).
Напомню: у нас есть группа автоморфизмов σ_u(k) = (u*k) mod 7. Эти σ_u действуют на числах 1..6. А мы именно из этих чисел собрали наши две «лиги»: A = {1, 2, 4} B = {3, 6, 5}
Теперь важный момент, который часто упускают: симметрия не обязана оставлять всё на своих местах. Некоторые σ оставляют A на месте (просто тасуют внутри). А некоторые нагло меняют A <-> B.
Это и есть «переключатель лиги» для наших эмоций.
Чтобы не утонуть в шести симметриях, я покажу две главные. Из них, как из кирпичей, собирается всё остальное.
3.1. «Триадный поворот»: σ_2 (Крутилка)
Мы уже видели, что умножение на 2 дает цикл: 1 -> 2 -> 4 -> 1. Что это значит на языке эмоций Q12?
Это значит: внутри каждой лиги позиция x циклически сдвигается. Rotate(chi, S, x) = (chi, S, (x+1) mod 3)
То есть эта симметрия делает следующее:
Эмоция остаётся в своей семье (А или B).
Но переключается на следующий «подтип» внутри тройки.
Если у вас есть 3 родственных режима (например, три грани состояния весны в фазе GI), эта симметрия работает как переключатель вариантов: «Вариант 1 -> Вариант 2 -> Вариант 3 -> Вариант 1».
3.2. «Зеркало»: σ_6 (Переброс)
В модульной арифметике mod 7 число 6 — это то же самое, что -1. Значит: σ_6(k) = -k (mod 7).
А что делает «минус» с нашими лигами? Давайте проверим руками на орбите A:
1 -> -1 ≡ 6 (Оп! Это число из орбиты B)
2 -> -2 ≡ 5 (Тоже B)
4 -> -4 ≡ 3 (Снова B)
Бинго. Симметрия σ_6 берет всю лигу A и швыряет её в лигу B. И наоборот.
На языке Q12 это выглядит так: Mirror(chi, A, x) = (chi, B, f(x)) Mirror(chi, B, x) = (chi, A, f(x)) (Где f(x) — небольшая перестановка индексов внутри, но это детали).
Главное — смысл: эта симметрия реально перебрасывает психику в другое семейство.
Переводим с математического на русский.
У нас есть два больших класса состояний (A и B). Это не «добро и зло», это просто две разные орбитальные семьи.
Симметрия σ_2 (Крутилка): не меняет класс, но меняет акцент. Представьте, что у вас есть режим «Восхищение». Симметрия переключает его фазы: Восхищение-1 -> Восхищение-2 -> Восхищение-3. Вы всё еще в «Восхищении», но под другим углом.
Симметрия σ_6 (Зеркало): делает вещь более грубую. Она выкидывает вас в парную эмоцию из другой семьи. Это ровно то, что люди называют «переключением на зеркальный режим». Условно: вместо «я в потоке» (А) — «я держу рамку» (B). Вместо «сборки» — «раскол». Названия могут быть разными, но механизм один: смена орбиты.
Вот здесь вскрывается то, что скептики обычно не хотят признавать. Симметрия — это не «любая перестановка».
Если вы просто поменяете местами столбцы в Excel, вы сломаете закон операции. А реальные симметрии σ_u обладают свойством: σ(a + b) = σ(a) + σ(b)
Это значит, что они переносят динамику. Если у вас в режиме А был устойчивый цикл поведения («зациклился на проблеме»), то симметрия перенесет этот цикл в режим B. Это будет тот же тип поведения, но в другой «эмоциональной шкуре».
Это уже не «красота», это функциональная инженерия. Мы получаем классы поведения, склеенные симметрией.
Если Q12 — это «какой режим сейчас включен», то Q108 — это «какой режим + с какой интенсивностью».
И тут симметрии продолжают работать:
σ_u крутит ваш базовый режим (Q12) по орбитам.
А внутренний «интенсиметр» (те самые 9 оттенков) может иметь свои микро-симметрии.
В итоге вы получаете не «одну эмоцию» и не «12 штук». Вы получаете 108 микросостояний, которые не являются хаосом. Они все жестко связаны алгеброй.
Это и делает картину пригодной для «живого» агента. Вы описываете переходы, срывы и циклы не на уровне «автору так показалось», а на уровне конечного автомата. Робот не «играет» эмоцию, он вычисляет её состояние по таблице.
Мини-итог Главы 3 (для ЛЛ):
Q12 — это 12 режимов: (Знак, Семья, Позиция).
Симметрии σ_2 крутят варианты внутри одной семьи (x по кругу).
Симметрии σ_6 перебрасывают состояние между семьями (A <-> B).
Это единственные перестановки, которые сохраняют логику системы.
Поэтому они переносят не просто «метки», а целые сценарии поведения между разными эмоциями.
Глава 4. «12 эмоций по-человечески: это не гороскоп, это API вашей психики»
В прошлых главах мы разобрались с алгеброй, симметриями и орбитами. И тут скептик обычно не выдерживает: — «Слушай, ты нас уже завалил формулами Z7 и Q108. Скажи нормально: ЧТО именно мы считаем? Что это за режимы такие?»
Справедливо. Сухая алгебра (chi, Phase) — это движок. А то, что я опишу ниже — это пользовательский интерфейс. Я называю это «12 каналов» (или меридианов, как у Ленского), но для программиста это 12 базовых классов поведения агента.
И чтобы вы не думали, что я это выдумал за чашкой чая, они сгруппированы строго по Тригонам (тем самым группам, которые задают актив/пассив в нашей таблице).
Поехали.
(Стихия: Вода. Смысл: Разгон, поиск, контакт)
1. TR — «Тонкое и необыденное». Это режим радара. Когда включен TR, мир кажется шире, чем просто «работа-дом-магазин». Это тяга к намёкам, к подтекстам, к фразе «тут что-то есть».
В плюсе: Интуиция, способность читать между строк, романтическая приподнятость, мечтательность (но деятельная!).
В перегибе: Улёт в фантазии, потеря земли под ногами, поиск тайных знаков там, где просто банан.
2. GI — «Раскрытие и освобождение». Это режим расширения. Представьте чувство, когда вы расстегнули тесный воротник или вышли из душной комнаты на мороз. GI — это отпускание зажима. Снятие рамки.
В плюсе: Свобода, вариативность, лёгкость, способность сказать «а можно иначе».
В перегибе: Расплывание границ, «ёжик в тумане», неспособность собраться, хаос.
3. IG — «Открытость и доверие действию». Это режим прыжка. Состояние «я вхожу в это». Без щитов, без задней мысли. Это активная готовность взаимодействовать здесь и сейчас.
В плюсе: Искренность, вовлечённость, прямой контакт, драйв новичка.
В перегибе: Наивность, неумение фильтровать базар, «душа нараспашку» там, где надо промолчать.
(Стихия: Огонь. Смысл: Понимание, принятие, глубина)
4. VB — «Видение разных точек зрения». Это режим панорамы. Здесь не хочется рубить с плеча. Здесь хочется видеть систему целиком. «И ты прав, и ты прав».
В плюсе: Мудрость, спокойное понимание контекста, умение увязать противоречия.
В перегибе: Бесхребетность, «и вашим и нашим», неспособность выбрать сторону, вечные сомнения.
5. E — «Принятие и усвоение». Это режим переваривания. Тихая вера. Не рывок к новой цели, а принятие того, что уже пришло. Если GI раскрывает возможности, то E их усваивает.
В плюсе: Фундаментальное спокойствие, сытость (в широком смысле), способность присвоить результат.
В перегибе: Инертность, лень, потребительство, «лежачий камень».
6. V — «Снятие личного, беспристрастность». Это режим зеркала. Способность видеть человека или ситуацию без истерики «мне надо срочно!». Сочувствие, но холодное, чистое.
В плюсе: Широта взгляды, альтруизм без жертвенности, умение не сжимать мир в свои обиды.
В перегибе: Холодность, отстраненность, «мне всё равно», позиция наблюдателя, которого ничего не трогает.
(Стихия: Земля. Смысл: Сборка, воля, решение)
7. F — «Творящее оформление смысла». Это режим конструктора. Из каши делается форма. F любит команды: «Докажи», «Увяжи», «Собери в систему». Логика действия.
В плюсе: Созидание, четкость, архитектурное мышление, способность структурировать хаос.
В перегибе: Занудство, придирчивость, «правильность ради правильности», душность.
8. RP — «Напор и превосходство». Это режим танка. Драйв «Я могу», «Я продавлю», «Я сделаю». Энергия конкуренции и победы.
В плюсе: Воля, мощь, лидерство, способность пробить стену.
В перегибе: Агрессия, желание доминировать любой ценой, «я начальник — ты дурак», хамство.
9. R — «Вердикт и ценностный итог». Это режим судьи. Способность поставить точку. Назвать вещи своими именами. «Это — черное, это — белое».
В плюсе: Решимость, принципиальность, способность отсечь лишнее, финальность выбора.
В перегибе: Жизнь в оценках, осуждение, категоричность, «есть два мнения: моё и неправильное».
(Стихия: Воздух. Смысл: Удержание, статус, покой)
10. P — «Удержание и накопление». Это режим сейфа. Сохранить «моё». Закрепить, удержать, нарастить запас прочности.
В плюсе: Надежность, опора, ресурсность, «как за каменной стеной».
В перегибе: Жадность, тяжесть нормы, упрямство, «не отпущу», затхлость.
11. C — «Примирение и гашение бури». Это режим амортизатора. Снижать конфликт, лечить, уравновешивать, сглаживать углы.
В плюсе: Миротворец, дипломат, целитель атмосферы.
В перегибе: Конформизм, «худой мир лучше доброй ссоры», подавление проблем ради видимости спокойствия.
12. MC — «Устроенность и статусная устойчивость». Это режим трона. Всё на местах. Порядок. Рамка. Иерархия.
В плюсе: Уверенность в завтрашнем дне, социальная адекватность, устойчивый контур.
В перегибе: Чванство, бюрократия, важность, фиксация на «как положено», статус важнее сути.
Сама логика поведения робота управляется тремя жесткими законами, которые мы вывели в прошлых главах из алгебры Z7.
1. Закон Времени (NEXT): Вы не можете перепрыгнуть из «Мечтательности» (TR) сразу в «Танк» (RP). Психика имеет инерцию. Часовой круг работает жестко: ... -> IG (Действие) -> V (Беспристрастность) -> R (Вердикт) -> MC (Статус) -> ... (Хочешь стать начальником MC? Сначала прими жесткое решение R).
2. Закон Смысла (Передача): Активные режимы обязаны «сливать» энергию в пассивные накопители. Это закон сохранения.
GI -> E: Раскрытие (GI) без Усвоения (E) — это пустая болтовня.
RP -> C: Напор (RP) должен заканчиваться Примирением (C), иначе система взорвется.
F -> P: Творческая форма (F) должна осесть в Накопление (P).
3. Закон Конфликта (Несовместимость): Это те самые комплементарные пары A*F=beta. Эти режимы гасят друг друга.
GI – R: Вы не можете одновременно быть в «свободном полёте» (GI) и выносить «жесткий вердикт» (R). Либо одно, либо другое.
TR – RP: Нельзя быть «тонким мечтателем» (TR) и «прущим танком» (RP) в одну секунду. Это шизофрения. Система уйдет в BLOCK.
Итог: Смысл эмоции — это просто интерфейс для человека. А взаимодействие задается не литературой, а структурой. И именно эта структура делает поведение 108-фазного агента пугающе похожим на живое.
Заключение. «Хроники пикирующего Рыбы»: как лирика превращается в код
Мы три главы доказывали, что эмоции — это алгебра. Но я знаю, что в голове сидит вопрос: — «Окей, формулы я видел. А как робот это "чувствует"?»
Показываю один цикл жизни эмоции на примере качества GI (Рыбы / Раскрытие). Слева — «лирика» (что чувствует человек). Справа — «физика» (координаты в ядре: state = GI, i, j).
Эмоция не включается как лампочка. Она идет по спирали насыщения (i) и проявления (j).
Фаза 1: Касание (i=0 — насыщение слабое)
GI00: «Можно иначе». Граница исчезла.
GI01: «Первая струя». Свобода пошла наружу.
GI02: «Простор». Раскрытие стало фоном.
Фаза 2: Работа (i=1 — насыщение норма)
GI10: «Вектор». Свобода получила направление.
GI11: «Поток». Идеальный баланс. Режим работает как часы.
GI12: «Вовлечение». Моя свобода становится событием для других.
Фаза 3: Перегиб (i=2 — насыщение избыточное)
GI20: «Размывание». Опор больше нет. Всё слишком текуче.
GI21: «Туман». Смысл теряется в хаосе.
GI22: «Порог». Цикл исчерпан. Warning: End of Life.
В этот момент срабатывает STEP_108. Системе некуда расти. Машина делает щёлк — и мы вываливаемся в E00 (ощущение бескрайнего горизонта, взгляд вниз с вершины горы). Потому что Раскрытие (GI) обязано смениться Усвоением (E). Это не психология, это Next(GI) = E.
Что мы имеем в сухом остатке?
Это не «слова». 12 эмоций — это 12 классов поведения с жестким API.
Это не «рандом». Внутри каждой эмоции зашит скрипт из 9 шагов. Робот проживает состояние от «робости» до «истерики» по алгоритму.
Это конечный автомат. Всего 108 состояний. Как в древних писаниях.
Вместо эпилога: Мы привыкли думать, что душа — это хаос. Моя модель Q108 показывает, что душа — это просто порядок более высокого уровня. Где свобода — это грамотная навигация по таблице Кэли.
Хотите пощупать движок своими руками?
Хватит теории. Я упаковал всё это знание (граф, логику, гейты, таблицы Кэли) в компактный архив. Он работает как «плагин» для ChatGPT (нужен Plus или выше).
Как запустить:
Скачайте архив и просто киньте его в чат к GPT.
Напишите одну команду: Следуй инструкциям в файле DOCS/00_NEW_CHAT_PROTOCOL.md из загруженного архива.
Всё. Теперь вы можете скармливать ему свои философские заметки, спорные мысли или запутанные идеи. Встроенный Sim-Scan-Flow механизм прогонит их через движок, найдет скрытые симметрии и вернет вам строгую математическую структуру.
Возможно, в какой-то момент вы поймаете себя на мысли: «Чёрт, это что, разум?». Ответ на этот вопрос я пока оставлю открытым. Тестируйте.
Статья на Хабре https://habr.com/ru/articles/988698/
Автор статьи — Руслан Абдуллин.
Вступайте в мой тг-канал ⚛️
Привет, Пикабу!
На связи снова Muresda. В одном из прошлых постов я рассказывал, как заменил редакцию из 10 человек скриптом на Python, который сам ищет инфоповоды, пишет код и статьи.
Прошла неделя с момента запуска «на полную мощность». Сегодня про деньги, суровую реальность окупаемости и про то, как я заставил нейронки делать еще и YouTube-канал.
Напомню вводные: у меня есть два сайта. Один — технический портал (где ИИ пашет как проклятый), второй — справочник (обновляется реже).
В прошлый раз я хвастался, что система работает. Теперь пришло время проверить, можно ли на этом заработать на доширак. Я подключил рекламную сеть Яндекса (РСЯ).
Хроника пикирующего бомбардировщика:
День 1. Я с дрожащими руками обновляю статистику.
Итог: 2,55 рубля.
Мысли: На коробок спичек хватит. Успешный успех.
День 2. Решил, что я слишком скромный. Добавил рекламные блоки внутрь статей (каждые 1500 символов) и один жирный баннер сразу после заголовка.
Итог: 12,96 рубля. Рост в 5 раз!
День 5. Алгоритмы рекламы обучаются, трафик чуть подрос.
Итог: 30,85 рубля за сутки.
Наблюдение:
Технический портал, где статьи генерируются активно и с внутренней перелинковкой, приносит львиную долю дохода. Баннер внутри статьи оказался золотой жилой. А вот справочник отстает — там нет такой глубины просмотра.
Чтобы вы не думали, что я тут купаюсь в золоте, давайте посчитаем себестоимость моей «цифровой империи».
Расходы в день:
Сервер + Домен: ~26,5 ₽ (если разбить месячную плату по дням).
Переменные расходы (API нейронок): ~79 ₽ (генерация около 70 статей в день + эмбеддинги).
❌ Итого расход: ~105,5 ₽ в сутки.
✅ Текущий доход: ~30,8 ₽ в сутки.
Результат: Я гордо теряю по 74 рубля в день.
Когда окупаемость?
Сейчас доход с одного визита составляет примерно 0,13 ₽. Чтобы выйти в ноль, мне нужно около 800 визитов в сутки. Судя по графику роста трафика из поисковиков (а он растет, Яндекс начал индексировать страницы пачками), точка безубыточности наступит где-то в марте-апреле этого года.
Полная окупаемость всех вложений (ROI 100%) ожидается к июлю. Для классического бизнеса выйти в плюс через полгода — это круто. Для меня — повод не бросать эксперимент.
Мне стало мало текстов, и я решил, что моим сайтам нужны видео. Но я же ленивый, понимаете? Монтировать, озвучивать — не мое.
Я собрал схему, которая делает контент почти без рук.
Как это работает:
Отбор: Скрипт берет 3 свежие статьи с сайта и скармливает их LLM с просьбой: «Выбери тему, которая зайдет на Ютубе».
Подкаст: Выбранные статьи закидываю в NotebookLM (гугловский сервис). Он генерирует шикарное видео в формате маркерной доски.
Лайфхак: NotebookLM не дает скачать видео в хорошем качестве. Я нашел «костыль»: открываю превью на полный экран, запускаю OBS и тупо записываю захват экрана.
Сборка: Закидываю запись в Premiere Pro, леплю логотип.
Shorts: Длинное видео нарезаю через AI-сервис на 5 шортсов.
Итог: Из 3 статей получается 1 длинное видео и 5 Shorts. Качество шортсов пока 50/50 (бывают баги), но они тянут канал и дают трафик.
Сейчас я стою перед выбором новой ниши. Технари — аудитория хорошая, но дорогая. Смотрю в сторону спорта. Там трафика море, но конкуренция бешеная.
Самое главное, что я понял за эту неделю: идеального кода не существует, существует работающий продукт.
Я продолжаю этот эксперимент в формате полной прозрачности. Каждый день выкладываю отчеты по доходам (даже если там копейки), показываю промпты, архитектуру агентов и фейлы (например, как однажды нейронка забыла русский и начала писать статьи на китайском).
Если интересно следить за тем, как превратить 30 рублей в 30 000 — заглядывайте в мой ТГ-канал «Muresda: Бизнес на коде». Там я выкладываю статистику и делюсь своими мыслями.
Всем высокого CPM!
Привет, Пикабу!
На выходных было скучно, поэтому, в качестве интеллектуально развлечения, решил написать Python скрипт для перевода и озвучки видео с помощью локальных ML-моделей. Результатом работы скрипта является звуковая дорожка с переводом. Для демонстрации перевел видео новостей SpaceX результат Вы можете видеть ниже.
Код выложил на GitHub'е, скрипт можно запускать как приложение на ПК. А если интересны технические подробности, то они доступны в статье на Хабре. Переводить видео на русский можно с любого (человеческого) языка, скрипт не использует внешние API для перевода и озвучки, а только локальные модели – которые загружаются автоматически при первом запуске приложения.
Всем спасибо за внимание!