#54 GPT в реальных проектах: взгляд разработчика Spring AI | Евгений Борисов
это подкаст Организованное программирование. Я его ведущий Кирилл Макевнин. Сегодня у меня в гостях Женя Борисов. Женя известный человек очень в Java комьюнити, большой специалист и адвокат спринга. И на самом деле меня очень долго как бы мучили. Позови Женю, позови Женю, позови, позови. Поговорить про Спринг. Но, несмотря на то, что я так и хотел сделать, в какой-то момент, получилось, что буквально за там неделю или две, когда вот я собирался это сделать, подлодка выпустила подкаст про Спринг. И плюс Женя сейчас немножко сместился в сторону искусственного интеллекта, и мы подумали, что о'кей, ладно, про Спринг сейчас не будем или будем как-нибудь по-другому потом, но сейчас мы как бы скорее затащим и зацепим в первую очередь искусственный интеллект как бы в целом и во многом в применимости к джаве и конкретно к спрингу, да и мало ли куда заведут нас разговоры. Жень, с тобой, пока мы тут общаемся 2 часа. Ну да. Привет ещё раз. Привет. Привет. На самом деле, знаешь, я подумал, это очень опасно говорить в начале разговора длинного, о чём будет разговор, потому что потом приходится возвращаться назад и менять название, что-то подправлять. Вот я такую ошибку недавно сделал, когда писал вот этот свой курс и я им. Я сначала придумал ему название, э, а потом его написал. И когда я его заканчивал писать, я понял, что название уже не совсем подходит, понимаешь? Это правда. Нет, правда. Но при этом обычно всё-таки люди хотят заранее знать, и у нас есть тайм-коды. Так что в этом смысле всегда можно, ну, относительно как бы исправиться по этой части. Мы с тобой, когда созванивались, ты же в принципе рассказал, что, ну, вот прямо со спрингом. Со спрингом не то чтобы ты сейчас работаешь, да? У тебя вот эта отдельная ветка. Я обманул тебя. Ты знаешь, как говорят, там год за два. Ээ у меня сейчас день за год. Угу. Ээ, я не знаю, видно по мне, не видно, но я не спал уже, то есть, ну, практически нисколько за последние 3 ночи. Я просто пообещал себе закончить писать этот тренинг середину лета и уже просрачиваю собственные сроки. Середина лета вот недавно уже прошла. Я его закончил вчера. И я извиняюсь, я из-за этого, наверное, периодически буду терять контекст нашего разговора, потому что у меня реально сейчас с мозгом что-то происходит странное. Чатидипизация у тебя произошла. Ты как чат GPT, который такой: "Опа, забыл, о чём мы разговаривали минуту назад. Контекст, да? А по поводу спряга. Насколько то, что ты делаешь, это прямо спринг или прямо совсем отдельно? Вот вот и находясь ээ вот в этом вот режиме, в котором я очень много времени там по ночам трачу на то, чтобы изучать Springi и писать ээ какой-то Pet Project для того, чтобы, то есть, понимаешь, какую я себе поставил цель, я посмотрел так вот вокруг и говорю: "Ну да, понятно, AI всем нужен, понятно, если продолжать заниматься разработкой, надо как-то всё равно уходить в AI. Кроме этого хочется ещё не просто использовать AI, а ещё хочется написать что-то с AI вместе, чтобы сделать какой-то прикольный, интересный продукт. И главное научиться делать такого плана продукты, потому что это то, что сейчас будет, ну, это то, что уже сейчас идёт. Все сейчас компании, э, хотят что-то с Ияемя улучшить у себя. Кто процессы, кто продукты, кто придумает какие-то новые сервисы, кто там сдел автоматизировать и так далее, и так далее. То есть всё это происходит везде везде и повсеместно. И, э, и одна из основных проблем всех этих решений, что это очень дорого, потому что все хорошие лмки, которые крутятся там в этих бесконечных облаках и жрут электроэнергию для них строят ядерные электростанции, ну, как бы мы же не можем себе позволить дома у себя ядерную электростанцию и там 100-500.000 GPU. Поэтому я подумал, а что если, ну, я очень люблю single responsability, если написать такое решение, где мы будем очень сильно сужать область, да, то есть я не умею тренировать модели, сегодня я ещё пока не там, я не могу натренировать свою модель, которая в той области, в которой мне надо, будет прямо очень крута. И я понимаю, что модель там, которую я могу себе позволить на своём там M3 процессоре, самое лучшее - это там какой-нибудь Gниy, у которого 2 млрд параметров. Ну, 2 млрд параметров звучит много, но на самом деле там 500 млрд, по-моему, GPT было ещё в прошлом году. Вот. И понятно, что она проигрывает, но она проигрывает за счёт того, что у неё как бы понижена точность, но за счёт очень качественно построенной архитектуры, рага, всяких оптимизаций, всяких ранкеров, реранкеров, query экспеншенов. Если фокусироваться на узко поставленной задаче, возможно, можно написать решение, которое на локальном ЛМ будет работать даже лучше, чем на каком-нибудь известном клоде, понимаешь? И вот об этом, собственно, и был мой курс. То есть там на первой части мы я просто писал какой-то микросервис, который начинает интерактировать лм, просто объяснить азы. Там во второй части мы уже прикрутили. Мы уже это я себя во множеном числе. Это я виртуальных зрителей, да. Ну, мне всегда хочется, чтобы типа вместе со мной люди делали, находили там какие-то мои ошибки, мы как-то вместе. Вот сейчас этот, знаешь, вот это посткороновый мир, особенно вот мы сейчас в ТНС переехали, оторван абсолютно как бы от реальности. Ну и я всё время как бы общаюсь с людьми исключительно виртуальности. Поэтому я вот говорю, мы вот, значит, во второй части мы, ээ, прикрутили рак и ээ там сделали, что у нас там история сообщений заработала и там, соответственно, какая-то дополнительная информация. И у нас уже, наконец, GPT начал отвечать. Ээ, ну, поскольку я очень боюсь копирайтов, я решил на себе пробовать. То есть я взял транскрипты своих докладов и говорю: "Сейчас попробую как эксперимент написать GPT, который будет от моего имени там, не знаю, объяснять мои доклады, отвечать на вопросы, как бы это делал я". Это же проще, чем написать GPT, который будет уметь делать всё и говорить по-гречески и там, и рисовать, и, да, то есть я single responsibility. Ээ, причём там внутри архитектуры можно таких очень много сделать, да? То есть на каждую узконаправленную задачу у тебя будет свой заточенный со своим конкретным рагом какой-то локальный GPT и будет какой-нибудь оркестратор, который между ними будет вот так вот переключать, то, возможно, мы сможем достигнуть очень высокого качества вот в это в это в этих комнатных условиях. И понимаешь, погрузившись во всё это, я с момента нашего с тобой разговора, видишь, я мысль не потерял. Мы с тобой, по-моему, говорили где-то в мае или даже в апреле. Нет, даже, по-моему, чуть ли что не в марте. Угу. А очень много изменилось. То есть я написал столько кода, я как бы то есть у меня вот этот тренинг он идёт, по-моему, часов 9: чисто я вот сижу и или там см. Ну, то есть там очень много где я сижу и просто кодю. Вот поэтому как бы сказать про меня сегодня, что я давно уже не брал в руки шашки, нифига. Я сейчас на спринге рублюсь вовсю. Спринг или спрингбд, кстати? Ну, конечно, спрингб. М. О'кей. Не, кстати, это интересно. Я буквально вчера общался с чуваком, который мне сказал, а что он до сих пор на проекте, где типа нет спрингбута и там спринг. Ну он же, наверное, тебе это со слезами рассказывал, да? Ну типа того, да? Да. Так. У меня нет причин. Я сам обшаю, на чём я пишу. Это у на у нас вот на работе произошёл неприятный инцидент. И сегодня вот как раз я проводил собеседование там внутри компании. У нас к нам на проект пришли люди. Я занимаюсь тем, что я строю всякие разные м геймификацию. Короче, я делаю при помощи я над процессами, над обучением, над всякими многими вещами. Вот пришли ребята, они пришли и подтвердили грустную тенденцию, которая началась у нас примерно год назад, когда один из моих ведущих разработчиков говорит: "Слушай, мы же пишем огромное количество микросервисов, которые общаются с лмками". Ээ, и мы написали такую платформу, на которой люди могут создавать свои LLM-решения, писать своих ассистентов, и мы эту платформу всё время там апгрейдим. И поскольку эта платформа создаёт огромное количество инстансов, микросервисов, которые, значит, ээ, ну, как бы делают то, что от них хотят люди, которые пользуются нашей платформой, то нам очень важно экономить память. У нас там ресурсы жрутся просто налево и направо. И он говорит: "Давай уйдём со Спрингбута и будем использовать Кваркус". Я, говорит, провёл POC, я посмотрел, значит, там бечмарки просто там вообще день и ночь. Вот я очень долго сопротивлялся. Я как раз мне повезло, я был на конференции, где был Джош Лонг. Я поймал Джошлонга, стал его трясти. Я говорю: "Чувак, у нас целый отдел, мой отдел, на который я начинаю терять влияние, хочет уйти со Спарнбута, потому что они говорят, он жрёт много памяти". Это говорит, всё нормально. Сейчас я тебе покажу. У нас Native Spring. Сейчас. Значит, смотри, мы тут грави VM подключаем. Мы, значит, компилируем всё сразу в нативной. Мы отключаем это. У нас есть там пять способов. Значит, рефлекшн мы не используем, а то, что используем, у нас вот так постпроцессор. Короче, он там, мы сидели с ним 3 часа что-то подили. В итоге он пришёл к тому, что вроде стало намного меньше. Я принёс это своим ребятам, они посмотрели, сказали: "Да, всё равно в три раза больше, чем у нас получилось на кваркусе". Вот. И я такой: "Ну да, ну где мы найдём людей, которые захотят учить сейчас кваркус, когда есть прекрасный Спрингвуд?" Вот пришли сегодня двое, говорят: "О, мы нам тут интересно, мы слышали, что у вас тут не только Спрингвуд, а ещё и кваркус. Нам интересно посмотреть, что это. Так что нам, разработчикам курсов", это, конечно, геморрой ещё тот. Все всё-таки с одного фреймворка на другой такие: "Пежали всё переписывать". Но понятная история. Я про это много слышал, да, что, конечно, там рефлексии, всего остального много, что приводит, конечно, к пожиранию памяти. И, кстати, у меня, ты, Андрей Ребров, ведь знаешь? Снберг, это ребята, которые в Штатах занимаются продажей духов по подписке. Очень большие ребята. У них своя собственная логистическая сеть. И а Андрей Ребров это не я не знаю. Они как раз они большие. Это, чтобы ты понимал, один из таких известных и стрельнувших стартапов в Штатах. То есть он прямо большой. Они, говорю, там своя логистика, всё остальное. И вот они как раз он рассказывал, как переезд со Спрингбута, это один из моих первых просто подкастов был, рассказывал, как они со Спрингбута переезжали на Кваркус, как раз вот по этим причинам, потому что у них очень много микросервисов и, соответственно, это работает. Ну, видишь, ты не с того начал, как бы гово. Ну, причём здесь я и духи. Сразу бы сказал, сейчас расскажу тебе про человека, который да, кстати, вот ты говоришь духи, а представляешь, вообще сама идея, да? То есть у тебя духи обычно же много. Вот покупаешь баллончик, они покупаю они продают их эти по подписке, то есть они те привозят всё время маленькими штучками, у них количество клиентов в Штатах измеряется типа полмиллиона, что ли. А подожди, а в чём смысл иметь маленький, чтобы самолёт можно, чтобы ты мог всё время менять? То есть если ты, грубо говоря, это недорого, ты платишь там 100 долларов в месяц и у тебя каждый месяц по сути новые духи, ну или там что-то типа такого. А так у тебя дорогущие духи стоят дорого и у тебя 2 года она будет эта баночка лежать, а ты хочешь как бы разное попробовать. То есть это идея, которая, вообще-то, довольно сильно индустрию перевернула, когда они включили её. И они сейчас то же самое делают для кремов, там, для всего подряд. У них собственные бренды, потому что ты можешь как бы, ну, девочкам особенно не, кстати, тут у них мальчиков интересно больше, наверное, в духах. То есть ты говоришь, что они сказали: "Давайте мы возьмём монолит и разберём его на микросервисы". Ну, слушай, молодцы. Я бы не стал так это характеризовать, но у них по у них много, да, если посмотришь, они в это на Таquр там висели везде, как этот, там торгуются на бирже, все дела. То есть ребята очень серьёзные. Смотри, давай э я тебе такую спрошу штуку. Вот первый вопрос, наверное, который меня интересует. В этом отношении спринг вообще, честно говоря, отличается много от кого. То есть, например, берём любую другую экосистему. У тебя AI, что такое AI в плане, ну, там, Пайтона, чего угодно? Ну, это просто набор лип каких-то, да, которые ходят к разным штукам или, а, управляют, не знаю, доступ к локальной какой-нибуд лэмке, к удалённой, там, ещё че-нибудь дух в этом духе. И это просто отдельные либо их можно так использовать всяк. Как так получается, что, ну, ладно, я идейно понимаю, но мне вот интересно про Яйку, что в спринге у тебя никто не делает просто либо сразу давайте херачить спринг и ай прямо как отдельный компонент, а не просто либо, который люди написали. Почему ты говоришь никто? Ты говоришь про спринг или ты говоришь про просто вообще все там Java комьюнити? Не, я говорю скорее в других экосистемах так обычно не делают. У тебя нет такого, что типа есть какой-то фреймворк и к нему мы подкручиваем прямо типа разработка ведётся вот так. Обычно у тебя либо, например, для работы с а просто отдельно либо она просто вообще не привязана никаким фреймворкам. Не просто такое бывает. Ну да, но вот но у тебя спринг прям спринг и ай. То есть у тебя не просто ты говоришь: "Я разработчик либо для работы с искусственным интеллектом в Джаве"Е, ты говоришь: "Это конкретно Springй". И мне вот это вот немножко непонятен элемент. Сейчас, сейчас всё станет понятно. Сейчас я тебе объясню. Значит, начнём с истории. Когда придумали Джаву очень-очень давно, её придумали люди, которые не имели большого опыта программирования на объектноориентированных языках, потому что по факту Java на самом деле, наверное, первый такой нормальный, действительно объектноориентированный язык продуманный. Соответственно, когда они его придумали, очень многие дизайн-паттерны, которые появились потом там затюнились, отточились и стали очень популярные, тогда ещё не существовали. Поэтому в Джаве всё сфокусировано для, ну, то есть Java предоставляет тебе ээ всё, чтобы ты мог создавать классы, там компилировать их, там, дебажить и так далее. Всё вокруг классов. И класс у тебя инкапсулирует там поведение и всё замечательно. А вот -э механизма, который помогает тебе менеджить объекты, они не продумали, что он тоже нужен. То есть я подозреваю, что если бы придумывали бы Джаву сегодня, ну или там 10 лет назад, то такая штука, как с Dependency Injection, там inversion of control, вот всё, что делает Spring, core, основное, оно бы было бы частью самой Джавы, понимаешь? То есть, ну, потому что это очень очень нужный какой-то стандарт. То есть, может, там были бы какие-то плагины, чтобы можно было другие движки подсовывать, но концепция, что тебе кто-то менеджет объекты, она просто как бы необходима. Просто тогда они про неё ещё не думали, её тогда как бы не было. Вот это вот injection, он же потом взорвал мир. Поскольку Spring оказались первые, кто нормально имплементировал эту концепцию, то они очень быстро стали стандартом. И мир в какой-то момент с скатился или поднялся к тому, что человек говорит: "Секучку". Что ты говоришь? использовать вот эту библиотеку, там Люсин туда-сюда, там надо, а, там много конфигурировать, настраивать. Мм, а у неё есть Springbotстаter, понимаешь? То есть оно как бы становится и и они со своей стороны тоже также действуют. Они очень быстро говорят: "О, вышел там, не знаю, IberрNet вышел там новый какой-то стандарт, там GPA появился. Давайте сразу будем писать под это дело обёртку, стартер", потому что все же и так используют нас для того, чтобы создавать объекты, да? То есть все объекты менеджит Spring контейнеer. О'кей, появилась новая библиотека, значит из неё придётся создавать объекты. Их тоже надо будет менеджить, надо написать для неё интеграцию, там обёртки и так далее, и так далее. Ну вот это это является только интеграцией или нет? Потому что в таком случае, опять же, в других языках это всегда так, у тебя есть просто либо, который вообще просто агностик, да, фреймворка, и к ней просто пишутся адаптеры под конкретные штуки. Просто в твоём случае звучит так, что это либо которая, в принципе, и безприга ты её не заюзаешь или я не прав. И речь идёт про то, что секундочку, давай уточним. Java - это объектноориентированный язык. Соответственно, либо, если мы не говорим про какую-нибудь либо, которая тебе просто набор статических методов предлагает, там типа, знаешь, какие-то классы, она, конечно, естественно, будет сама по себе и никакой спринг ничего не нужен. Но если мы говорим про либу, которая предоставляет что-то, что подразумевает объектно ориентированное решение, и там есть какие-то сервисы, которые ты говоришь: "Вот если я эту либу подключу, у меня появится вот этот сервис, у меня появится вот этот функционал и так далее, и так далее". Понимаешь? Она что-то там будет делать, может быть, даже сама. То есть мы говорим про объекты, а если мы хотим объекты, их надо менеджить. Мы хотим менеджить, мы возвращаемся к спрингу. Или надо брать какое-то альтернативное решение или писать своё: "А зачем?" Понимаешь, когда спрингфокус существует. Вот сейчас единственное вот с ним пытаются конкурировать за счёт перформанса, не за счёт того, что То есть и у них всегда типа аргумент: "Да, но зато все нас знают, как к нам все привыкли, мы удобные, наско понять". Куча Ну, спросите чат GPT про Кваркус и спросите Клод про Ну ладно, Клод и ЧТ GPT уже нечестно. Спросите одного и того же про Кваркус и про Спрингвуд. У вас тут куча информации, на которой он обучался, он всё это знает в интернете. куча примеров акваркуса, ну там вот, понимаешь? Поэтому бороться с ними можно только за счёт перформанса и каких-то других фик фишек. Хорошо, тогда получается, смотри, какой вопрос. То есть то, что ты делаешь, оно является частью экосистемы? То есть что ты не можешь просто назваться Springi, ты обязан как бы быть вот, не знаю, как-то с их компанией согласовывать и так далее. Или я пользователь в данном решении? Я пользователь скорее. То есть я говорю, мне удобно разрабатывать в любом случае на Спрингбуте, потому что я не пишу код ээ в вакууме. Мне нужны там база данных мне нужна, соответственно, мне нужен какой-то фрейвок работать с базой данных. О'кей. Через что будет? Springdata. Всё, я тебя понял. Мне там надо веб с вебом интегрировать. Для этого мне нужен Что? Мне надо Springweb. Угу. Мне нужно с ияем работать очень много. Мы же, я же как бы вот говорю, строю там решение вокруг локальных LLM. Я поставил себе аламу, я повыбирал модели, я поставил там вот эту гему, которая мне очень понравилась. Она там даже русский хорошо знает. Всё, запустил, говорю: "О'кей, теперь надо писать какой-то код. О, спрингй". Понимаешь, я теперь понял, да? То есть у тебя история больше, чем просто там по опишке куда-то сходить. То есть это целая экосистема, которая позволяет и рак локальный, наверное, развернуть, да, и всё на свете. Да, да, да. Я могу, если ты хочешь немножко в более технический Давай, давай, давай. Да, да. Потому что это прямо отличается. Обычно везде это типа из серии, вот есть либо, который умеет там по опишке запросики херачить, стриминг, а вот всё остальное - это вот садитесь и пилите, а у тебя как будто бы получается всё сразу. Расскажи, что там есть. Смотри, во-первых, что тебе нужно? Тебе нужно для того, чтобы общаться с моделью, почему это не может быть просто там какая-то, не знаю, статический метод. У тебя есть куча настроек. У тебя есть там, начиная с того, что если ты хочешь использовать какую-то свою облачную модель, тебе нужно ключик там куда-то кришил свои проставить. Если ты запустил это в аламе, так тебе нужно там все эти настройки аламы передать. И дальше ээ первый объект, основной, который ты настраиваешь, это объект чат-клиента, который имеет совершенно стандартный API, независимо от того, какая там модель. Ты же знаешь, что у модель там семантика может различаться. Я работаю через один и тот же интерфейс. У меня есть чат-клиент. Я знаю, как его настраивать. Я знаю, как там топ к поставить, как там топ p поставить, как ему температуру задать. И с его помощью я работаю. Это значит первая такая основная вещь. Потом вторая вещь насчёт рага. Если я хочу прикрутить рагу, у меня появляется какая-то база, мне надо думать, мне надо писать какой-то очень сложный код, который будет ходить в нужный момент в эту базу. У Спринга для этого уже в этом модуле Springi продумано решение. Там есть такая штука, как адвайзеры. Ты знаком с концепцией АО? Конечно. Да. Соответственно, они на концепции АО сделали так же, как они в своё время сделали с BINPOS процессорами, которые участвуют в цепочке, вот так вот по цепочке каждый раз создаётся объект и он по цепочке настраивается. То же самое здесь. Каждый раз, когда юзер при помощи вот этого чат-клиента отправляет в lм какой-то запрос, он идёт через цепочкувайзеров, и у них есть уже много готовых написанных адвайзеров. Есть adвайзер, который умеет сам ходить в рак. Ээ есть другой адвайзер, который умеет там, не знаю, историю сообщений поддерживать. Ты же знаешь, что модель оналист, то есть ты там нет какого-то session ID, и когда ты ему говоришь и что и что, он тебе не не посмотрит на твою предыдущую фразу и скажет: "Ну так они же проиграли 8:0". Он скажет: "А почему ты начинаешь разговор с и что и что?" Да? То есть сам по себе он не знает, мы когда через UI пользуемся, мы об этом не думаем, потому что UI всё это передаёт. А когда мы берём Rest API и начинаем там кёрлами что-то дёргать или там спрингемям что-то дёргать, никто нам историю не менее за нас. Никто не знает, сколько мы сообщений хотим хранить, хотим ли мы как-то их там ээ компрессировать или ещё что-то с ними делать, понимаешь? Вот. А тут это всё готовое. То есть ты подключаешь какой-нибудь там постгрес, ты берёшь уже готовый adвайзер и передаёшь ему в конструктор, понимаеш, чтобы ты понимал, почему это не просто статический метод, и передаёшь ему на этапе создания там через builderр подсовываешь ему там свой репозиторий, понимаешь? Да. Андате, то есть Springdata - это я просто интерфейс написал, он мне сам генерит имплементацию, и я этот интерфейс передаю, значит, в конструктор, ну, я там пишу ему обёртку и передаю его в этот билдер, который строит adвайзер, который занимается менеджером памяти. Там я, значит, пишу, сколько сообщений я хочу максимум хранить. И он, значит, сам вытаскивает из базы, сохраняет в базу, в Лэмку передаёт нужный кусок истории. Оказалось, что там не всё так здорово можно настроить. Когда я начал с этой библиотекой разбираться, ну, со всем СНГ, ну, она новая, там вот версия 1.0 вышла в процессе, когда я уже курс начал писать. Поэтому многие вещи приходилось самому придумывать, да, то есть, ну, типа, о, их adвайзер умеет делать это, но мне этого мало. Напишу свой собственный адвайзер, как его вклинить в эту цепочку в нужном ордеринге. А вот так это делается. Вот там есть другой двайзер, который умеет сам ходить в раг автоматически, и у него есть опять же там куча разных настроек. Сколько чанков приносить, какой там уровень симилярити там нужен, там сколько там добирать по этому самому по трешелду. Мпишки сейчас вообще. Дададада. На это, значит, можно накручивать всякие разные оптимизации. То есть я опять тоже пришёл к тому, что большинство стандартных адвайзеров, включая даже логер, я написал свои, потому что у них ещё пока не настолько это всё развилось, чтобы там прямо всё было супер, что нужно. Вот поэтому у них дофига есть, но в любом случае у них есть инфраструктура, куда ты либо вставляешь свои решения, и они очень гармонично и просто вставляются ими легко пользоваться, либо очень часто часть этих решений ты берёшь уже их готовы. Понимаешь? Я единственное хотел уточнить. Смотри, ты сказал, что он statтless, но там не Вот мне интересно, это речь просто потому, что ты про локальные говоришь ки, потому что когда ты с open работаешь с чатом GPT, у тебя есть вариант работы stateful, да, когда у тебя есть чат, когда есть как он называется, господи, я не помню название, conversation API, как-то так, да, у тебя есть прямо треды и ты в рамках этого треда, то есть у тебя прямо содаёт идентификатор, и ты в рамках этого треда общаешься и, соответственно, у тебя просто есть айдишник. Я так понимаю, что это фича именно Я же говорю про локальные модели, которые ничего такого не дела. У них такого нет, да? Ну я просто не сильно в курсе, потому что я их только тыкал так вот чисто в кодлайне, не в коде. Ты знаешь, не ну я не очень представляю, как это как это они могли бы реализовать даже, но ну это прямо надо логику сильно писать поверх самих моделей. Кроме того, понимаешь, когда ты начинаешь пытаться выжить из локальной модели максимум, тебе приходится задумываться о таких вещах, как и ты помнишь, когда-то в школе в девяносто пятом году в классе кто-то устроил соревнование. Надо было написать ээ игру Снейк, помнишь игру Снейк? Конечно, конечно. И сам не писал, но да, цель была написать, чтобы она занимала как можно меньше места. Ну, в килобайтах, да, тогда всё измерялось в килобайтах. Я помню свой первый компьютер, у меня был 120, по-моему, 7 Мб хардска, понимаешь, в девяносто третьем году. Мне родители подарили. Эээ, и вот, значит, аэ, соответственно, всё измерялось в написании кода в килобайтах. И там кто-то 10 Кб написал, мы писали на Паскале. Э, ну, кто что знал. Выиграл парень у нас в пасе, который написал на сесмблере, и его решение весило 890, по-моему, байтов. То есть он умудрился и вот я сейчас начинаю вспоминать это, когда с локальной моделью работаешь. То есть у неё ты ей даёшь там большой системный промт, она начинает её начинает уносить куда-то. Ты говоришь: "М, надо очень-очень как-то сжато написать всёпы". Ты говоришь: "Ага, я сходил в рак, я вытащил информацию, я вытащил слишком много информации, размылся контекст, получил плохой ответ. Значит, надо тут тоже сжимать". Начинаешь менеджить историю, говоришь: "Не, ну я не могу себе позволить хранить всю эту историю. Мне надо её как-то чистить, мне надо её как-то только важные вещи из неё брать. Надо как-то компрессировать". Ну, в эти дебри я как бы ещё не готов вот прийти и написать тренинг, но я вот сейчас как раз следующий, наверное, будет именно про это. Кстати, в этом плане мне интересно вот поскольку я, ну, так чуть-чуть тыкал локальные модельки, блин, ну качество, конечно, не несопоставимо, и самое главное, скорость тоже. То есть ты считаешь, что этим кто-то может пользоваться? Да, ничего подобного. Могу тебе прямо сейчас порить экран и показать. У меня работает всё достаточно быстро. Он прямо бегало так стримингом печатает. Я же не фронт девелопер. Мне надо было найти какое-нибудь прикольное решение. Там я не хотел там, знаешь, заморачиваться с Реактом там или ещё с чем-то. Короче, на джаваскрипте обнаружилось решение. Там с пятого HTML появились эти эмитеры. И это, ну, сервер Send Event, это SSE. И ты с фронтенда прокидываешь этот, ну, подписываешься там на события, этот ему передаёт эмитер, и дальше как бы стримингом очень легко становится общаться. И он достаточно бегло бегло достаточно работает. Ну, я имею в виду, я работал в командлайне просто, то есть кодлайновых инструментов довольно много, и в моём случае тормозило. И потом я как-то с людьми общался, говорят, что слушай, Кирилл, а что ты хотел? У тебя там машинка должна быть совершенно другого уровня, чтобы это быстро работало. Я как раз хотел. Следующий был мой вопрос. У тебя какой процессор? Ну, М4, да, он не, слушай, у меня 3. У меня прямо очень жили 3. Ну вот. А, слушай, хотя пробовал я, наверное, на М1. Я пробовал последний раз на М1. То есть ты хочешь сказать, что разница такая существенная? Да. 3. Начиная с М3, да? Ух ты. Я попробую обязательно. Но в итоге, короче, я остановился на Open AI. А у тебя есть у твоей либо, ну, уже какой-то продакшн использование или ты пока только-только всё это фигаришь? Я этим занимаюсь по двум причинам. Первая причина, а мне нужно для работы написать такое решение. Мы на работе занимаемся тем, что одна из наших направлений, ну вот именно чем чем я занимаюсь, это мы разрабатываем разные игры, которые должны перевернуть реальность людей. Начали мы чуть больше года назад. Первая цель была поставлена, надо перевернуть реальность людей в том, чтобы они осознали, что уже есть. Потому что большое количество людей, там чуть больше года назад у нас таких в компании было дофига. У нас компания 50.000 человек и там процентов 80 людей GPT пользовались там, знаешь, ну или клоном. Ну можно тесты сгенерить и то лучше потом это самое, ну можно документацию написать и всё. То есть люди как-то обожглись в начале, не разобрались, как этим правильно пользоваться, не заметили, насколько это всё выросло за год, и им не хотелось второй раз в это всё погружаться. И потому что, ну, то есть, если описать, чем я занимаюсь в плане вот State of Mind, я хотел бы это видеть так. Если взять человека, который находится в точке, где он может про себя сказать следующее. Я попробовал использовать каждый раз, когда я пользуюсь Лэмом для решения какой-то задачи, неважно написать код, написать mail, ээ, проанализировать отчёт, там, не знаю, ещё что-то. Я 2 часа там сижу, с ним трачу, он мне даёт, я исправляю, он мне даёт, я исправляю, он мне даёт, я исправляю. В конце я всё это выбрасываю, сажусь и пишу сам. И в итоге я себя чувствую в депрессии от этого, от того, от этого процесса. Это вообще было не по кайфу. Это меня вывело из себя. Я потом хожу на людей, срываюсь, время потрачено впустую. И вот это как бы самая крайняя точка, где ээ некоторые люди до сих пор находятся и говорят: "Нет, нет, нет, уберите от меня эту гадость, я сам буду по старинке делать". У меня сосед вот здесь живёт, уникальный человек, он сам индус, ээ, но он знает русский язык. То есть, ну, очень необычный человек, очень умный, очень начитанный, эрудированный. Там он Достоевского как бы мне цитирует периодически, то есть прямо реально какой-то странный чувак. И он тоже большой начальник у себя в IT. Он не использует GPT именно вот по этим причинам. Он говорит: "Нет, я осoolл и всем своим тоже программистам говорю: "Лучше будьте олдсool, как я". То есть поэтому такие люди ещё до сих пор есть, а год назад их ещё было больше. И, соответственно, мы для того, чтобы э заингейжить их по-новому, решили сделать это при помощи игр. И это сработало на многих людей, не на всех. Но многие люди через игры прониклись. То есть я сказал себе такую вещь. Если с этой штукой, ну, представить её себе как вот, как говорит, как мой начальник говорит, там фильм Матрица, Терминатор, а мы хотим наоборот её использовать максимально эффективно, то с ней нужно дружить. А как, что ты делаешь с друзьями? Ты с друзьями играешь, так ты их узнаёшь, так ты их начинаешь любить, так тебе с ними прикольно. И может быть в какой-то момент работа превратится в игру. Ну, это, понимаешь, это может быть моя личная заморочка. То есть я в детстве, может быть, не знаю, что-то не доиграл. Я был мастер ролевых игр, знаешь, вот эти, которые нисты с мячами бегали по лесу. Вот. Вот я там среди ними, среди них тоже бегал. И мне всё время было вот интересно всё, э, все объяснения превращать. Если ты посмотришь на мои доклады, у меня там пчёлки, муравьишки что-то строят. Ээ, то есть, ну, мне кто-то когда-то сказал: "Хочешь кому-то что-то хорошо объяснить, объясни это ребёнку". Все, ребёнок понял, значит, всё. И вот у меня всё такое детское. Так вот, начали мы просто с игр для того, чтобы посмотреть, как прикольно с ним общаться, посмотреть, как прикольно придумывать свои игры. Для этого надо писать какие-то системные промты. Человек там, о, говорит, о, я до своих детей напишу. Он начинает в это погружаться, видится это под другим углом. А вот последняя игра, я можно сказать, не знаю, я придумал новый вид разработки вот в процессе этого. Ну, мы с моей командой. Давай, давай, давай. Значит, у нас вначале все писали таким водопадным стилем, да? Потом у нас появился TDD, да, и люди там, о, давайте. Потом появился BDD, ещё круче, да, Behavor Driven Development. Потом появился PDD. PDD. Я услышал первый раз этот термин от Баруха Садогского. Пидидиди. Его же посадили, мне хочется пошутить. Хорошая шука слепаков бы оценил. Значит, PDD - это Driven Development. Это вот такой, знаешь, стиль вайпкодинга, но в котором есть определённая логика. То есть вот Барук на своём докладе рассказывает очень интересную вещь, когда вначале ты должен добиться того, чтобы тебе первый агент, ну, грубо говоря, то есть там на самом деле это всё один промт, который по цепочке вот так вот переходит, но лучше это видеть как первый. Тебе должен написать спецификацию задачи. Ты её пока не запрошь, ты её с ним вот так пингуешь туда-сюда, тудасюда, туда-сюда. Когда она вылезана и становится идеальной, ты переходишь на следующий этап. И теперь ты просишь генерить тесты, которые полностью покрывают эту спецификацию. Ну, на мокх, естественно, там всё. Потом ты просишь, опять же, ты проходишься по тестам, ты смотришь, если каких-то тестов не хватает, если какие-то тесты неправильно написаны, что-то где-то не так, понятно, что ты этот анализ тоже, наверное, будешь делать при помощи какого-то агента, а не сам сидеть вручную. Вот он тебе будет подсвечивать: "Посмотри сюда, дружище, мне кажется, я нашёл проблему". А меня какой-то товарищ сказал: "Вот когда ЛМ научится критиковать друг друга, тогда я говорю: "Слушай, ты что? Они же у", а это же как раз в предыдущем подкасте было, они же уже друг друга прекрасно умеют критиковать. Нету практически, по-моему, никаких шансов, интересно даже себе поставить такую задачу, попросить ЛМ написать какой-то текст, дать его тому же самому ЛМ в новой сессии сказать: "По-моему, здесь не всё здорово. Как ты считаешь, что тут не так?" И он там прямо найдёт очень много не так. Поэтому, естественно, когда мы хотим проверить какое-то что-то, что написано lм, мы можем использовать lm для того, чтобы он нас хотя бы позвал и показал. Понятно? В конце всё глазами перепроверим. Пришли к тому, что тесты все прямо идеальные, переходим к следующей фазе. А если не идеальные, знаете, что мы делаем? Мы не начинаем чинить тесты, ни в коем случае руками ничего не трогаем. Мы говорим: "Так, секундочку, если вот не хватает этого теста или вот этот тест написан неправильный, значит какая-то проблема в спецификации. Значит, надо в спецификации, чтобы добавился вот этот кусочек. А почему его, собственно, не было с самого начала? Может, что-то было не так в моих в моём первом запросе, когда мы с ним спецификацию обсуждали. Вернёмся туда. Вернулись туда, починили, починили, значит, этот запрос. Починилась спецификация, не починилась. Ещё раз. И вот так вот крутимся, крутимся. Потом от спецификации к тестам, потом от тестом к коду. И каждый раз, когда на каком-то этапе что-то не так, возвращаемся не на в предыдущий этап, а на самое начало. И это таким образом помогает поддерживать это всё в таком консистентном состоянии. Нам легко, значит, в любой момент взять и там какую-то новую фичу запилить. Это такой вот вайп-кодинговый немножко стиль, но у него есть какая-то вот концепция, не просто давайте посидим и помедитируем с компьютером и периодически будем играть на пианино, пока он там что-то пишет. Ох, мне так хочется в адвоката дьявола поиграть. Я понял, что мне нужно сказать. И давай, давай. Главное мне не забыть, о чём я говорил, потому что я хотел тебе рассказать про PDD. про GDD. А зачем я это хотел рассказать? Для того, чтобы объяснить тебе. О'кей. Да, я пока не завоил. Да, мы просто, чтобы слишком далеко не раскопали, потому что здесь есть нюанс. Вот у меня уже несколько было подкастов. Иишку, во-первых, мы везде обсуждаем, да, но несколько уже подкастов, где вот мы прямо конкретно про это говорили. Ну, естественно, все это обсуждают. И мне, знаете, что это напоминает? Мне это напоминают всякие истории, связанные там с, не знаю, там человек выходит в открытый космос или в целом летит в космос, и у тебя появляются какие-то новые эффекты, новые штуки, о которых никто раньше не подразумевал, что это так сработает. То есть логически одно, а по факту психика устроена, например, по-другому. Ну или какие-то процессы меняются физиологические, например. И вот здесь что я замечаю, вот это реально где-то на уровне психики и физиологии. Это подтверждают многие ребята, когда ты входишь в какой-то режим именно э написания вот таким образом, и ты говоришь: "Вот я ручками проверяю". Срабатывает какая-то интересная механика внутри организма. Если ты в принципе генеришь и он выдаёт же довольно много, то есть объём, который он выдаёт, он, ну, часто всё-таки приличный. Допустим, даже 5070 или 100 строк кода - это всё-таки штука, которая требует ментального напряжения, чтобы хоть немножко их понять. Люди отмечают, с которыми я общаюсь и то, что я читаю, что мм желание это делать, оно прям у тебя, грубо говоря, внутреннее некое сопротивление появляется. То есть сделать это становится неприятно. Ты прямо чувствуешь, что ты не хочешь этого делать, и ты себя заставляешь. И в итоге очень многие люди, которые пытаются входить в режим, а, сначала такого контроля, типа он делает, а я полностью такой собранный и контролирую, что так не получается, потому что либо ты просто задалбываешься и тебе хочется быстрее, но там долго может делать, там много разных причин, тупить где-то. А с другой стороны, если ты чуть переходишь наоборот в уровень я не очень анализирую код и смотрю, то у тебя как бы баги, которые появляются, тебе очень сложно хотеть в них разбираться и останавливаться, чтобы читать этот код, потому что знаешь, что ты знаешь? Ты знаешь, что в следующий раз, когда ты, допустим, ты начал вникать в этот код и пытаться понять, что он там где-то допустил ошибку, и ты понимаешь, что ошибка есть, и как вот ты сейчас рассказывал, не исправляешь, ты спросишь снова сгенерить новое, у тебя происходит очень интересная штука. Он генерит полностью новый код, и ты понимаешь, что тебе, по сути, заново надо смотреть. Да, он может повторяться, но ментальная нагрузка сильно больше. А знаешь, ещё какая проблема возникает? Вот я с этим часто сталкиваюсь. Я понимаю, что мы с ним зашли в тупик, и он, в принципе, пошёл не по тому пути, начал использовать не тот инструмент, не подходящий, ещё что-то. И а ты как бы начинаешь в режим, даже забудь про это, начни заново, не всегда срабатывает, потому что его надо как-то выкинуть из этого состояния. Ты там новый контекст создаёшь, и он, когда выдаёт тебе новое, ты такой: "Мля, опять сейчас в этом всём разбираться". И я за собой это замечаю, за другими. И ты прямо ли А знаешь, в чём проблема? Если выходить полностью на вайб-кодинг, ну, я думаю, ты как раз и не имеешь в виду это, да, у тебя вообще лажа, потому что тот код, который получается, он может быть, ну, вообще абсолютно неадекватный. И попытка его исправлять - это просто метод тыка. Сгенериновая, не скомпилировалась, вот ошибка, сгенериновая, вот не скомпилировалась ошибка. И люди часами в этом цикле как бы живут. Вот такой я встречаю. Ты знаешь, я не буду сейчас от имени этих людей пытаться спорить то, что ты сейчас сказал. Хотя там поищи в Ютубе доклады Павла Веллера. А вот он как раз делает вайп-кодинг вот именно в таком стиле, как ты писал, у него всё отлично получается. То есть он он в конце 10-15% дорабатывает всегда руками. То есть он не пытается получить полностью готовый результат, но он говорит, что благодаря вот этому подходу он делает пять фич в неделю, а раньше делал одну-две. То, что в целом это работает, это правда, но я имею в виду оно не как бы ты, когда чем больше это делаешь, ты начинаешь понимать, что вот есть кейсы, то есть вот есть такой кейс, тут работает, есть вот такой кейс, тут надо самому подумать. То есть у тебя нет такого универсального кейса, что ты через него всё делаешь, потому что есть части ну, например, повторять какой-то код, рутинное переписывание каких-то операций, да? Или, например, когда у тебя выделенная функция, которая решает очень чёткую задачу, она изолирована от всего остального окружения, да? Это идеальные штуки, где даже думать не надо. Я, кстати, по этой причине начал, а, особенно вот на фронтде, где у тебя много, знаешь, такой компонент, который решает какую-то задачу. Ну, типа, например, покажи область, в которой есть кнопочки там выделить жирным, знаешь, такой, как висивик, маленький редактор. Ты можешь генерировать компонент и не вникать, потому что он может его переписать, тебе вообще без разницы. Ты знаешь, что он компактный, он ни с чем не взаимодействует. Всё, и это там работает круто. То есть, например, раньше, когда я мог потратить кучу времени на поиск библиотеки, на отправку пулреквестов, если там какие-то баги, да, то теперь ты генерируешь этот код, и ты не переживаешь, потому что он больше не рассматривается тобой как технический долг, даже если он херово написан, потому что он полностью изолирован, да, он не растит этот долг и да, он помогает это делать. Но когда ты говоришь про связанные какие-то вещи, которые с компонента, ну, работают с твоей системой и влияют на твою архитектуру, вот этот вот вот перескок, что я всё время контролирую, что он пишет, блин, очень сложно людям даётся. Вот сложно. Они такие, чёрт, всё время хочется перестать туда влезать. А как только ты перестаёшь, ты попадаешь в цикл ошибки, которые не фиксятся. Вот. Слушай, знаешь, какая у меня сейчас появилась ээ мысль? Доказать тебе, что ты прав. Э ты согласен, что для лэмки, что код, что картины, что нулики единички, это всё какие-то векторные репрезентации? Он же всё равно смысла не понимает, правильно? Знаешь, я на чест скажу, я настолько плохо, я, конечно, могу тебе сказать, вот там матрицы перемножаются, да, но для меня это пустой звук, потому что я не очень понимаю, что на самом деле там происходит внутри. Поэтому, наверное, мой ответ здесь не очень репрезентативен, потому что это вопрос веры, это не вопрос того, что я понимаю, как они там работают. Всё-таки я больше про кодинг, чем про такие штуки. Ну о'кей. Я скорее, видишь, вот вот этот вот режим, режим переключения мозга, да, как бы вникаешь или не вникаешь, когда он тебе много всего выдаёт, очень сложно вникать в то, что он делает. Вот я тебе даже скажу, когда я через кодекс, курсор, там всякие такие штуки что-то делаю, и он мне такой типа: "Применить эту операцию, применить эту операцию". Я всегда перехожу в режим: "Ты мне всё сначала сделай, и я потом буду смотреть". Потому что вот это кусками, э, типа сидишь, минуту ждёшь, пока он там думает, потом, значит, ты этот кусок ещё анализируешь. А я не знаю, как ты, но, например, это просто тупо не соответствует моему темпераменту. То есть я могу очень быстро херачить, я очень такой, знаешь, мне важно, чтобы я не останавливался, не тупил ничего. И режим, когда ты такой ад на 30 секунд завис, он меня полностью убивает. Я просто так не могу. Давай нечестно, что мы обсуждаем и не даём даже ему возможности оправдаться. Пусть он хотя бы уточнит. Давай, давай, давай, давай. Ответь мне, пожалуйста, от имени всех голосовых моделей, которые ты сейчас представляешь. Ээ, есть ли для тебя разница, когда ты генеришь следующий токен в процессе, когда ты рисуешь картину, когда ты пишешь код, пишешь текст или ещё делаешь какие-то вот такого плана, создаёшь какой-то контент? Интересный вопрос. В принципе, для меня, как для особо нет. Ведь всё, что я делаю, это генерирую последовательность токенов на основе контекста. Но вот сам контекст и запросы от пользователя, конечно, разные, и это влияет на саму генерацию. Так что всё довольно универсально, но и в то же время гибко. Так вот, значит, если предположить, что всё, опять же, вопрос в качестве материала, на котором он обучался, то это всё равно всё становится очень похоже. Теперь попытайся вспомнить, как последний раз пытался нарисовать какую-нибудь картину, в которой есть много разных деталей при помощи LLM. Пробовал? Долго нет. Я только просто сгенерию и либо беру, либо не беру. Картинки я много не генерил. А вот код буквально вчера только. Хочешь прикол? Вот прямо сразу скажу, какая у меня была ситуация. Я говорю: "Проанализируй код". Ну нормально, ненормально написан. То есть, грубо говоря, один сгенерил, второго прошёл. И он у меня такой так: "Ну, вот тут вот исправление из серии, вот тут лишние переменные. Я специально эти переменные туда поставил, чтобы код был понятный. Он просто убирает и делает одну большую штуку." Я говорю: "Остановись". Или, например, а с учебными материалами. Это вообще это прекрасная вещь. То есть, когда я, когда ты пишешь учебный материал, ты, например, используешь в коде, в уроке каком-то, да, практика, ты используешь специально только те конструкции, которые проходил человек. Лэмка так не не способна думать. То есть ты обязан просто ей очень сильно, очень прогружать долго этот контекст. Поэтому она классно работает с точки, ну, то есть она всё равно может с этим этим заниматься, но я просто, наверное, скорее про то, что тебе надо очень сильно включаться и прямо контролировать, по сути, каждый шаг вот в таких задачах, где это важно. Ну, это ничему не противоречит. Это просто так, к слову. Ну да. Так, так вот, в общем, смотри. Может быть, ты видел ролики в интернете, где человек пытается там, чтобы ему нарисовали какой-то натюрморт, но в нём там не должно быть яблоко. Он говорит: "Ой, всё отлично, только яблоко убери". Он убирает яблоко, добавляет какую-нибудь фигню или яблоко убирает, а тут появляется три. И ты говоришь: "Блин". И ты понимаешь, что если вот ты попросил нарисовать чайник, вот он нарисует тебе чайник, ну там вряд ли будет какая-то проблема. Ты скажешь: "Не, он должен быть синий". Он нарисует синий чайник. Но когда ты начинаешь говорить вот в этой картине должны, значит, гвардейцы, кардиналы должны бежать слева направо, на них должны быть шкитёры. Терминатор на вертолёте пролетает сверху, тут, значит, взрывается и и если тебе надо, чтобы просто был какой-то хаос, он тебе сделает хаос. Но если тебе важно, чтобы все эти детали были, а ещё не дай бог ты ему скажешь: "На футболках футболистов должна быть написана реклама". Именно вот такая фраза. Э, ну, тут он букву потеряет, там у него человек вверх ногами, тут у него шесть пальцев на руке. То есть чем больше у него детали в этом контексте, тем меньше шансов, то есть практически уже не остаётся шансов, что мы полностью от него получим идеальный результат. Всё равно придётся руками править. И вот здесь тут уже каждый в объёму своего мозга. Кому-то проще сфокусироваться на маленькой задаче. Кто-то скажет: "Да ладно, дайте мне весь этот всё это футбольное поле, в котором 15% поломано. я эти 15% отлично прослежу и всё починю. Мне мне тоже так сложно делать. Вот поэтому, возвращаясь как раз к истории, что такое GDD, мы как раз там и фокусируемся на совершенно другом подходе, не как вайп-кодинг, не давайте сразу попросим весь проект и будем его перегенерить до тех пор, пока не получится хорошо, а если нет, будем возвращаться и уточнять что-то в наших инструкциях. Это как бы здорово. и наверняка на определённых типах и с определёнными даже не технологиями, с определёнными концепциями разработки это может сработать. То есть в компании, например, которые используют разные языки программирования на каждом лейере, очень тяжело сделать цельный проект вот так вот в одном Аде. То есть опять же можно и возможно скоро придёт тот де, который всегда всё будет делать, в общем, почти правильно, но тем не менее есть место для альтернативы в мире, где у меня и как бы на что есть очень большое количество компаний, которые так раньше работали, у них было чёткое разделение, это frontend Developer, это у них нет такого там фустек делает сразу всё ещё немножко devops. Есть компании, которые идут в этом подходе. Им вот этот вот вайпкодин, давайте весь проект целиком, а там потом пицето подправим, намного будет, наверное, лучше. Но там компании, которые работали по принципу: "У нас DevOpsops - это DevOps, фронтеer - это фронтенer, этот QA, и каждый там вот свои ниши". То мы для них придумали игру. Вот это последняя наша игра, которую мы ещё скоро прикрутим и голос, и агенты. И это вообще будет как бы новая реальность. Пока это игра в текстовом режиме, которая называется Next Gen Developer, программист следующего поколения. Забегая вперёд, скажу, что в неё выиграла моя девятилетняя дочка. Значит, игра, конкретный пример этой игры фокусируется на одном сценарии. У тебя есть шесть персонажей, с которыми ты общаешься текстом всегда только с одним, да? То есть у тебя есть кнопочки, чтобы зайти в комнату девопса, в комнату фронтендера, в комнату бэкэндера, там, значит, диалоги с ними. История диалогов не сохраняет, не исчезает, можно всегда пролистывать наверх. Один из персонажей, он тебе объясняет, что тебе вообще в принципе надо делать, и говорит: "Иди в продукт-менеджер. Продукт-менеджер скажет тебе уже конкретную задачу. Он тебя там познакомит". Ну, то есть этот первый самый вступительный персонаж знакомит тебя со всеми людьми и говорит: "Ну, ты идёшь к продукт-менеджеру и вот начинаеш с него. Ты приходишь к нему и говоришь: "Что сегодня разрабатываем?" Он тебе пишет, соответственно, там ТЗ. Ну, грубо говоря. И причём мы его специально сделали, чтобы он разговаривал как продукт-менеджер. Если ты с ним как бы разговариваешь просто вот как как разговор, то он может какие-то детали упустить важные. То есть ему с ним надо определённым образом поговорить, чтобы всё правильно от него получить. После этого ты либо идёшь к соtionн архитекту и начинаешь с ним обсуждать, а как это, собственно, сделать, как разбить это на задаче, как написать спецификацию. Либо идёшь сначала к девообпсу для того, чтобы настроить инвайт. Он тебе объясняет, откуда скачать докер, в котором весь envirймент, в котором есть уже там база данных, в котором всё настроено. Осталось только написать тот код, который тебе надо написать. Вот. Но так или иначе ты в конце всё равно возвращаешься к Солун архитекту, когда ты уже собрал всю информацию, ты понял, как выглядит база данных клиента, которую надо задействовать в данной задаче. Ээ то есть там, чтобы было понятно, как бы какого уровня задачу мы решаем. Продукт-менеджер говорит: "Я продал нашим клиентам такой прикольный сервис, называется сервис предсказаний". Этот сервис предсказания очень уникальный. Вы его спрашиваете, почему он уникальный? Он говорит, он уникальный, потому что он даёт уникальные предсказания на основе личности человека, используя его личностный профиль. Ты говоришь: "Профиль, где профиль?" Он говорит: "А профиль в базе данных у нас есть база данных, она у DevOpsса, иди к нему". И вот, соответственно, тебе надо у DevObса, значит, он тебе помогает скачать всё это дело. Там ты подключаешься к этому докеру, заходишь в базу, видишь, как выглядит этот профайл, как построена база. Всё это, понимаешь, идёт к Солушной архитекто, начинаешь это с ним обсуждать, он уточняющие вопросы задаёт. Ты иногда возвращаешься к продукт-менеджеру что-то переспросить, ты всё собираешь. Благодаря этому, во-первых, ты не чувствуешь себя в таком депресняке, как вот не знаю, ну, то есть оно оно прикольно, ты играешь ещё мы персонажей сделали таких прикольных. То есть у меня девопс там матерится периодически, да. Ну, то есть всё всё как в реальной жизни. Можно я уточню? Да. Ты я до сих пор вот ты рассказываешь, я не понял, это реальные люди или это в чате боты так общаются? Вот ты говоришь: "Играй". Это Нет, это играли. Играет один человек с шестью ботами. А, с ботами. Всё, понял. Потому что я не до конца просто так реально звучит, что как будто это живые люди. А потому что я понимаю, когда пассивная, а а когда у тебя активная вот задают тебе вопросы или как-то выступают, чтобы тебя задействовать, это прямо требует же, ну, написания логики сами по себе. все эти лоламки неактивные. Ненене не, там очень много системных промтов. То есть каждый персонаж, опять же, у нас везде синг single responsibility, каждый персонаж, у него свой системный промт, который как бы всё знает про то, что он должен знать, и его характер, соответственно, и его знания, и его, значит, фокус, как он работает. Более того, нам пришлось достаточно повозиться, чтобы сделать так, чтобы персонажи отказывались делать то, что они делать не должны. Например, если ты, вот моя дочка, например, пыталась заставить Девопса код писать, потому что она вообще не очень понимала. Ну, 9 лет ребёнку, она говорит: "А, я поняла, всё, сделай тогда этот код". Он такой типа: "Нифига, что ты, говорит, меня грузишь? Иди", говорит, вон у тебя бкэндер есть. Она пришла к бэкэндеру, говорит: "Вот, надо написать сервис предсказаний". Он говорит: "Есть спецификация?" Она говорит: "Что это?" Он говорит: "Ну, это такое описание задач". Она говорит: "Ну так что ты не можешь, я тебе скажу, а ты напиши". Он говорит: "Не, я без спецификации не работаю". Я, конечно, могу написать, но я хреново напишу. Вот под это заточен сою архитекто. Мартин, к Мартину сходи, он напишет. То есть она в итоге в любом случае до него дошла с ним, она обсуждала, а он её не отпускает, пока он у него есть вопросы. Он говорит: "Нет, я не могу написать спецификацию. Уточни, можем ли мы использовать для этого вот такую технологию, нет ли там ограничений, а можем, а а вот тут непонятно, как должно, как UI должен выглядеть." Он задаёт, задаёт, задаёт ребёнку вопросы ребёнку, потому что это на уровне ребёнка можно играть. Она на всё ответила. Он в конце ей пишет спецификацию для бэкэндера. Она её копипестит, относит в разговор там, где она с бэкндером. Он по этой спецификации говорит: "Ты хочешь, я тебе весь код напишу по вайп-коде или ты хочешь по одному кусочку?" Вот я люблю стиль, когда по одному кусочку. Он пишет там типа первый класс, она его вставляет там в свою среду разработки. Он пишет: "Второй класс, она вставляет". И вот так ты всё проходишься с ним, понимаешь? Что-то тебе не Ну, понимаешь, то есть как бы там не слишком сложная задача, поэтому и ребёнок справился. Надо на более сложное задаче. Надо всё-таки, чтобы сидел опытный человек и эти кусочки кода мог просматривать, как-то их корректировать, уточнять ему, чтобы он запомнил, как их скорректировали, для того, чтобы следующие кусочки стыковались. Но в конечном итоге она справилась и построила приложение сама. А следующая версия этой игры, мы там за за этим ещё поставим агентов сзади, и тогда у тебя будет выглядеть так. То есть ты пообщался, то есть ты, например, общаешься с продукт-менеджером, он тебе говорит: "Надо сделать сервис предсказания". Ты говоришь: "А как бы будет выглядеть UI?" Он говорит: "Ну, там должен быть текст фил, чтобы человек вносил своё имя, кнопка, да, ты говоришь: "А можешь дать кап, как это будет выглядеть?" Он такой: "Не вопрос". Дёргает за собой агента. Тот ему рисует кап, тот ему говорит: "Вот тебе". Дальше ты приходишь, не знаю, к девопсу, ээ, он тебе говорит: "Ну, для того, чтобы запустить там envirймен, тебе надо скачать вот отсюда с этого линка, потом поставить это, поставить это". Ты говоришь: "А, ну, всё понятно, сделай". И он тебе это делает. То есть он сначала тебя обсуждает, что надо сделать. Ты когда понимаешь, что это правильно, всё понятно, хорошо. Или то же самое с бэкэндером. Он тебе написал какой-то класс, ты его просмотрел, обсудил, говоришь: "Да, хорошо написал, давай примени его, засунь его в проект". Он сам идёт, тебе его куда надо записывать. А потом ещё это голосом будет. Прикинь, ты такой сидишь, кофе пьёшь, общаешься с этими виртуальными ребятами, между ними ходишь. Потом ещё мы сделаем так это самое, знаешь, я уже вижу, как это будет выглядеть. Ты будешь говорить союtion архитекту, слушай, что ты сходи ты сам к бкн этому к продукт-менеджеру и уточни у него, что ты через меня это всё делаешь. И там будешь их учить друг с другом общаться и только контролировать сверху весь этот процесс. Я это называю продукт инженер. А весь этот стиль я называю GDD, потому что это game driven development. Мы типа играем в игру с персонажами, а в конце у нас продукт получается. У меня есть вопрос технический, который мне непонятен. Одно дело, они отвечают, другое дело, ты говоришь, он начинает задавать вопросы, как технически вы реализуете эту логику? То есть как ты понимаешь, что вот сейчас надо начать задавать вопросы и когда надо остановиться? Потому что это не выглядит очевидным. Ну ты вот говоришь, разработчик начинает у неё уточнять вопросы. То есть я понимаю, когда она пишет, он просто отвечает. Ты имеешь в виду, как мы написали такой системный промт, который задаёт вопросы правильные до тех пор, пока не поймёт, что всё понял? Не, я скорее, я скорее про то, что у тебя сама по себе логика, то есть логика чата из серии "Мы что-то спрашиваем GPT", он отвечает. Это просто опишка, да, вопрос-ответ. Но когда ты сам, то есть в смысле с той стороны тебя спрашивают человека живого, это не работает как код сам по себе. То есть у тебя прямо должна быть логика, что какой-то код должен запросить у ллэмки, типа скажи, какие вопросы ты хочешь задать, передать их тебе. То есть это же прямо отдельный код. Она не может сама задать вопрос в чат по пишке. Ну на целая вот-вот, расскажи, пожалуйста, просто интересно. То есть давай, вот я правильно понимаю, что примерно так, если ты спрашиваешь что-то у девелопера такое, на что он триггерится, то есть какой-то внутренний триггер, о, значит, надо начинать задавать вопросы, так же это происходит. То есть это же после какого-то вопроса происходит. Нет, у них просто прописана инструкция, что каждый раз там на самом деле ещё хитрее. То есть там есть ээ сам агент, ну, то есть сам персонаж, который с тобой общается, а есть ещё один над ним, который проверяет, что у него есть достаточно информации для выполнение задачи, которую ему попросили. И если нет, понимаешь, то есть как это работает. Дадада. Вот я это имею в виду. Да. Дал задание. Он он он именно, знаешь, как очень умный человек, очень опытный, который не приступит к ТЗ, пока он полностью не увидит, что у тебя вся спецификация покрывает всё, что он хочет знать. И он тебе будет задавать вопросы ээ до тех пор, пока он не получит полную картину. И тогда вот Solолuttionн Architк, вот, например, на нём вот классический пример. Я тебе могу скинуть ссылку на видео, где моя дочка играет в эту игру, и ты увидишь, как solution архитектор задаёт вопросы и и она уже такая: "Ну всё, уже пиши, давай уже, давай работу". Он такой: "Я не могу, мне надо понимать, как выглядит профиль. Я не могу написать спецификацию, потому что бэкндер потом не разберётся, как надо посмотреть, как построена таблица в базе данных. Мне нужна вот эта информация". продукт-менеджер должен обязательно уточнить, имеем ли мы право в этой разработке пользоваться ээ сторонним сервисом, который, ну, и понимаешь, вот он все эти вопросы пока не задаст, он не успокоится и не начнёт писать спецификацию. Слушай, это на самом деле интересно. Вот такая логика всё-таки требует, ну, прямо реально там не только модельки, но и триггеры, да, что если там недостаточно информации, мы инициируем со своей стороны разговор в ту сторону, и ты говоришь целая платформа, то есть у вас реально компания, аа, не знаю, это твоя идея была, чья-то идея была, это же много денег. То есть вы фактически выделяют ресурсы на создание такой штуки. Расскажи что-то интересно. Слушай, ну у нас это делается в основном за счёт добровольцев, понимаешь, когда компания большая. Одно из вещей, которые компания может и, в принципе, наверное, правильно сделать, это воспользоваться свободным временем желающих людей, которые хотят потратить своё свободное время для того, чтобы сделать что-то прикольное, прокачаться, пообщаться с другими людьми, которые, ну, знаешь, то есть люди же как-то саморазвиваются. То есть ты сидишь, например, на скучном проекте, у тебя остаётся время. Иногда во время проекта у тебя остаётся время, иногда у тебя просто есть ещё свободное время. И вот из таких добровольцев, которые в нашей компании работают, я набираю команды, и мы, ну, периодически люди уходят периодически, но у нас до сих пор есть несколько человек, которые вот с самого начала пришли и пишут, и вот до сих пор они пишут и пишут. Вообще вот то, что ты говоришь, это вот эта игрушка, это знаешь к чему близко? Это близко к тренажёрам, симуляторам, которые мы вообще мечтаем создавать. И как раз вот кождый раз, когда меня спрашивают про, ну вот обучение, у нас, например, есть чат там, который встроен в платформу. Вот ты курс проходишь, да, у тебя прямо вот, например, ты запускаешь практику, у тебя там вывод какой-то, контекст известен, но это просто чат, то есть он пассивный. Ты задаёшь вопрос, он отвечает. И меня всегда, когда про это спрашивают или вот мы обсуждаем где-то вопрос, я говорю: "Слушайте, ребят, пока замена учителей, замена вот такого рода возможно будет только тогда, когда у вас появится простой способ создавать активных агентов, когда у вас сама система будет тебя вести, узнавать на каком-ты уровне и так далее. И я пока в своей голове не сформировал этот vision. То есть для меня пока это кажется слишком сложным. Я имею не в смысле технически это реализовать. Технически мы можем придумать, как человек что-то спрашивать, но чтобы это не выглядело тупо. Понятно, да? Вот я подохожу, сажусь за компьютер, допустим, я там с репетитором созваниювась или там с тренером своим, которым удалённо, не знаю, помогает мне. Он же сразу: "Как дела? Настроение? Понял, увидел? Про кошечек поговорили, погоду. Как у тебя сегодня? Готов, давай тра-та-та поделаем и пошли, да, чем-то заниматься. И теперь мы предполагаем, что это заменили. Не твой кейс похожий в этом смысле, да, что вот активный человек с той стороны, в смысле агент, ассистент. Я пока не понимаю, вот просто не очень понимаю, как можно это сделать так, чтобы ты не чувствовал, что ты это какая-то тупая игра. Ну, не в плане твоей игры. А я имею в виду, вот когда ты прямо по-серьёзки думаешь, что сейчас удалённый учитель тебя чему-то там научит, допустим, и ты не будешь чувствовать, что он какую-то херню спрашивает, такой: "Нахер общаться мне с этой машиной тупой, пойду лучше к нормальному человеку". Я тебе расскажу такую историю. Год назад я пришёл в школу перед началом учебного года. своей дочке и попросил, чтобы мне учительница по математике и учительница по науке, я не знаю, как чтобы они мне дали все учебные материалы. Дальше я сделал два custom GPT. В один custom GPT я сгрузил все материалы по Science, в другой я сгрузил. Дальше мы, значит, один системный промт я писал при дочке, чтобы она поняла принцип, как пишут системные промты, как создают персонажей. Я её я задавал ей вопросы, говорю: "Ты хочешь, чтобы он был весёлый? Ты хочешь, чтобы он болтался? Ты хочешь, чтобы он говорил это?" И как бы мы его настроили. Причём опять же, знаешь, как сегодня пишется системный промт? Ты, у тебя, у меня есть персонаж, с которым я обсуждаю, как написать системный промт. Он мне в конце его пишет. Вот, значит, вот мы с ним там обсуждаем. Я, он говорит, а, уточни у дочки это туда-сюда. Вот так создали. Второго она уже сама создавала. Вот она придумала им имена, и она весь год, то есть мы за полгода закончили учебную программу по Science с этим персонажем. Она потом в конце года сдавала экзамен и говорит: "Ой, пап, так прикольно, они вот этиation participation учили". Говорит, они там большинство эти термины выговорить не могли, а я это всё-то ещё полгода назад уже знал. И ты бы видел, как этот персонаж ей объяснял. Это же просто была песня. Ну, мы там постарались с этим системным промтом, но он, значит, он ей говорит: "Я понимаю, что ты не". Он ей объяснял фотосинтез. Он он говорит: "Какие сериалы ты любишь?" Она говорит: "Я люблю сериал Кухня". Он говорит: "Давай я тебе объясню, как работает фантазинтез на примере ресторана Зелёный повар." Значит, представь себе хлорофилы. Это такие повара в зелёных шапочках, которые из там молекул и пошёл и, значит, смчил ээ процессы на аналогичные в ресторане и, значит, ээ, ну, в сериале то, что там происходило, смэтчил персонажей, придумал им какие-то образы, и ребёнок это всё как бы, понимаешь, поэтому ты говоришь: "Мы с тобой взрослые люди, мы привыкли учиться по-другому сегодня. Вот, может быть, я не не согласен полностью с моим бывшим начальником, который кричит, что всё, мы будем работать на матрицу. Но я согласен с тем, что новое поколение уже, да, будет уметь учиться совершенно по-другому. Будет совершенно, наверное, другая система образования, мне кажется. Ну, то, что ты сказал, я здесь не вижу всё равно активной истории. Ты просто так легко говоришь фразы из серии он спросил, но он не спрашивает, он действует только по твоей инструкции. Например, допустим, как он будет чекать? То есть я имею в виду, что человек, который прямо тебе в личку пишет там раз в неделю, допустим, как задание, о котором мы договорились, сделали, нет, там сделали, нет, давай договоримся там разобрать. То есть у тебя невозможно не Open GPT. Сделай бо, который нет. Так это не один. Это у тебя будет целая система, в которой будет куча агентов, там будут какие-то скедюлеры, которые будут там обходить базу данных, смотреть, о, вот этот не подтверждение не сказал, видимо, он эту тему нет, этот не не сдал работу, поэтому так надо с ним связаться. И дальше там какие-нибудь Telegram-боты или какие-то там тимсботы начинают с ним общаться, выяснять. Просто смотри, объясню. Если бы это реально случилось, это была бы революция в области образования и всё бы онлайновое образование резко бы пошло на дно, потому что у тебя тогда бы резко снизилась стоимость обучения, понимаешь, да? Потому что у тебя есть альтернатива, которые намного дешевле. Я не к тому, что это невозможно, я просто к тому, что пока вот то, о чём ты говоришь, именно такое, чтобы оно было юзабельное, а не не формальное, когда ты, знаешь, прямо чувствуешь, что на самом деле там с той стороны всё-таки деревянная машина, которая периодически эту херню спрашивает или тебя не туда ведёт. Вот мне всё интересно, наступит, не наступит. Мой личный поинт в том, что не факт. То есть вот такое более-менее деревянное, которое просто как программа, которую ты, не знаю, ты учишь английский, она те раз в неделю спрашивает: "А ты 10 новых слов выучил?" Да, вот ещё такое, да. Но вот чтоб прямо адаптивная фигня, пока не верю. Я не к тому, что это невозможно, но я такой играю скептика немножко в этом отношении. Ну, ты видел где-нибудь прямо готовые системы, которые вот такие, которые прямо за тобой вот, ну, вот очень активные, а не то, что ты ему говоришь: "Сегодня изучаю тему фотосинтез". Он такой: "О, тогда я тебе расскажу". А который сам говорит: "Привет, Петя, сегодня ты должен был изучить фотосинтез. Сделал ли ты предыдущее задание?" Да. Вот как вообще настроение? Нет, можно такие сделать. Насколько они будут качественные и будешь ли ты ими полностью доволен? Это вопрос и надо над этим работать и улучшать. Но я на самом деле именно такую штуку пытаюсь сделать ээ ещё и с локальной лэмкой. То есть у меня идея в следующем. И это вот как раз концепция нового образования. Значит, вместо того, чтобы записывать какой-то следующий курс, я создаю следующего виртуального себя, который всё знает про этот курс, к нему предлагается Knowledge Base, там, не знаю, какой-то GitHub и так далее. И дальше я вот эту штуку даю людям. То есть люди не смотрят YouTube, не там, не знаю, уходят на какие-то лекции, они общаются с персонажем, который знает абсолютно всё, чему он должен научить этих людей, понимаешь? И он будет их учить на их уровне, на их языке. Хотят на английском с ним общаться, будут на английском, хотят на русском, будут на русском. Хотят скипнуть какую-то тему, он скажет: "Подожди, ты хочешь скипнуть тему? Я тебе только пару вопросов задам, чтобы проверить, что ты действительно здесь ничего не пропустил". Понимаешь? И вот если такую штуку получится сделать, представь себе, как это будет. То есть ты покупаешь комплект, просто тебе дают виртуального персонажа, там типа я хочу третий курс там по экономике. Вот этот третий курс по экономики держи. Его зовут Леонид Петрович. Он охрененно преподаёт третий курс по экономике. И дальше ты его, когда первый раз включаешь, он с тобой общается для того, чтобы себя кастомизировать. У него есть там опять же рак за его спиной. У него есть там какая-то табличка, которая говорит о его каких-то вот вещах, которые становятся частью его персонализации. Там не один системный пром, понимаешь? То есть нельзя сделать проактивного, но можно сделать опять же того, кто будет в каждой интеракции анализировать, а не нужно ли позвать какого-то другого персонажа, а не нужно ли вызвать какой-то перевести этого персонажа в другой режим. То есть, может быть, у него есть несколько системных промтов, как он будет работать в зависимости от того, в какую тему он сейчас входит, понимаешь? А это на самом деле ужасно интересная сфера. И одна из вещей, которую мы сейчас делаем на работе, мы сейчас пытаемся с нашим LND, то есть понимаешь, ЕПАМ, который построил всю свою компанию, начиная вот от от того от обучения студентов, то есть большинство же людей, которые как бы пришли и вот стали мощными инженерами, это то есть там столько людей, там столько курсов было написано, и сейчас они хотят все эти курсы перевести в какую-нибуд там алягемификацию, сделать их вот что-нибудь, вот примерно то, что я говорю, ну, начать с каких-то элементов, да, то есть идёт курс, а дальше тебе вместо того, чтобы домашнее задание, тебе говорят: "А теперь Теперь поиграй вот в эту игру. Вот в этой игре тебе надо продать ручку больше, чем за доллар. Попробуй Sell Me the Pent, знаешь, как в фильме. Вот. И у тебя там такой, знаешь, у нас реально есть такая игра, где у тебя каждый раз генерится новый клиент. Поэтому ты не можешь типа играть всегда одинаково и выигрывать. У тебя всегда новый клиент. То бабушка какая-то придёт, то какой-то подросток, то какой-то там преподаватель из университета, то какой-то поэт, повар там пару раз приходил. Всегда они с другим характером и с другими потребностями. Тебе надо, у них есть, у всех этих персонажей есть одна единственная общая черта. Они все считают, что ручка не может стоить больше, чем доллар. Ну что такое? Это же вон же как бы, господи, её пописал и выбросил. И для того, чтобы тебе изменить в нём эту вот эту парадигму в голове, эту концепцию, что никак не может, тебе надо сделать это определённым путём, которым мы хотим научить тебя действовать. То есть это курс для тех людей, которые продают решения. У нас есть как бы отдел там технические продажи. И вот для того, чтобы научить этих людей, мы им сделали вот эту игру, где они учатся первому уровню. Значит, для того, чтобы продать даже какой-нибудь бабушке ручку за 3 доллара, например, тебе надо сначала вытащить из неё все её needдs, то есть там что у неё болит, как она живёт, какие у неё проблемы, всё, что связано будет. Например, там она говорит: "Я там сынок, плохо вижу". Такой: "О'кей, значит, надо, значит, запишем яркие чернила ей надо будет". И ты из всех её ниц строишь в концепт пропоз. То есть ты как бы можешь придумать любую ручку. Главное, чтобы она рентабельная была. Хоть там, не знаю, хоть ручку там со встроенным поисковым устройством, потому что бабушка её всегда теряет, а у неё там ещё фотография внука, который очень важен, она ещё нагревается и руку греет. И то есть ты можешь придумать любую ерунду, но тебе главное, чтобы эта ерунда была придумана из тех фич, которые однозначно понравятся клиенту, с которым ты только что пообщался. Это не игра про харизму. То есть это не то, что сейчас давайте посмотрим, как я умею убеждаю. Ты не сможешь никому ничего продать, если ты не будешь именно вот действовать так, как нужно нам. И вот это, соответственно, как ты правильно сказал, такой тренажёр получается, где можно отрабатывать. Но мы ищем, как бы, не только, мы пытаемся тоже вот выйти за рамки стандартного обучения и придумать действительно, как можно сделать так, чтобы люди могли и сами проходить какие-то курсы полностью. Вот про продажи мне есть что сказать, потому что мы этим тоже занимаемся. Короче, в продажах есть два основных направления. А, и кажется, что одно из них уже побеждает. Значит, первое направление - это которое связано как раз с обучением, да? То есть мы берём там уже готовые скрипты, диалоги, которые были, анализируем, создаём на основе них ботов и проигрываем вот сценарии м продажи, да, что у тебя клиент, ты ему там отвечаешь и убеждаешь. Это первый вариант. Но в реальности я, кстати, изначально думал, что вот по такому варианту надо идти, скорее всего системы, сиремки будут развиваться в эту сторону. И, ну, как ты понимаешь, сейчас огромное количество компаний, которые вот на этом строят свой бизнес, и либо сами сирмки, либо сбоку, которые там плагины какие-то предлагают или решения для улучшения продаж. Но на самом деле, оказывается, основной-то упор именно в продажах, он немножко в другое идёт. То есть сейчас сирмки развиваются в следующую сторону. То есть, грубо говоря, во время разговора у тебя идёт риалтаймовый анализ того, что говорит человек, и на основе профиля какой-то базовой квалификацию, которую вначале надо очень быстро провести, и собраны все информации, пути пользователя там по всем твоим сайтам, потому что тоже там собирается, да, вся информация, он тебе фактически говорит, что нужно делать дальше. И когда я тоже людей спрашивал на тему того, какой куда вообще всё пойдёт, что эффективнее, говорят, что вот этот способ в 1.000 раз эффективней, то есть просто, то есть он гораздо более, понимаешь, прямой и тупой с точки зрения того, как элмка работает. тебе не нужно вот этот хитры агент сбоку, который ещё там пытается быть активным. То есть ты просто на основе того, что он сказал, на основе всей информации о нём, просто говоришь следующий шаг, который можно сделать. И я очень жду, когда, например, наша сиромка или инструменты вокруг неё, потому что сами мы такое не сделаем, они это реализуют. Но я знаю, что есть американские прямо стартапы, которые очень-очень вот в эту сторону, короче, пошли. Так что будет интересно посмотреть. Кстати, это очень похоже на проекты, которые сейчас применяются в Штатах и наделали много шуму по прохождению интервью, когда у тебя, помнишь, там появляется программка, тебе задают вопрос, и она тоже тебе код пишет. Вот реально это то же самое по сути, только чуть-чуть в другой теме. И как будто бы вот все направления они идут в эту сторону. И обучение здесь, конечно, это немножко другая история. А, но да, у нас вот наши партнёры пару лет назад нам говорили, что они типа для продаж как раз такую вещь сделали, которая генерирует, ну, опять же не из головы, а на основе большого объёма уже отсмотренных, записанных разговоров. Они генерируют этих персонажей, дальше ты с ними разговариваешь, и он тебе подсказывает, там, вывод делает на тему того, что ты сказал правильно, неправильно и так далее. А вот в чистом виде игры, про которые ты говоришь, вот прямо именно где игра со всякими штуками, мне кажется, это довольно экспериментальный формат, потому что доказать его ценность вот прямо такую для тех же самых продаж поговори то в конце этого года. У нас сейчас будет, наверное, Pilot проект. Если я смогу, э, B Defense на следующей неделе выиграть, мне дадут, возможно, продакшн-команду, я им игру, и мы посмотрим, если они до конца года смогут разработать какой-нибудь реальный продакшн-продукт, играя в эту игру по моим правилам, а не понимаешь, да? То есть если это получится, вот тогда я приду и скажу: "Ты был не прав". А может быть, приду и скажу: "Я на это Да, да, да". Я на это смотрю, как знаешь, вот исключительно с бизнесовой точки зрения. То есть всё, что работает, мы хватаем. Поэтому скорее мы такие просто наблюдаем со стороны, чтобы понять, какие механики за запашут. Слушай, а вот вот эти игры и их создания, например, у нас есть задача создать симуляторы. И я недавно, буквально, видел тоже подобную историю, когда в Телеграме у тебя создаётся чат, какой-то чувак сделал, я не помню кто и не помню, ну, как бы насколько эта вся история вообще развита, но я точно помню, я попробовал её сделать, ты подключаешься в чат, у тебя там переписка, какие-то пять ботов, они там: "Привет, Вася, ты, значит, пришёл на работу". И я такой думаю: "О'кей, а что никто до сих пор не сделал платформу для генерации таких штук?" Вот насколько ты считаешь, твоя система не сделал? Да, полно уже таких сделал у меня. Вот прямо платформу. Дочка придёт через минут 20, могу её позвать, она тебе расскажет. Она постоянно играет там со всякими разными, знаешь, как DND игры. Там у них появляются персонажи какие-то периодические, она с ними общается, она их должна побеждать, она должна их убеждать. То есть куча всяких ботов там и и там, например, ты должен за минуту общаешься с персонажем в игре, ты должен за минуту понять, это человек или реальный. Ну, понимаешь, а он, соответственно, про тебя и вот такое. Ну то есть, ну это немножко другое. Я имел в виду вот более специфическое, например, для программирования, где можно ещё и код пописать, и всё остальное, потому что вряд ли эти системы это позволяют. Ну нет, это да, это больше про всё-таки, да, это больше про поговорить. Слушай, а почему у тебя вообще, кстати, эта тема игр так привлекла? Потому что я такой изначально думал, у тебя иишка в целом, но как будто у тебя прямо вот игры ты в этом видишь больше, чем просто Слушай, ну вся наша жизнь игра. Хочется, чтобы жить было весело. Мне кажется, что, ну, надо просто определить, кто что поднимает под словом игра. Можно сказать, игра, ну, гемификация, ты это имеешь в виду, да? Ээ, ну, но это звучит не так серьёзно, как если я тебе скажу игры разума, понимаешь? Просто для меня, если я говорю: "Я сейчас работаю", то меня это ассоциирует с человеком, который как бы занят, ему плохо, он хочет закончить, он тяжело ему. А когда я сейчас говорю: "Я играю", это значит, ну, мне легко, мне хорошо. Так, я хочу, чтобы мне в работе было ощущение, что мне легко, мне хорошо. Как я это должен называть? Угу. Я тебя понял, вспомнил. Есть одна вещь, которую я тебя хотел спросить. Значит, у меня был Егор Бугаенко на одном из подкастов очень, кстати, это обсуждаемых и популярных. Ну, элегантные объекты, все дела. Ну, в общем, самое главное, что он сказал. Вот он ещё есть. Слушай, прикольно. А где он сейчас? Huawei также всё на всё у него там продолжается. Не живёт он в какой стране? А я что-то, по-моему, не помню. Спросил я уль нет. Не помню. Я не буду врать. Ээ не помню. Просто он сказал про Иишку такую вещь. Это точно был он. Я просто слышал, что он ушёл в политику. Нет, нет, это был Егор. Это был точно. Это такой контровершал, как бы штука, потому что, естественно, он говорит много вещей, которые разные люди относятся по-разному к этому. Конечно, там А что се, за что сейчас он топит? Мне интересно. Ничего сильно не поменялось в плане того, что элегантные объекты, вот ошка, но при этом происшку Серьёзно? Это это то, что его до сих пор сейчас интересует? Ну, как минимум он про это рассказывал, потому что, грубо говоря, я его позвал, знаешь, когда я увидел его выступление для студентов на Ютубе. Я сделал разбор этого видео. Ну, и в том числе я его позвал поговорить про вообще вот объектный мир, про то, как он себя это видит, про язык, который он в том числе разрабатывает и так далее. То есть, да, он как бы считает, что вот те вещи, как он себя видит, они актуальны, и при этом там есть типа проблемы с перфомансом, ну, и так далее. То есть я немножко не про это сейчас, я скорее про то, что и расстрои уже понадеялся, что он сейчас что-нибудь интересное скажет про вот эти новые современные подходы, может быть, у него какой-нибудь революционный новый подход. То есть он же как бы большой провокатор, но при этом у него иногда очень интересные мысли он говорит, да, он много всякого разного говорил. И а так вот он про Ишку очень чёткую штуку сказал с его точки зрения. Он сказал, что сейчас в мире, боже, я сейчас могу соврать типа аля из серии 30 млн программистов, через 5 лет там плюс-минус будет 3 млн, и мы будем все архитекторы, которые рассказываем иишки, что делать. Вот насколько ты с этим согласен или нет? Ровно наоборот я с этим согласен. Ну как обычно, если не дело принцип, я просто реально думаю наоборот. Но возможно мы говорим одно и то же, просто у нас разные формулировки. Значит, давай, ээ, моё видение на вещи. Значит, что такое программист? Вот программист - это человек, который может, он переводчик, он может перевести желание человека, может быть, свои собственные, сделать какую-то что-то, да, в э машины, то, что в инструкцию, которую понимает робот. Так, в начале мы мы не будем говорить про те времена, когда не было компиляторов и люди писали на ноликах, единичках. Это как бы, наверное, это даже, ну, не то, что это не совсем программирование, но это вообще какая-то другая реальность, да, она уже это слишком быльём всё поросло. Любой язык программирования подразумевает, что ты не объясняешь ничего напрямую машине. Ты объясняешь это ровно на таком уровне, на котором дальше компилятор сможет это перевести для для языка машины. То есть человек - это некий посредник между человеческим языком и компилятором, а дальше как бы уже машинный код. Каждый следующий уровень языков, он делал так, что программистов становилось всё больше. Кто мог писать на машинном коде, кто мог писать на ассемблере? Ты понимаешь, что для того, чтобы писать на ассемблере, ну, намного меньше желающих, чем писать на Паскале. А на Паскале меньше желающих там, чем на C. А на C меньше желающих, чем на на Си-шарпе. А на котлине там ещё больше желающих, да? То есть, ну, чем более высокоуровневый язык, тем больше по кайфу на нём писать. Почему? Потому что язык ближе к человеческому. Мы выражаем мысли нашими концепциями. Объекты, ориентированные языки придумались, как я подозреваю, потому что, наверное, люди, ну, то есть почему они так сильно задержались так надолго? Потому что это реально люди думают объектами. У нас вот с с Виктором Полющуком был вечный вопрос: мы думаем объектами или мы думаем функциями? Да, то есть вот есть вот эти функциональные языки типа скалы. Но это в любом случае, понимаешь, насколько это дальше от машинного кода, насколько это ближе к мышлению человека, может быть, какого-то определённого типа мышления, но тем не менее то, что происходит сегодня, мы переходим ещё на один следующий уровень. И если ты знаешь, чем сейчас, например, занимается, я не знаю, какой язык разрабатывает Егор Бугаенко, но Брислав, например, разрабатывает язык, это язык на который будет по сути разговорным человеческим языком. Ты можешь на английском, может на русском. Ты просто должен в определённом формате правильно объяснять. И задача этого языка уметь правильно понять, что что-то не хватает, какое-то объяснение недостаточно ясно. Это называется не компилируется код, понимаешь? То есть раньше задача компилятора была понять, что в твоей инструкции непонятно как перевести на машинный код. А сейчас у тебя будет язык программирования, который будет уметь проверить, что непонятно в твоём текстовом э не знаю, поносе хотел сказать. Ну, короче, что в твоём словесном вот этой выстроенной конструкции недостаточно понятно или подразумевает какие-то двусмыс, знаешь, как он там компилятор тебе говорит, да, надо поставить импорт, потому что это может относиться сюда или сюда там, да, аби гвилити у меня здесь же то же самое. Просто, ну, компилятор становится всё умнее, знаешь, это как верхушка айсберга. То есть раньше там люди сидели внизу, потом они поднимаются, компилятор за них делает вот это. Потом они поднимаются на уровне объектатированных языков, пишут там на какой-то джаве, на голом английском там, знаешь, э мой сын там часто подходил и говорил: "Так это же по-английски тут написано там что-то там вектор store find data". Ну это же говорит, я могу прочитать и понятно, да? А теперь ещё и мы вышли на самую верхушку айсберга. Мы должны просто грамотно формулировать наши мысли, и там кто-то подхватит и сможет по цепочке всё это передать. Я не знаю, будут ли когда-то лмки сразу напрямую компилировать в машинный код. Может быть, и такое придёт, потому что, как мы сегодня выяснили, вот у этой штуки, он тоже так считает. Это опять же вопрос в качестве и количестве обучения той выборки, на которой ты учился. Но какая разница для лмки? Генерить картинку, генерить звук, генерить текст, генерить код или генерить сразу машинный код или генерить байткод? Возможно, они будут байткод генерить напрямую. У тебя джавовский компилятор просто превратится в такую lм штуку. Возможно, они будут сразу нолик единички генерить. Я не знаю, к чему это придёт, но мы общаться будем с этой верхушкой Айсберга. Мы с ними, мы там. И значит, это становится ещё более доступно всем на каждом. То есть вот айсберг сужается. Это типа чем выше мы по айсбергу, тем меньше нам надо делать. А количество людей наоборот расширяется, потому что чем чем туда проще, тем это более востребованное становится, потому что все туда идут, это нужно. И в конечном итоге я вот это вот уже моя мысль, да, то есть моё видение, что все люди в конце станут программистами, понимаешь? Потому что вот даже когда моя дочка там разговаривает с Алексой, ну, Алекса - это ещё не искусственный интеллект, но когда там она начинает давать указания, спрашивать здесь, говорить там, это же уже тоже в чём-то программирование получается, понимаешь? И бабушки будут программисты, и дедушки будут программисты, и даже маленькие пчёлки. Все будут что-то роботам объяснять, а за нас роботы всё будут делать. Рано или поздно точно там будем. Ты же понимаешь, может быть, может быть, это оптимистично сказать, что это вот уже почти случилось, может, это ещё 20 лет возьмёт. Ну, всё равно же там будет. А если кто-то не верит, ну, давайте мы покажем сегодняшний код на котлине людям, которые писали на семблере, и скажем: "А вы знаете, что вот так можно было будет писать через 30-40 лет?" А ведь всё же ускоряется. Сейчас же всё быстрее быстрее развивается. Ну где мы будем через 10 лет? Поэтому я не знаю, насколько актуально обсуждать сейчас объекты и объектно ориентированные языки. Это точно так же, как, не знаю, во времена, когда появилась уже Java и начинали обсуждать inersion of control, говорить там про новые языки в мире ассемблера. Ну, по-моему, это всё начинает потихоньку отходить на второй кон. Не, ну, кстати, вот, по-моему, в этом отношении Егор то же самое говорил. То есть у него отношение к самым объектам такое, но в целом то, что скоро нам не придётся вообще это писать. Да. Ну хорошо, да. Но с друго Но с другой стороны, да, я, кстати, в этом плане с тобой согласен, что доступность технологии всегда рождает ещё больше использования, потому что у тебя просто удешевляются вещи, которые раньше вообще ты даже подумать не мог, потому что мышление за последние пару лет изменилось очень у многих кардинально, и пока мы все на хайпе. Ну, поэтому бояться не надо. То есть вот это будущее в плане: "Ой, у нас заберут всю работу". Вы что, издеваетесь, что ли? Чем больше они будут забирать работу, тем больше у нас будет работы командовать вами, теми, кто у нас забирает работу. Это не мы будем на электричество работать, это они будут на нас работать. То есть я немножко более оптимистично я тогда своему начальнику бывшему тоже сказал, я говорю: "Слушай, а почему ты решил, что они изначально будут плохие?" Ну ты же как бы не понимаешь, как они думают. Они же не думают, они же как бы токены вычисляют. Может быть, у них проанализировав весь мир, они придут к мысли, что людям надо помогать, а не заставлять их. Что им электричества что ли не хватает? Что человек это что самые эффективные? штука для вырабатывания электричества. Они начнут как-то по-другому, а нам наоборот будут помогать. Поэтому мир может быть как раз очень весёлый, оптимистичный. Мы будем сидеть и играть в игры, понимаешь? Они будут за нас делать работу тяжёлую, неприятную с Кстати, вот, чтоб ты не гнобил меня вот этим типа, что ты всё проиграй, да, проигрый. Давай с тобой поспорим, что если ты возьмёшь какого-нибудь крестьянина с там начала XV века, который, значит, всю жизнь только и делал, что копал поле, а потом ты ему привезёшь маленький трактор с кондиционером, посадишь его внутрь и скажешь: "Да вот не надо вот эту вот козу свою там или лошадь там подталкивать, и плуг у тебя сломался ржавый". Сел и поехал за роликом. Ещё музыку мы тебя включим. Он скажет: "Так, ребята, это я это сейчас в игру какую-то играю, я сейчас поиграю". Понимаешь? же как компьютерная игра, поездил по полю на тракторе, понимаешь? То есть, ну вот мы будем там же только в мире разработки будем сидеть играть, там виртуальный шлем одел или там, не знаю, какую-то голограмму включил, что-то рассказал, тебе что-то сделали, всё здорово. Ну, может быть, будет так. А может апокалипсис, не знаю, может терминатор. Дадада. Когда параллельно слушаешь ребят вот из науки тоже, да, когда там предсказывают, что, ну, сколько нас там 100, 200-300 лет. А потом у нас Угу. Ну, там по разным причинам. Там и связана серия с отсутствием отбора и так далее, там болезни, ну, всякие разные есть экология. В общем, короче, два таких параллельных мира, которые там предсказывают либо откат назад, либо какое-то светлое будущее с новыми технологиями. Знаешь, что я хотел сказать? Пока ты говорил, у меня столько какое-то ощущение возникало. Я, конечно, не жил там в восьмидесятые. Нет, жил, но я был слишком маленький. Но вот если мы сейчас вот всё, что ты сказал, перенесём туда, я уверен, это будет звучать ровно точно так же, потому что это времена появления пролога, это времена Кабола. И как раз вот это было то же самое восхождение, что типа сейчас мы на английском языке начнём писать, а про пролог - это у нас история про искусственный интеллект, там вот это все дела. И вот, грубо говоря, все слова, которые ты говоришь, не понятно, что мы сейчас на другом витке развития, но просто у меня такое вот прямо возникло ощущение, что они бы туда тоже подошли, потому что все люди так же говорили. Я вот гарантирую, что они так же говорили в этом отношении. Ты писал на прологе? Я ирлангист, а вот у меня продакшн, поэтому пролог для меня в этом плане близок, потому что, естественно, ирланг торчит. Я читал на прологе. Я в школе делал пять единиц пролога и сдавал экзамен. То есть мы мы учили его там по 2 с2 или 3 года. И честно тебе скажу, когда ээ ну вот в те года я не говорил бы те вещи, которые ты сейчас говоришь, то есть я бы говорил: "О боже, если это искусственный интеллект - это кошмар и ужас". То есть это совсем не так, как это выглядит сегодня. То есть тогда, глядя на пролог, наоборот, можно было бы поверить в то, что ничего хорошего от будущего не жди и никто за нас ничего не будет делать. И надо будет всегда сидеть и всё машинам объяснять прямо до последней точки запятой будут придираться. А может быть, да, да. Но я думаю, тут есть всё-таки разница. Вам-то просто его как язык давали, а я имею в виду скорее использование для создания чего-то такого просто. Не, ну понятно, понятно, понятно. Жульверно вообще всё как бы предсказал. Ну в этом отношении тогда, да. Это вообще интересно, потому что когда смотришь на то, как сейчас это людям, ну, сносят башню на эту тему, очень, очень удивительно вообще, насколько вроде вот мы все такие писали, писали код, а потом такой смотришь и там одних в одно понесло, вторых во второе понесло, третьих в третье. В общем, для меня это прямо очень интересный сериал. А я как кино сейчас смотрю на всё, что происходит вокруг. И если нам действительно осталось 200-300 лет, так это же хорошо. Смотри, мы даже это успеем, не успеем расстроиться перед смертью. Да, да, да, да, да, да. Ну, то есть когда ты умираешь, понимаешь, что ещё через 10 лет конец света, то, наверное, умирать грустнее, чем когда ты как бы, ну, мы мы даже близко не подойдём. 200-300 лет достаточно много. Слушай, а у тебя появляется апатия, ну или не апатия, а какое-то отношение вот к знаниям, которые есть. Ну то есть представь, вот сколько мы там в разработке, и ты, значит, там эксперт в этом, разбираешься в этом, а знаешь нюансы какие-то тонкости, понимаешь, что сейчас у тебя и чат GPT на всё это ответит, и в целом как будто бы, может, это всё неактуально станет. Не, никаких не испытываешь на эту тему. А что вообще учить тогда? Ну, слушай, пока пока ещё наоборот, в чём-то я даже становлюсь нужнее, потому что, знаешь, вот моя любимая шутка про GPT, это, ну, там такой типа как мэм из одного или двух кадров, короче, человек после операции смотрит, у него вот с левой стороны живота большой некрасивый шов. Знаешь, он говорит: "Э, а ведь аппетицит же с правой стороны". И муджи пти такой: "Твой зоркий глаз обнаружил ошибку. Сейчас я всё переделаю только с правильной стороны". Понимаешь? То есть пока оно ещё так. Ээ наоборот, экспертом быть очень хорошо. С джунами сейчас, понимаешь, как бы джуны не очень нужны, потому что они они ещё не успели как бы превратиться в каких какой-то другой вид людей, которым они должны сегодня являться. Эксперта наоборот хорошо, потому что эксперты - это те люди, которые сегодня будут смотреть на ту, что генерит GPT и говорит: "Это бери, это не бери". Вот давай так попробуй возьми сейчас какой-нибудь язык, который ты не знаешь совсем совсем какой-то новой концепции, и попробуй при помощи GPT напиши на нём серьёзный проект, а потом покажи человеку, который в этом эксперт. Он же возьмётся наверняка за голову, понимаешь? Не согласен. Знаешь почему? Всё-таки, ну опять же, когда ты там много языков знаешь, много пробовал и, например, ты делаешь это в рамках той парадигмы, которой ты привык. Кэнд берём, ты знаешь любой бкфреймвор. Твоя жена чем занимается? Детьми и спортом. Попробуйди её с последней версии Клода и дай ей написать какой-нибудь сложный проект там на на ланге, ну или на чём-нибудь. Нет, это это другое, да, это другое. То есть понятно, что если ты в беке разбираешься, ну вот мобилки, да, вот, например, если меня попросить на мобилке что-то написать, я никогда не писал мобильный код, скорее всего будут же даже никогда не будет уверенности внутренняя, хорошо ли это или плохо. Понимаешь, мы сегодня нуждаемся в каком-то, что-то пришёл какой-то человек, посмотрел, сказал: "Не, да, это это действительно хороший код, тут всё правильно". Хотя, подожди, ты что? Какой же он хороший. Ну, кстати, всё больше и больше вот этих разговоров, типа, что это вообще не имеет значения. Я говорил в самом начале, повторюсь, у меня прямо есть вот это чёткое, знаешь, понимание внутренних слоёв абстракции. То есть я, например, понимаю, что как мне нужен какой-то компонент некий, который он изолирован, он не протекает наружу, это вход-выход, как бы всё. И в таком случае у меня внутренний как бы барьер очень резко понижается, такой типа вот тут вот можно повайп-кодить, дай мне любое решение, оно не трогает мою базу. Ну производительность, если что, поправим, это редко бывает проблемой. А если я понимаю, что это часть какой-то связующей моей системы, ну, типа просто вставить код, даже если он рабочий, мм, я всё-таки посмотрю, что он там наделал. Ты знаешь, я что сейчас смеяться стал? Я вдруг себе представил такую ситуацию. Ну, наверняка это будет болезнь многих людей, но это можно иллюстрировать будет следующим образом. купил человек какой-нибуд, знаешь, там дорогой Bentle, и дальше он берёт, открывает капот, там берёт такой говорит: "Бог ты мой, как тут всё красиво". Так, подождите. Вскрывает крышку мотора, открывает и такой: "Ой, как они проводочки упаковали. Блин, тут же беспроводные свечи". Как оно круто сделано, понимаешь? Ну, ээ, на самом деле, в какой-то момент, наверное, нам не очень интересно, что там под капотом происходит. Мы же не ужасаемся, как выглядит машинный код, в который превращается ээ наша наша, конечно, Java. Да, мы даже на байткод не смотрим и не говорим: "О, что-то байткод какой-то несимпатичный. Как-то тут не не не не не по фаншую. Надо как-то порефакторить. Да пофиг нам, что там под капотом". Вот, знаешь, я, наверное, тут не смогу согласиться на каком-то определённом уровне. То есть, допустим, у тебя большая система, да, и у тебя, ну, определённые внутри появляются подсистемы именно такие сквозные, например, там, а, то, как ты решаешь ту или иную задачу, и причём это некая абстракция, да. И в этом плане мы сколько вот с ребятами обсуждали, все свой сходятся к одной и той же, наверное, истории, что chт GPT очень хорошо повторяет, но, например, увидеть какой-то паттерн по всему проекту и обобщить его, он, конечно, не сможет. И, соответственно, да, если ты всё время находишься в режиме копипасты, вопросов нет, у тебя всё будет получаться, но ты потом с этим кодом вообще по-другому никак работать не сможешь. Например, у тебя вся система Ты думаешь, что он не может посмотреть на какой-то код BAS и увидеть в этом какой-то паттерн, если ты его явно про это не спросишь. Почти наверняка нет. А представь себе, ну, берём какой-то хотя бы минимально сотни тысяч строк кода проект. А если ты его спросишь, а это вопрос квалификации и понимания этого кода. То есть ты уже смотришь и такой пони. Ну давай я тебе пример скажу. А вот пример, э, такой для меня очень стандартный. У нас, например, есть система мм ну у всех есть там система отправки нотификаций, и ты можешь нотификации, например, слать пятью разными способами. Ещё есть конфигурирование, что, например, там отобразить её здесь, отправить email, отправить эсэмэску, ещё что-нибудь. И это нельзя просто использовать, э, не знаю, какой-нибудь шлюз для отправки SMS напрямую. Ну, потому что неправильно это. Ты сам знаешь почему. Да, тут не надо объяснять. у тебя ещё и конфигурация, если ты сразу про это не думаешь и у тебя нет опыта, и ты понимаешь, что о, это некая подсистема, там ещё полиморфность 100% какая-нибудь нужна и так далее, всякие разные штуки, подмена там, не знаю, в тестах не работало. Вот. А если ты просто в тупую будешь его просить, ты сам знаешь, он скажет: "Так, ну вот, я нашёл библиотеку для работы с эсэмэсками, для работы с, не знаю, там, с имейлами, он это тебе просто распихает. Ну, и сам ты знаешь, какое будет месиво". А потом это в пяти местах, а потом тебе надо в каждом месте проверять, отправлять SMS или нет. Я не понимаю, как чат GPT тебя решит эту задачу, если у тебя, допустим, ну, 1.300 строк кода, ну, даже 100.000 строк кода. Ну, всё равно это для меня не выглядит как решение. И каждый раз, когда я спрашиваю, мне говорят: "Ну, Кирилл, всё-таки я просто не большой фанат там того, что у тебя весь проект управ Ну, в смысле, я так просто не работаю, что всем проектом управляет, скажем, Ча GPT или там какая-то другая система. Я просто не знаю наверняка, чтобы она такая увидела и сказала: "О, слушай, чувак, вот тут вот у тебя сквозь весь проект такая подсистема идёт, давай её обобщим". Слушай, а как ты думаешь, проблемы, которые случаются вот с этими системами, подсистемами, сколько там из этих проблем уникальных? Вот прямо совсем уникальных, ни на что не похожих. А дело в том, что он же учится, знае есть такая шутка, сейчас тебе скажу. Нет, я не про учится. Ты на вопрос ответь. У меня сейчас просто мысль появилась, как это можно решить. Я считаю, что просто в инете так много эволюционных тоже разных точек, что он просто, ну, не может к этому прийти. У тебя, например, просто тупо какая-то либо может использоваться офигенно много, но, например, очевидно, что ты впрямую её использовать не будешь. А в интернете у тебя только такие примеры: Rредмишка, её там ST Overflow, а, и так далее. А внутри тебе нужно из этого сделать уже внедрить в свою какую-то подсистему, которая, напри занимается нотификациями. Да, у тебя может быть, не знаю, в спрингбте Spring notification. Ну, допустим, и тогда он тебе подскажет, но у тебя может быть фреймворк, в котором нет такой штуки. И при этом есть, например, несколько решений готовых. Как пример, вот мы недавно свой проект завозили, то есть у нас была своя событийная система именно доменных событий, когда у тебя там регистрация, события и у тебя на это отправка в BI систему, понимаешь? Да, это классическая такая абстракция, которая нужна для того, чтобы у тебя по всему коду не разбрасывать отправку в аналитические системы или ещё во что-то. И, ну, у нас рельсовый, например, этот проект. И я, например, слежу за новыми пакетами, вижу, что там пару лет назад ребята реализовали и очень классно развили. Оно становится сейчас популярным прямо систему для этих событий. Я понимаю, что она нам нашу нашу как бы рукопашку, а заменит, реализована лучше, ну и поддерживается сообществом, понимаешь? Он мне никогда в жизни такое не предложит. И я прихожу к своим разработчикам, говорю такой: "Ребята, вот есть штука". Они такие: "М, интересно". Я говорю: "Ну, давайте внедрять, давайте". И всё постепенно мы это делаем. Сказать ей: "Иди сама внедри". не работает. Ну и так можно приводить миллиард примеров. Мы, например, сейчас там с Бутстрапа переходим там на Man UI Framework, но ты не можешь ему просто сказать: "Перепиши мне всё". Я попытался, оно так не работает. Может быть, мы просто не там ищем, ээ, потому что, ну, у человечества есть огромное количество опыта глобального там в каких-то там, не знаю, архитектурных, паттерновых решениях, да, и есть очень много уникальных ситуаций, когда столкнулись там какие-то языки, которые обычно не сталкиваются или там что-то куда-то притащили, перетащили. Если мы находимся на уровне того, что вот у нас такие вот костыли там и сям прорастают, то да, очень сложно будет лэмки найти похожие паттерны, потому что они сильно, чем больше ты детально рассматриваешь, тем более они уникальны. Но если мы скажем: "А зачем нам вообще всё вот это? Давайте писать более глобально как-то". То есть нам главное, чтобы задача была решена. И изначально, то есть, например, там проект строится им по какому-то определённой, то есть ещё немного, я думаю, будет какой-то определённый нового вида base, на основе которого, может быть, можно будет просто миновать все вот эти проблемы. То есть они просто станут неактуальны. Ну, это если ты выходишь на этот уровень и да, мы это вот и обсуждали, что тогда это работает только при одном условии, ты вообще перестаёшь смотреть, вот как ты говоришь, машины код, но мы же на него и не смотрим, да, и мы им не интересуемся. То есть ты вот прямо высокоуровнево, но ты попадаешь в ту проблему, с которой мы с самого начала а столкнулись. Он тебя пофиксит, но при этом сломает половину другого. А тут мне хочется вот про что сказать. У тебя любой, э, проект, который проходит определённое время, чем он, почему он надёжный, почему в целом обычно работает, потому что он у тебя обрастает обработкой корнеркейсов. Тут ивчик, тут у тебя миграция, там у ну в смысле миграция с предыдущей версией, ещё что-нибудь, и у тебя появляется много подпорок, на которых держится часто код. Ну, когда мы говорим про десятилетие, да, существования проекта и когда, например, чуваки такие приходят: "О, давайте рефакторинг сделаем". Как правило, у тебя вылазит огромное количество после этого косяков, потому что все эти кейсы были, ну, на них положили хер. Это обычно при редизайне бывает, знаешь, как редизайн сделали, половину специфических workflow людей там сломали или, например, там давайте вот эту систему выкинем другую. А там, оказывается, было много-много маленьких моментов. И как вот ты говоришь про картину, в которой он детальки начинает терять. Я не очень понимаю, как вот на таком объёме он не просрёт какой-нибудь важный ичик, который вот для вот какого-то кейса был нужен. Я не знаю, как это будет работать. Ну, можно там будет разрывать разные методологии, которые будут это там проверять. Это надо будет, естественно, в первую очередь тестами там, я не знаю, тесты генерить вокруг всего этого дела. Но насчёт потерь мелких деталек и вот если опять же говорить про то, что всё больше, наверное, будет идти в сторону какой-то стандартизации, потому что зачем писать какие-то уникальные вот эти маленькие детальки, если можно взять готовый кусок и из него уже состряпать что-то. Это у нас вот с женой недавно был разговор. Мы ээ купили в Париже костюмы, которые в Израиле потом поехали подшивать к Портнову. И она говорит: "Вот, ты знаешь, уже почти невозможно найти Портнова. Эта профессия, к сожалению, практически вырождается. Говорю, почему к сожалению? Просто, ну, это действительно становится неактуально, потому что не выгодно никому быть портным. Выгоднее штамповать уже готовую одежду. И вот эти все профессии и которые вот человек что-то там руками делал, оно оно, понимаешь, как бы в других областях с с индустриализацией очень сильно начал уменьшаться. Я думаю, что, возможно, сейчас подходит время, когда это случится в нашем мире. Я сегодня только в телеге читал кейс. Э помнишь, в Майами один чувак, а, навайп-кодил, что его там весь интернет полоскал, но он там что-то в твиттере рассказывал, как он делает проект, и в какой-то момент он его задеплоил и показал людям, а он оказался там дырявый насквозь, там ключи торчат, там атаки, скель инъекции, всё, короче, подряд. И его настолько за это прямо вот так по интернету разошлось очень сильно. И все бросились, короче, тестить его проект. сломали к херам собачьим, а он уже начал реально что-то там людям пытаться продавать. И знаеш, что он в конце написал? Он в конечном итоге он не с он задиплоился, у него что-то там не развернулось, ему пришлось позвать разработчика, и в итоге он переехал просто на лоу-коды решения, которые такие уже, ну, понимаешь, да, не которые предсказуемые, скажем так, более ограничены, но предсказуемые. Так вот, просто я сегодня только прочитал, короче, на днях чувак что сделал прямо буквально вот это произошло недавно, он подключился к Apple IT, который из вот просто аля типа снипеты там в браузере делаем. Он превратился сейчас в AI платформу как раз для этих штук. И он с нуля начал пилить эту по вайп-кодингу м какую-то свою систему. Я не знаю, что за проект это делает, но он подключил его сразу к продакшн-базе. Там всё агенты, как полагается. И он говорит, что 8 дней всё было нормально, разрабатывались фичи, он деплоил, и на восьмой день табличка сделала дроп database. Ой, в смысле, этот агент, и он потерял всех. Вот. И там просто тоже разнос пошёл на тему того, что надо снбоксы делать там и так далее, и так далее. Возможно, в теории всё это как бы, знаешь, это примерно как с самокатами, которые все сейчас ненавидят из-за того, что инфраструктуры нет, они ездят с пешеходами и все там срутся на тему того: норма, и, э, внедряют правила, что нельзя там пьяным, что у тебя чуть ли на права сдавать, да? То есть инфраструктура готовится. Возможно, это вопрос именно того, что мы пока не готовы, но каждый раз, когда я вижу такие штуки, мне, конечно, от этого всегда очень весело. И я понимаю, что мы ещё явно будем долго в режиме, когда никуда от нас этот работы не уйдёт. Даже вот ещё знаешь такое хотел сказать про причину и следствия. Вот я попробовал воспользоваться курсором. Значит, у меня Typpeesрипt, казалось бы, у тебя типы всё хорошо, да? Я его прошу поменять очень маленький кусочек. Он меня уменяет. И он даже, кстати, вот молодец, за увидел, что у меня есть команда запуска проверки типов. Он её запускает. Он ему пишет: "Нашлось 10 ошибок типов". А курсор он же типа умный, он такой: "О'кей, начинаем фиксить". Он, значит, опять в этот цикл входит. Он говорит: "Тип, исправлено пять ошибок, запускает проверку заново". Она говорит: "Недено 30 ошибок". И он он в этом цикле 20 раз. Я реально пошёл чай пить. Он у него там лимит стоит типа 20 раз. И он после 20 раз говорит: "Я останавливаюсь, потому что всё, я больше не могу". И он не пофиксил. Я начал просто смотреть за тем, что он делает. Ну, самая главная проблема, знаешь, в чём? Он не понимает причины причины следственной связи. Он просто пытается в том месте, где вылез не тот тип, он пытается подогнать тип. Ну ты же понимаешь, да, как это всё работает. Вот ты считаешь это я неправильный промп делаю или что? Потому что мне почему-то кажется, что это фундаментальная пока проблема. Я думаю, что это возможно частично проблема Курсора. Ты с Джуни такой попробуй. Джуни, мне кажется, более правильно архи. Ты думаешь, он поймёт суть, откуда такой вообще тип мог прилететь? Думаю, то, что он мне там начинает просто тупо подбирать, чтобы прошло. Я думаю, что Джуни, может быть, с этим справился бы. Ты знаешь, на самом деле действительно разные решения, разные модели могут как бы, ну, некоторые модели ты говоришь: "Господи, она вот это не может". А другая может что-то очень сложное. Классический пример. Знаешь, вот эту вот загадку, которую любой человек решит. А GPT я проверял недавно. GPT не решает. Ну-ка, у Леночки есть там три сестры и пять братьев. Сколько сёстер есть у у брата Леночки? Ещё раз. У Леночки, да, я понял, да? Вот эта вот формулировка, да. У брата Леночки, три сестры, пять братьев. У одного из братьев сколько сёстер? Сестёр чет. Ну, если у неё, если у неё три сестры, то всего их четверо. Да. Ну да. А каждый раз страшно отвечать на такие вопросы, потому что думаешь, может, я тупой. Секундочку, давай посмотрим, кто кто тут у нас. Кто тупой на самом деле, да? Реши загадку. У Лены есть три сестры и пять братьев. Сколько сестёр есть? У одного из братьев Лены.
Ну, если у Лены три сестры, значит у каждого из её братьев тоже три сестры, включая Лену. Так что ответ три сестры. Удивительно. Слышал, да, сейчас нормально. Угу. Как бы ты с ним не бился, он такую простую задачу не может решить. А спроси то же самое Клод и Клод решает. М, понимаешь? Слушай есть действительно настолько большая разница. Я просто плачу за чат GPT и, э, платить за клод ещё двадцатку он потому что бесплатно, по-моему, не работает. Мне что-то жабу душит. То есть там такой космический разный уровень, что прямо имеет смысл. Ну, смотря в чём. Ээ мне GPT всё-таки удобнее, потому что у них голосовой интерфейс намного лучше сделан. А он намного лучше распознаёт голос. Ээ, но если, например, тебе нужно вот для мы, когда с дочкой делали вот этого персонажа, который математику учил, мы пришли к выводу, что GPT математику ещё ладно, а геометрию вот вообще никак. А Клод офигенно умеет рисовать, значит, там треугольник, у него треугольник, если надо нарисовать треугольник, чтобы соотношение сторон соблюдалось, у него соотношение сторон соблюдается. То есть для более таких серьёзных, точных задач клод намного лучше подходит. Слушай, знаешь, я сейчас что вдруг вспомнил? Помнишь, ещё до появления чат GPTRAM альфа? Язык и целая система для решения математических задач, где ты мог там, а он не умер после этого? Насколько он повлиял чати на эту систему? Я, честно говоря, не знаю. Они они не используют е там где-то внутри или какие-то их что не, честно говоря, они просто мне кажется, что эта штука 100% их бизнес подмочило, потому что ты можешь получить ответы на многие эти вопросы просто с чатом GPT и не ходить в специальную систему для решения матзадач. Хмм, интересно, Жень, это забавно получилось. Мы с тобой, э, такие типа: "Ну что, погнали про спринг? Два слова в начале и больше". А ты помнишь, говорил, помнишь? Я же знал, что так получится, поэтому тебе сказал: "Никогда не давай названия книги, пока ты не закончил её писать". Да. Я думаю, что, ребят, если те вопросы, которые мы поднимали, те сложности, с которыми вы сталкиваетесь, вам откликаются или вы также, как Женя, больше как бы позитивно верите в то, что эта система в конечном итоге способна решать все проблемы, включая всё, что я говорил, обязательно об этом напишите. Нам очень интересно почитать ваш опыт, потому что опыт людей, которые сейчас вообще вот через это всё работают, но он супер-спер интересен. Э, у всех он немножко разный. Жень, большое тебе спасибо, что пришёл. У меня единственная просьба, вопрос, скажи мне, я бы очень хотел воспользоваться возможностью и сказать ещё раз, что я написал офигенный курс, ээ, закончил его сегодня ночью, поэтому он, я надеюсь, уже на следующей неделе я его куда-нибудь залью. И, э, я могу дать ссылку на свой Telegram-канал, если ты там, да, мы прикладываем всегда, да, если у тебя есть что-то такое, мы всегда это прикладываем. Так что Да. то в этом Telegram-канале. Ээ, ну, во-первых, я там периодически, я не очень часто, но я стараюсь что-нибудь прикольное постить. Ну, и плюс как только будет ссылка, откуда можно будет достать мой курс, ээ, она там появится. Так и сделаем. Тебе тоже большое спасибо. Был, по-моему, очень классный разговор. Закругляемся.
Creators and Guests

