Здравствуйте. Началась проверка, как меня слышно? Поставьте плюсики. У нас уже целых 27 человек, вот как полезно электронную почту читать. Жизнь бьёт ключом. Давайте вопросы. Поднимайте руки, задавайте вопросы. У кого-нибудь есть вопросы?
Томас не подвёл. Я прикрою окно, а то где-то что-то пилит.
Вопрос Томаса:
Добрый день всем. Я по предыдущему уроку. У меня вопрос. Я не совсем понял, зачем вы делали триггер на N8N, чтобы он триггерил уже в Make? Почему нельзя было сделать в Make, при всём при том, что вы делали вот этот, ну, то, что у вас уже опубликован пост? Соответственно, у вас там появлялась цифра 1, и эту строку можно было уже не учитывать. Вот зачем был сделан этот дополнительный триггер на N8N?
Ответ:
Дело в том, что я столкнулся с ситуацией, когда событие приходит не извне, а из какого-то графика, календаря. Например, каждый час идет событие. Для этого есть сервис, известный алгоритм Cron, который используют, когда вы можете просто настроить график, там раз в секунду, раз в минуту, раз в час, как угодно. Он будет вам генерировать события в виде какого-то запроса — не Make, а API, webhook и так далее, которые вы уже где-то потом каким-то образом отрабатываете.
Самый простой пример — когда вы подписываетесь на какой-то сервис, и этот сервис автоматически каждый месяц или какой-то период платежа списывает с вас деньги. Как это происходит? Раз в месяц этот график инициирует цепочку каких-то действий, которые система делает. Я такой возможности в Make не нашёл. Долго искал, хотя меня это удивило. Не нашёл такой возможности, потому что было логично иметь что-то вроде Cron’а. А в N8N это встроенная функция, schedule
.
Соответственно, мне нужно было запускать сценарий, о котором вы говорите, с этой периодичностью. Я для этого использовал внешний вызов из N8N. Там я сделал сценарий, который состоял всего из двух элементов: он называется scheduler
и потом, собственно, генератор вебхука. Вот, собственно, для чего я это использовал.
Плюс у меня была одна ситуация, когда я делал какую-то обработку, и в Make было крайне сложно это городить. Проще было гораздо сделать это кодом, учитывая, что код для нас пишет искусственный интеллект. Оказалось, что в Make нет возможности интегрировать код, что меня изумило, потому что, допустим, в Zapier она как бы изначально была. Я там никогда это не делал, потому что тогда искусственного интеллекта не было, а я код не умею писать. А в Make её не было. И для этого я тоже сделал такой вариант: я сделал сценарий в Make, в каком-то моменте я сделал вызов в N8N, где конкретная функция обрабатывалась с помощью какого-то примитивного кода, и возвращалась снова в Make. То есть вот такой вариант.
Это вообще довольно часто делается, когда вы создаете такие конструкции. Для разных задач вы используете разные вызовы. В целом, если, допустим, посмотреть, как работает код, то этого кода на данный момент написано практически миллионы строк, если не миллиарды. То есть почти на 99% всех ситуаций уже давно написан код, которого просто тонны и мегатонны, и который валяется, в первую очередь, на GitHub. Соответственно, когда вы делаете что-то, по мере того как мы будем в код погружаться, вы это увидите, в большинстве случаев собственно кода как такового нет, а просто идет вызов библиотек, которые лежат в бесконечных просторах интернета, и вы их вызываете. Или просто, чтобы этот код запустить, вы сначала эту библиотеку на сервер устанавливаете. Это дико экономит время.
Вопрос Томаса:
А как же тогда вот этот schedule settings
, который внизу в Make? Тут же можно regular intervals
, много разных возможностей, единожды, каждый день…
Ответ:
Я понимаю, о чем вы говорите. Это не совсем то, что мне было нужно, потому что эти интервалы — это просто интервал, когда у вас запускается сценарий. Но этот сценарий, я напоминаю, имеет на входе какой-то триггер, который что-то слушает. К примеру, какое-то внешнее событие, может быть, RSS, может быть, вебхук. Неважно, внешний триггер. И вот этот интервал — это просто интервал, когда сценарий начинает слушать. Но если в этот момент нужного события не произошло, ничего не произойдёт. Это та ситуация, с которой я столкнулся, потому что поток событий, который мне нужен был, может происходить нерегулярно. Есть вероятность, что в тот момент, когда сценарий слушает, так сказать, космос, нужное вам событие не произошло. И вы его пропускаете, что в данном контексте было недопустимо. В частности, это когда я использовал для RSS, потому что мы не знаем точно, когда внешние посты приходят. Это зависит от тех, кто эти посты делает, и от тех, кого мы слушаем. Этот механизм реагирует совершенно по-другому. Его задача была запускать сценарий.
Тут в чем ещё есть нюанс. Если вы когда-либо тестировали, ну, скорее всего, Make тестировали, то вы обратили внимание, как Make работает. Когда вы запускаете триггер, этот триггер может захватить какое-то внешнее событие или не захватить. Понятно, о чем я говорю?
Томас:
Ну так, смутно, но понятно.
Ответ:
Окей, давайте я покажу. Просто чтобы мне понимать, вот, допустим, у вас идёт RSS-лента, да?
Ответ:
Секундочку, я сначала один тезис проиллюстрирую, потому что так будет нагляднее. Просто я сейчас решаю похожую задачу, и пока не совсем понимаю, что я пропустил именно в этом триггере. То есть я пока не понимаю, почему он мне нужен.
Давайте step-by-step. Я же сейчас кнопки нажимаю и не слышу, что вы говорите. Так, сейчас одна секунда. Сделаю. Ну крутизна. Так, так, так, так, по-моему, это была… память не изменяет, по-моему, это была функция вот здесь. Память не изменяет. Да, да, да, да, да, да, да, да, это у нас, да, вот этот триггер. Смотрите, я напоминаю, как работает конкретно этот сценарий. Когда триггер у нас запускается, он делает поиск в базе данных, потому что эту базу данных наполняют другие сценарии, которые, собственно, из RSS-ленты собирают какие-то события. В определённый промежуток времени у вас этих событий могут быть, а могут и не быть. Потому что это зависит от того, как пишет какой-то блогер или какое-то издание.
Идея, как работает вся эта конструкция, в том, что в определённый промежуток времени они пытаются реагировать только на новое событие или какое-то количество новых событий, которые появились в этот промежуток времени. Потому что если событие не появилось, то дальше ничего не происходит. Понятно, да? Почему? Потому что эта цепочка уже отработала какие-то события, которые были раньше. Если бы мы этот промежуток не указывали, оно бы всё время повторно дублировало. У меня была такая ошибка, когда оно постоянно дублировало новости.
Условно говоря, это выглядит так: к примеру, вы определяете какой-то промежуток времени, например, час. Вот если за этот час какое-то количество новостей возникло, другие сценарии эти новости из RSS взяли, засунули вот в этот мой Airtable, и когда у меня сценарий поджёг себя, они смотрят, что если за этот час накопилось какое-то количество новых новостей, то есть они ещё не обработаны, тогда происходит обработка, там анализ, и куда-то посылает. Если за этот час не произошло ничего, то есть никаких новых новостей не возникло, то никуда ничего не посылает.
Так вот, когда мы, допустим, делаем тест любого сценария, у нас кнопочка вот здесь, Run module
, не Run module only
, а мы просто запускаем сам по себе тест. Он сейчас ждёт, потому что он настроен на вебхук, который приходит из N8N. Сейчас я более удачный вам пример покажу. Это будет более показательно. Так.
Ну, допустим, давайте возьмём вот этот. Это будет более понятно. То есть вот у нас сценарий, который из RSS, из Inarider добывает какие-то новости, если они произошли. То есть вот он у нас там описан, он простой, я напоминаю, что он добыл новость, что-то обработал и засунул в Airtable, а потом вот этот сценарий в Airtable обработал. Соответственно, если мы запускаем его, вот смотрите, что произошло. Он у нас запустился, потому что мы нажали кнопочку. Я напоминаю, что он может запуститься по двум причинам. Первая причина — это если пришло внешнее событие с RSS, которое, собственно, и должно его запускать. А второе — я просто тупо нажал кнопку, но событий не было. И обратите внимание, что произошло: у нас, видите, пустое срабатывание. Понятно это?
Томас:
Да.
Ответ:
Соответственно, если произошло пустое срабатывание, дальше цепочка вообще не запускается, потому что он счёл, что ничего нет, условно говоря. И из-за этого у меня пропускались события. То есть, когда здесь у меня сначала в этой версии стоял не этот триггер, а у меня стоял просто, по-моему, вебхук, который срабатывал на сам Airtable. То есть предположение, что если какая-то запись там появилась, он срабатывает. И там выходила ошибка. В результате мне надо было поставить вот этот триггер, который при каждом срабатывании как бы не нулевой, чтобы у него не возникала эта ситуация, когда у него ничего нет. Соответственно, мне пришлось сделать вот такой крюк, который эту проблему решил.
Ну, там много очень тестов было, потому что я напоминаю, что эти, допустим, сценарии, их задача — просто слушать и забрасывать в Airtable. А вот этот сценарий, его задача — какой-то промежуток времени анализировать, на предмет, появился или не появился. И поскольку здесь вот эти как раз не подходили по той причине, по которой я сказал, соответственно, мне пришлось сделать внешний триггер с помощью этого Cron’а. Ну вот, примерно как-то так.
Томас:
Алексей, но если не появилась, допустим, запись в Airtable, значит, и не надо запускать всю эту таблицу. Смысл запускать её, если нет никакого нового поста, нет никакой новой строчки?
Ответ:
Да, логика так и работала у меня. Но по факту, когда я начал это настраивать, хотя, возможно, у меня ещё в логике какая-то там ошибка есть, получалось совершенно по-другому. То есть по факту там возникала проблема, которую на тот период я не решил. Когда у нас есть определённый промежуток, и он, когда поджигался триггер при наличии какой-то последней записи, он пропускал какое-то определённое количество записей перед этим. Я столкнулся с этой проблемой, я пока не знаю, как её решить. Я бился над ней достаточно много. Я об этом говорил, просто не хочу повторять.
В чём была проблема? В том, что он мне постоянно триггерился на какой-то рандомной записи, которая не была последней, хотя там стояли какие-то фильтры. Я бился над этим, наверное, несколько часов, и никак не мог получить нужный мне результат. То есть там была именно конкретная, специфическая проблема, поэтому я сделал такую сложную конструкцию. Хотя, скорее всего, возможно, я где-то в логике ошибся. Я сейчас с другой базой пытаюсь работать. Я думаю, там побольше возможностей. Я об этой проблеме помню. Но тем не менее, мне надо было найти решение. Я убил несколько часов, потому что я здесь работал с этими фильтрами, с кучей-кучей-кучей всего. У меня вместо этого вебхука там стоял тот триггер, о котором вы говорите, он был естественный. Но он не дал мне нужный результат, потому что цепочка должна была работать как? Он должен был брать последнюю запись, новость, обрабатывать её и отправлять в Telegram. По факту оказалось совершенно не так. Меня это поставило в тупик, потому что я столкнулся с тем, что он работает не так, как должно работать интуитивно. То есть он явно выдавал ошибку. Я убил на это какое-то нереальное количество времени. Я и так, и так, и так с этим боролся. И в конце концов, мне пришлось отказаться от этого триггера, который вы имеете в виду, я также поступил, и сделать вот такую вот сложную конструкцию. Но она, по крайней мере, стала работать.
Томас:
Понятно. Просто мне кажется, что вы, внеся вот эту строку, где у вас published
, то есть вы ставите единицу, соответственно, по Airtable легко понять, эта новость была как-то обработана или не была обработана. И, соответственно, брать всё время те строки, у которых этой единицы нет. Соответственно, каждый раз, через каждые полчаса обрабатываем только там, где нет единицы.
Ответ:
Я понимаю. Я, глядя, этот признак и ввёл. Ну да. Почему мне пришлось это сделать? Потому что я обнаружил, что система работает не так, как должно быть. Я достаточно часто сталкивался с ситуацией, и я всё ещё буду над этим работать. Мне пришлось вводить эти служебные поля ровно для этой ситуации, потому что я, к моему удивлению, обнаружил такую странную вещь. Первая версия этой конструкции была совершенно элементарной. То есть здесь не надо было этот огород городить. Достаточно было поставить триггер, который типа срабатывает на получение новой записи. И, к моему удивлению, он начинал давать какие-то рандомные результаты. Я не мог понять почему. То есть я не смог найти причину, почему эта системная ошибка происходит. В результате мне пришлось нагородить эту конструкцию, в том числе то, о чём вы говорите.
Это, кстати, достаточно частая ситуация, потому что возникает выбор. Когда я начинаю с этим разбираться, оно что-то работает не так, и возникает выбор: можно искать причины, пойти в какое-то исследование, и это исследование может длиться часами. Особенно, когда мы не чётко понимаем, как какая-то структура работает. То есть мы и так, и так, и так пробуем. Я думаю, что вы через это проходили. Это как бы один вариант. Другой вариант — найти, в принципе, другое решение. В целом, алгоритмически. И, допустим, мой опыт взаимодействия с искусственным интеллектом в такой части довольно часто приводил к такой ситуации, когда, я думаю, что многие тоже с этим сталкивались, когда он предлагает какое-то решение, оно не работает, вы дальше ему предлагаете исправлять, исправлять, и через какое-то время он начинает ходить по кругу.
Томас:
Точно, точно. Миллион раз такое было.
Ответ:
И, как правило, причина в том, что у него, условно, в его голове сложился какой-то базовый алгоритм. Он начинает искать ошибку внутри каких-то элементов этого алгоритма, притом что достаточно просто предложить совершенно другой алгоритм, который оказывается рабочим. Масса-масса ситуаций. То есть это выглядит так, что иногда он оказывается в тупике. Он не может сам из этого тупика выйти, потому что он не понимает.
Как выводить из этого тупика? Ну вот у меня, когда такие ситуации возникали, у меня обычно происходит так, что когда это несколько раз происходит, я эту ситуацию вижу, ну, я просто предлагаю, говорю: «Слушай, а не хочешь вот так вот сделать?». Он такой: «О, точно!», и делает. Не, ну как бы реально. Потому что, слушайте, ну, надо понимать, что мы всё равно умнее его, креативнее, да, потому что это всё-таки машина, она по каким-то паттернам ходит. Что-то она срабатывает… Вот я как раз последние несколько дней, ну, практически неделю, с этими самыми генераторами кода занимаюсь, то, что я в прошлом уроке… В следующих уроках будет там вообще даже очень интересно, как наркотик, но достаточно, так сказать, там иногда так и бывает. Тем не менее, когда я начал работать с этим Bolt’ом, он, честь его сказать, пока из достаточно простых ситуаций выходил.
То есть тут как бы ситуация такая, что когда мы говорим про Make, допустим, и про подобные вещи, здесь мы алгоритм очевиден. А когда уже в код, там, собственно, он алгоритм придумывает. Но тоже такие ситуации бывают, когда он начинает тупить.
Вы постарайтесь понять одну простую вещь, что то, что я вам даю, в смысле какой-то конкретный сценарий, у меня всегда подход такой: у меня есть чёткое понимание, что должен этот сценарий делать. То есть есть чёткое понимание входа, чёткое понимание выхода. Я его делаю, делаю, делаю. Причём, естественно, сначала всегда к нам приходит, в первую очередь, понимание, что этот сценарий должен быть как можно более простым, линейным. У нас уже есть примерное понимание, как работают те или иные модули, всё, мы его строим, и вдруг выясняется, что он работает не так. Я думаю, что многие из вас с этой ситуацией много раз сталкиваются. И вот как только он начинает работать не так, это заставляет нас разбираться, лезть вглубь, почему он не так работает. То есть выясняется, что на примитивном уровне мы неправильно что-то в модуль ввели, грубо говоря, какие-то параметры, это ошибка, быстро устраняется. Либо, что часто бывает, мы, в принципе, не сделали верный алгоритм, как мы разбирали, по-моему, в прошлый или позапрошлый раз, когда одна из участниц, ей надо было все эти операции сделать с Google Sheets, а не с Airtable. И там другая процедура получения ID клетки. И, помните, там она пошла заморочиться, и так далее, и так далее. Так что это абсолютно нормальный процесс. При этом, когда вы начинаете всё это разрабатывать, у вас могут возникать совершенно другие идеи, другой алгоритм, это абсолютно нормально. И, собственно, моя цель заключается не в том, чтобы вы тупо копировали, а в том, чтобы то, что я вам даю, вы на этом учились, но при этом у вас потом возникают какие-то свои оригинальные свежие идеи.
Вы же понимаете, что код — это некая последовательность действий, которая всегда может быть оптимизирована. Наверняка вы слышали такой термин, рефакторинг кода и так далее. И оптимизация кода — это самая частая причина ошибок в коде. Потому что когда вы написали что-то, не обязательно код, в смысле то, что мы делаем в Make или в N8N, это тоже, в принципе, вариант программирования. И вот когда вы сделали алгоритм, всё оно работает, и тут вы вдруг поняли, что он немножко неоптимальный, что какие-то там крючки такие, петли замороченные. У вас была такая ситуация?
Томас:
Конечно, конечно. И тут вы думаете, я сейчас это улучшу. И всё ломается. Всё ломается, рушится, да.
Ответ:
Совершенно верно. Поэтому золотое правило заключается в том, что если что-то работает, не лезь. Хочешь исправить, сделай копию. Добейся, чтобы работало во всех кейсах обязательно, в которых работает уже рабочий сценарий, извините за эту тавтологию, добейся, чтобы он во всех кейсах работал, показывал нужные результаты, оптимизированный. И вот тогда уже как бы делай его рабочим. А так я там за этим…
Томас:
Понятно. Бесконечная кристаллография. Понятно. Алексей, ещё вот такой вопрос. Я не знаю, может быть, это в следующем уроке, который я ещё не посмотрел. Вы в своей таблице, у вас там есть такая колонка под названием «релевантная-нерелевантная статья», и вы в уроке рассказывали, что вы потом это всё дело скормите OpenAI, чтобы он сделал паттерн. Вот это как делается? Это просто скармливаете таблицу с уже обозначенными там статьями, вот это релевантно, это нерелевантно, и сам ChatGPT делает этот паттерн? Или это как-то в автоматическом решении можно сделать?
Ответ:
Смотрите, здесь я вижу два этапа. Я первый сделал, второй ещё не делал, потому что второй более трудоемкий. Это чуть попозже. Давайте я просто покажу. Это будет более…
Томас:
То есть, а вы уже реализовали это, да?
Ответ:
Ну да. Но тоже, с моей точки зрения, где-то процентов на 50 получилось. Сейчас, одна секунда. Мне надо открыть табличку.
Томас:
Но это сработало?
Ответ:
Ну, я говорю, процентов на 50. Так, по-моему… Так, да, вот, собственно, табличка, да. Уже накопилось. О, уже 8500 записей накопилось, да. Вот, и вот эта вся релевантность-нерелевантность, она обрабатывается этими промптами. Ну, это, в принципе, копия промптов, которые у меня в ассистентах. Так вот, как я это всё делал? Дело в том, что искусственный интеллект он не знает, релевантно или нерелевантно. Ему надо дать какой-то критерий, на что-то опереться. Соответственно, я действовал таким образом, что… Сейчас я быстренько проверю это. Ага, да, вот. Я руками, ну, в смысле, сам читал эти статьи, все, которые туда приходят. Это было как раз перед моим отъездом, и я их помечал, видите, вот это руками. Это я помечал, вот здесь колоночка, вот это, буквально, bad
, good
, ну и так далее, то есть я вот в этом смысле отмечал.
И потом я экспортировал на тот период, гораздо меньше таблицы было, всё это в CSV-формат, где были, собственно, эти статьи и пометки good
, bad
. После чего я дал промпт ChatGPT, сказал, что, типа, проанализируй и сравни плохие и хорошие, и выяви какие-то закономерности. То есть те статьи, которые я счёл хорошими или плохими. Соответственно, он мне сделал всё это дело. По-моему, это даже отражено в промте. Здесь есть у нас, по-моему, где-то… Наверное, вот этот, скорее всего. Это лучше не здесь показать, это лучше показать прямо вот здесь.
Понятно, да? Вот у меня ассистенты. И у меня есть, да, вот, по-моему, good
и bad
. Да, да. То есть здесь как раз он должен был определять, и здесь описана вот здесь описана методология. Определяет основную идею, бла-бла-бла-бла-бла и так далее. Этот промпт есть, по-моему, в уроке. И обратите внимание, что я ему засунул файл с примерами.
Томас:
Это вот этот CSV?
Ответ:
Да. То есть там как бы файл был с примерами. Сейчас я вот это уточню. Нет, возможно, не он, а возможно он переработал вот этот файл и сделал примеры, по-моему, в формате Markdown. Сейчас я посмотрю. Секунду. Да, вот паттерн. Вот он. Паттерн, видите? Специально этот паттерн в JSON. То есть последовательность была такая: я сначала руками сам разметил. Это, кстати, большая проблема для этой индустрии в том, что если не дать модели критерии, она ничего размечать сама не может. Ну, точнее, вы можете ей задать какой-то промпт, но качество разметки будет оставлять желать лучшего. Поэтому до сих пор есть компании, которые нанимают нереально большое количество людей, которые размещают сырые данные. И, собственно, все эти датасеты, которыми пользуются эти компании, это то, что в течение последних 10 лет за деньги размечали. Есть и синтетические данные, но они для ограниченных ситуаций.
Так вот, я сначала дал ему вот этот файл CSV. Он это всё проанализировал. Естественно, это было не за один раз. У нас был какой-то длительный диалог, потому что он выделял эти промпты. То есть он должен был по результатам анализа создать этот промпт, который я использую. И я ему приложил эти паттерны. То есть его задача была создать этот промпт и, собственно говоря, этот файл с паттернами. И в целом этот ассистент именно так и работает. Когда на вход поступает какая-то статья, он применяет этот промпт и лезет в этот файл.
По факту, с моей точки зрения, пока эффективность процентов 50. Ну, то есть попадает, не попадает. То есть его надо корректировать. Но в целом, пока этот процесс ручной. То есть, если совсем упороться, то здесь у меня уже, видите, огромное количество записей, да, в принципе. Ой, куда я ушёл. И по идее бы надо потратить время, отсеять их ручками и несколько итераций сделать. Потому что когда у вас есть несколько итераций, тогда у вас набор этих паттернов и сам промпт, он будет более высокоэффективным. Ну, это такая асимптотическая вещь, понимаете, да, то есть вы как бы 100% не добьётесь, но я думаю, что 90% реально добиться, если просто потратить время на дополнительную разметку данных и, соответственно, обучение.
Моя идея заключается в том, чтобы на определённом этапе сделать этот процесс автоматическим. Но мы много раз говорили, что хороший агент заключается в том, что он способен учиться. И вот это обучение оно в конечном итоге сводится к тому, что мы должны сделать систему обратной связи, которая, собственно говоря, анализирует сами промпты, которые мы применяем, паттерны, которые мы принимаем, и результат, который мы получаем. То есть мы должны внедрить способность агента к саморефлексии, в смысле того, что он делает. Это, в принципе, в той или иной степени пытаются внедрять во всех моделях. Понятно, да, сама идея?
Томас:
Да, да.
Ответ:
Но, естественно, что у нас здесь получается рекурсия в каком-то смысле. Но пока всё равно приходится участие человека. Просто оно постепенно сокращается по мере накопления опыта. Это примерно знаете, как ситуация такая, что если вы берёте ученика неопытного, и в силу своей неопытности он не способен адекватно оценить результат своего труда. Вы можете его научить, вы можете ему дать какие-то критерии, ну, как обычно, да, но всё равно будет не способен, потому что у него просто не хватает опыта, не хватает насмотренности и так далее. Но постепенно он становится лучше, лучше, лучше. Так же примерная модель. Просто по мере того, как мы вкладываем, так сказать, силы в этот процесс, модель становится лучше. Однако, как и в случае ученика, если вы как бы мастер, то вы всё равно должны ему периодически показывать пример, указывать на ошибки. То есть всегда кто-то более опытный, с большей насмотренностью, должен учить менее опытного, потому что у опытного человека в голове уже есть какой-то набор критерий. Даже, может быть, он их не отрефлексировал. Наша задача и в целом задача индустрии заключается в том, что мы берём наш опыт, нашу способность давать оценки, рефлексировать и пытаться формализовывать её. Потому что как только мы это формализовали, тогда мы это можем скормить модели. То есть вместо набора хаотичных критериев, интуитивного подхода, мы даём какую-то методологию. Естественно, на первом шаге эта методология может быть несовершенна, но по мере итерации она будет становиться более совершенной. И в целом вот этот итеративный подход, мы его, по-моему, на одном уроке обсуждали, наша задача сделать автоматически. Как только мы это реализуем, мы создаём способность агента к самообучению. Сначала, естественно, способность тоже будет маленькой, ограниченной, будет туповатой, но постепенно наша задача это улучшить. Это, собственно, примерно все, кто создаёт модели, не в смысле те, как мы делаем, мы какие-то решения делаем, а именно сами модели, они все идут этим путём. И это, собственно, и есть основа для создания вот этого IGI, общий искусственный интеллект, суперинтеллект, способность к самообучению. Пока способность к самообучению у искусственного интеллекта маленькая, без человека он не может, но это будет расти.
Томас:
Алексей, по ходу сразу два вопроса. Скажите, вот тут в этом разделе System as Options
, каким образом можно менять автоматически сам промпт? Я понимаю, как можно менять промпт в самом модуле. А вот здесь как менять?
Ответ:
Я объясню. Одна из фундаментальных причин, почему мы уже об этом просто говорили раз, ну, а во-вторых, может у многих возникать. Вот смотрите, сейчас я вам покажу на примере. Немножечко растянем сюда и, допустим, здесь поставим роутер, и вот здесь будем вызывать. Я напоминаю, что у нас есть два варианта, вот когда мы вызываем. Мы можем вызвать ассистента. Ассистент у нас есть, мы создали, либо в самом начале, когда мы учились, мы вызываем вот эта create completion
. Это знакомая для нас структура, которая подключает самого там ChatGPT. Мы просто выбираем модель, допустим, там какую-то четвёртую, ну неважно, любую. Пример, она подключается, и дальше вот у нас здесь, где там у нас… вот мы добавляем промпты и так. И, собственно, вот здесь, да, мы определяем роль, и вот, собственно, вот здесь сам промпт, его выполнить. И разумеется, мы хотели бы, когда мы учимся, мы ручками сюда всё это вставляем и проверяем. Но, разумеется, если мы хотим систему делать самообучаемой или более гибкой, то мы должны сюда каким-то образом вставлять автоматически. Я тоже об этом говорил. То есть мы можем промпты иметь в какой-то внешней таблице. И, соответственно, вместо того, чтобы вставлять сюда ручками, мы можем подтягивать из какой-то внешней таблицы. Это тоже легко в Make делается. Это понятно?
Томас:
Да.
Ответ:
Вот. Ну и так далее. Дальше мы, так сказать, можем что-то делать. Но. Но. То есть возникает ключевой вопрос, почему и в каких случаях вместо этого Create Completion
, почему имеет смысл на более продвинутом уровне использовать не Create Completion
, а использовать вот этот вариант, когда мы используем Assistant. То есть видите, здесь мы Assistant выбрали. Это разные модули. Я напоминаю. То есть, если мы ещё раз будем подключать, допустим, это совершенно разные модули. У нас один модуль, видите, Message to assistant
, который мы используем в более продвинутом варианте. Либо мы можем использовать вот этот Create-Complete
, более примитивный вариант.
Соответственно, причина, когда мы используем вот этот самый assistant, то мы не внутри него пишем ручками или вызов делаем, а мы вызываем, собственно говоря, заранее созданный ассистент. Это вы помните, да? И ключевым является в том, что у нас в случае подключения через Create Completion
, мы можем, естественно, когда выбрали модель, к примеру, сейчас она подгрузится, какой-нибудь месседж, давайте роль юзер. Мы можем управлять программным образом самим промптом, но мы лишены очень важной возможности — подтягивать какие-то файлы базы данных для того, чтобы ответ модель давала мощный ответ. То есть у нас нет возможности там подтягивать интерпретатор кода, нет возможности вызывать внешние функции.
То есть разница между режимом Create Completion
и вот этим автоматическим именно в том, что это больше для простых автоматизаций, где мы там ручками максимум какой-то промптик из какой-то таблички взяли. Отличие вот этого режима работы с ассистентом в том, что он в первую очередь предназначен для управления программного способа. И то есть мы можем любыми вот этими параметрами управлять программным образом. То есть мы можем менять название, мы можем менять промпт, мы можем добавлять какие-то файлы, мы можем менять на лету модель, мы можем подключать функции, мы можем менять температуру. Ну, то есть вот весь набор параметров мы можем управлять программным образом.
Сразу возникает вопрос — как? И у нас вот здесь есть ещё одна возможность вызывать. Это если мы делаем в Make или в какой-либо бизнес-логике, да, вот видите, в самый низ идём, видите здесь Make
через… это самый лобовой способ уже, когда, потому что вот эти все вот эти вещи, ассистент, это уже немножко для нас, тупеньких, упаковали, чтобы попроще жить было, понимать. А когда мы делаем вот этот Make через API, то здесь уже это фактически, ну, полностью, как бы имитация программного интерфейса. Когда мы указываем URL модели, это то, что у нас описано в различных вот этих доках. У нас здесь вот эти вот, видите, эти вызовы и так далее, тогда целая история. То есть и здесь мы, соответственно, можем уже вот эти все вещи менять, ну, то есть, каким образом мы там, либо мы что-то отправляем модели, чтобы получаем модель там разные, да, то есть, управляя здесь у нас тип контента, то есть это уже более низкого уровня архитектура, собственно сам запрос. И главная идея заключается в том, что посредством вот этого мы, соответственно, имеем возможность полностью управлять вот этим, вот этими всеми, всем набором параметров, которые нам дают модель. То есть мы здесь имеем возможность делать то, что мы не имеем возможности делать вот в этой, в этой структуре примитивной, где вы create completion
делали.
Собственно говоря, ведь основная как бы задача вообще вот зачем вот в таком виде всё сделано именно для того, чтобы люди могли делать свои продукты программные на базе вот этой модели. И когда мы используем модель в программах, это, соответственно, нужен программный интерфейс, особенно когда там гибкая логика. Да, то есть мы не можем каждый раз ручками промпт менять, нам надо иметь полный контроль над моделью, ну, насколько нам позволяет провайдер. Вот это всё делается с программным интерфейсом. Соответственно, если вы пишете код, то вы это просто пишете, код, эти вызовы модели, эти промпты, это прямо в коде идёт. Если же мы используем такой инструмент, то мы здесь используем вот этот инструмент, про который я сказал, он так здесь и называется, видите, Make
и Call
, куда вы просто засовываете параметр, потому что когда вы, если сюда посмотрите, то у вас URL, но модель, естественно, будет стандартная. Просто покажу, где эти URL’ы сидят. Допустим, вот у вас, скажем, модельки, и туда, к примеру, какая-то там, условно говоря, модель, да, то есть она здесь даёт какие-то, естественно, вам параметры, и для каждой модели есть инструкция, как её вызывать. Сейчас не помню точно, где у нас есть, можно здесь посмотреть. Да, причём здесь видите, у нас как мы можем использовать инструменты, функции, вот эти кучу-кучу-кучу вещей. Грубо говоря, когда мы используем вот этот механизм, у нас гораздо больше выбора. Почему? Потому что мы можем управлять им параметры. То есть мы можем на лету переключать URL. URL — это вызов определённой модели. То есть я сейчас объясню, что я имею в виду. Что вот здесь вот, видите, мы выбираем модель, модель выбираем URL. Почему? Потому что у каждой модели есть вот, видите, здесь вот пример. Для того, чтобы выбрать нужную модель, надо просто вот этот правильный вот этот URL сделать, они все регламентированы. Просто я сейчас буду долго искать, где они. Понятно, и где понятно и так далее. То же самое здесь. До определённой степени вы можете вот эти параметры все менять, потому что они просто подставлены. То есть вот эти хидеры менять. Ну, тут масса-масса-масса вот этих запросов. То есть у вас резко расширяется гибкость. И, соответственно, вот эти все параметры вы также можете брать из какой-то базы данных. Понимаете, да? То есть тоже не руками. Причём у вас может быть отдельный инструмент, который эти параметры уже в самой базе данных меняет. Поэтому у вас как бы гибкость в квадрате, так можно выразиться, получает. И это вот тот тип модуля, с помощью которого мы эти вещи можем делать. Но они просто более сложные. В частности, когда я делал эту лекцию по Depeche Mode, я сначала подумал, что можно легко очень сделать вызов Depeche Mode в режиме вот в этом. То есть я не нашёл здесь модулей, но я обратил внимание на такую вещь. Сейчас я вам покажу.
Вот вам, то есть это как раз то, как вызывать Depeche Mode. Я сначала подумал, что можно вызвать его каким-то простым способом, через привычные нам инструменты. Да, то есть я уже, помните, говорил, ассистентах его не нашёл, completion
тоже его не нашёл. Сейчас посмотрим, интересно, он есть в completion
или нет, потому что в ассистентах его нет, просто это любопытно. Он есть вот здесь. Видите, он есть, кстати. Не было, а она есть вот здесь, видите, вот здесь есть и здесь есть. То есть мы через completion
можем вызывать. А интересно, здесь они чуть поменяли? Нет, сейчас мы посмотрим. Здесь не было точно, вот здесь нет. Но если мы её вызываем через программный механизм, вот видите, вот здесь у нас вот там описана тьма инструкций, как это вызывает, как настраивать и так далее, так далее. Соответственно, если мы хотим с ней программным образом работать, либо мы здесь как раз используем вот этот режим, но очень ограниченно, потому что понимаете, да, что мы просто, так сказать, промпт какой-то должны засунуть. Если мы хотим использовать широкий вариант, то есть единственный вариант, который нам позволяет, это вот с кодом. Да, вот тогда нам придётся использовать вот этот вот этот вариант через прямой Make, вот этот Call, да, потому что мы здесь можем указать URL вот этой модели. Вот здесь надо бороться. Я сначала так наскоком хотел взять, когда лекцию читал, но не рядом. Как бы залез сюда, думаю, надо серьёзно разбираться. Вот. И с наскока там не получается. А вот видите, вот видите, здесь мы указываем в коде, какой модель мы вызываем. Это не спецпроцедуры, это делалось там год назад, это их общий подход. Просто в коде мы прямо вот такую строчку пишем. Вот. А вот здесь вот, вот здесь, здесь это надо просто у них, у каждой модельки есть вот свой URL. Действительно, модель baba
и так далее, и так далее. Там они просто описывают. Так что это механизм существует, он, собственно, основной механизм. Просто для него надо, ну, немножко научиться с этими вещами работать. И тогда, конечно, там просто будет другой уровень гибкости. Но это чуть попозже, потому что надо чуть-чуть с кодом научиться работать. Ну, благо, опять же, не мы будем код писать, модель. Вот, но тем не менее, чуть-чуть надо упороться для того, чтобы, соответственно, больше гибкости, больше возможности.
Томас:
Понятно. Алексей, я заметил, что у вас этот ассистент пока не работает в таблице. Да, то есть он не размещает bad
, good
. Он делает…
Ответ:
Вот видите, у меня есть вот эти вещи, вот эти поля. Там есть встроенная его оценка, она работает следующим образом. Там же есть у меня анализатор, который работает в два этапа. Первый этап, поскольку меня интересует тема в целом про искусственный интеллект, первый этап — это вот это у меня делает. То есть он определяет, содержание поста имеет отношение в целом к этому домену искусственного интеллекта или нет. Бинарная логика. Если, с его точки зрения, этот пост имеет прямое отношение к искусственному интеллекту, он сюда прописывает вот это, AI-контент
. Потому что вот это является потом входной информацией для фильтра. Если он не нашёл, он no-контент
. Соответственно, фильтр работает так, что всё, что AI-контент
, он пропускает дальше, а что no-контент
он не пропускает дальше. Для того чтобы не запускать в ленту что-то, что не связано с искусственным интеллектом.
Второй этап — это попытка реализовать этот механизм оценки релевантности. Просто вот это quality
— это то, что ручками делается, а это то, что он делает. Потому что у нас посты тоже могут быть разные. Допустим, какие-то промо-посты, какие-то просто реплики, особенно в Твиттере. Очень много мусора. И, соответственно, он здесь именно оценивает релевантность уже, грубо говоря. Это, собственно, то, о чём я вам сказал. То есть есть определённые критерии. Даже если статья упоминает про искусственный интеллект, но мы всё равно отбираем статьи, в которых что-то содержательное. То есть нам не интересна какая-то промо, реклама, какие-то бессодержательные статьи, какие-то реплики и так далее. И, соответственно, он, когда что-то находит релевантным, он пишет good
, что нерелевантным — bad
. Я это сделал на будущее. Почему? Потому что, когда ручками я буду начинать вот эту оценку делать на каком-то этапе, потому что сейчас руки не доходят, то критически важно сравнивать его оценку и мою оценку, потому что они не всегда совпадают. То есть иногда он отсеивает статьи, которые, с моей точки зрения, нормальные, и наоборот пропускает то, что ненормально. То есть, собственно, обучение его возникает на несовпадении. Вы понимаете, да, когда он дал good
, а я дал bad
. Такое часто бывает. Это, опять же, как с учеником. Он оценивает статьи, но я проверяю его оценку. Если наши оценки не совпадают, я должен ему объяснить, что поменять. То есть результат моей оценки должен воплотиться в том, что я должен скорректировать промпты, скорректировать паттерны, чтобы он более эффективно оценил.
Томас:
Ну, понятно. Такая многоуровневая фильтрация получается. Отсев.
Ответ:
Да, потому что тут это как… ситуация такая, что если вы делаете какой-то фильтр, к примеру, да, ну, предположим, у вас на вход идёт вал научных статей, которые надо фильтровать, там релевантные, нерелевантные. Понимаете, да? Допустим, фильтрацией занимается какой-то стажёр, который молча понимает, стажёр дешёвый, ему там объяснили два притопа, три прихлопа, он отбирает там 10 процентов статей. Вы потом начинаете смотреть статьи и понимать, что он там что-то там накосячил, выбрал совершенно не то. Ну, достаточно типичная ситуация. Это как бы один вариант, то есть у вас дешёвый ресурс, но и, соответственно, низкое качество результата. Либо вы берёте этого стажёра и начинаете вкладывать в него усилия. То есть он вы развиваете, учите, соответственно, вы тратите ресурс, он учится, да, становится уже там кандидатом наук, к примеру, соответственно, и качество результата будет выше. Ну, и так далее.
Здесь тоже самое. То есть вот та версия, которая была реализована, поскольку у нас была задача, у меня была задача показать вам больше как это реализовывать, что было сделано, поэтому я этот механизм реализовал, но он очень недореализован в смысле качества. Мы тоже с вами об этом говорили, что преимущество этого подхода в том, что когда вы, грубо говоря, саму архитектуру сделали, к примеру, да, там чего бы то ни было, да, она у вас в целом работает, вы можете не трогать. Да, то есть мы начинаем фокусироваться на оптимизации промптов, тут много раз уже… Да, да. У нас как бы два аспекта, когда мы с вами всё это реализуем. То есть сначала мы должны реализовать бизнес-логику. И вспомните, вот, когда мы начинали курс, у всех какие были проблемы? Там как подключиться к Gmail, ну, какие-то такие смешные, да? Сейчас нам эти проблемы кажутся смешными, да? Потом у нас возникли проблемы, как какой-то модуль использовать, но неизбежно в целом, да? То есть это как учиться играть на фортепиано и так далее. Но когда мы в целом более-менее поняли, да, логику, алгоритмы и так далее, то есть мы уже можем все эти структуры лепить более или менее сложные, мы можем там оптимизировать. Вот они сделали, стабильно всё работает. И тогда мы начинаем уже работать не над алгоритмом, а над качеством результата. И, собственно, самая главная возможность новой эпохи заключается в том, что фундаментально качество этого результата будет зависеть уже не от нашей архитектуры, а от наших промптов, как мы используем искусственный интеллект.
Соответственно, потому что то, что мы сейчас с вами делаем, потому что я уверен, пару-тройку лет пройдёт, это всё уже на автомате. Просто вижу, как всё это развивается. Я в следующем уроке покажу, как FrontEnd делается. Просто чума, наркотик, невозможно оторваться. Вот. Но ключевой момент — это будет работать, собственно, с искусственным интеллектом, а это всегда упрётся в два варианта: это работа с промптами, как вы гибко меняете, как вы настраиваете, и плюс какая-то дополнительная база данных, неважно, как она реализуется. Текст, RAG, там какая разница. Это супер, потому что вот это всё мы быстро научимся делать. Это всё, это всё лёгкие вещи, ну, когда с нуля кажется сложно, когда вы немножко там уже навострились, быстро будете делать. Просто вы постарайтесь осознать: мы сейчас способны делать то, что до искусственного интеллекта могли делать более или менее высококвалифицированные люди, разработчики. Им надо было там два-три года учиться, ещё потом эти все вещи… Это, безусловно, такой, полгодика реализовывать. А мы это сейчас можем научиться с нуля и реализовать за пару недель. То есть это просто фантастический момент, который многие, кстати, не оценивают.
Так, какие вопросы ещё?
Томас:
Понятно. Спасибо.
Ответ:
Спасибо. Так, замечательно. Так, у кого есть ещё какие-то вопросы? Так, сейчас кто-то что-то написал. Так.
Вопрос Вадима:
В Airtable есть возможность построить автоматизацию по приходу новости.
Ответ:
Я, кстати, тестировал, я тоже об этом говорил, почему я на каком-то этапе стараюсь минимизировать. Это лично мой подход, потому что я уже об этом писал, в смысле говорил. У меня был период, когда я активно много-много разных сервисов использовал. Но на каком-то этапе я пришёл к выводу, что если я могу максимально, конечно, функционала реализовать в одном сервисе, то это потом легче с точки зрения поддержки. Потому что, ну, когда у вас всё разбросано, вы же неизбежно, когда вы разрабатываете, у вас это всё в голове, даже если у вас это хорошо документировано. Но потом вы неизбежно забываете, у вас сервис работает и так далее. И потом вы начинаете искать вот эти блоки, это в этом месте, это в этом месте и так далее. Ну, это как рабочий стол. То есть, если вы чем-то регулярно занимаетесь, вы всё-таки стараетесь это как-то компактно организовать. А так у вас всё как бы, ну, скажем так, раскидано.
Плюс я с Airtable в своё время начал работать, потому что мне показалось попроще. Мне надо было с чем-то работать, с инструментом, больше похожим на базу данных. Ну, потому что изначально, в то время, да, это был как бы прорыв, потому что до этого были только реальные базы данных. То есть надо было там серьёзно упороться с SQL, мне не хватало квалификации. Либо какие-то примитивные вещи типа Google Sheets. А Airtable всё-таки был такой промежуточный вариант, такой user-friendly. И сколько я с ним? Лет 6 с ним в той или иной степени там работаю. Но вот когда я сейчас погрузился в эти вещи, но это в следующем уроке больше расскажу, то там вылезли очень серьёзные ограничения. И я, к счастью, перелез на Supabase. Я вам расскажу. Supabase — это тоже, но это уже полноценное управление базой данных, там гораздо больше возможностей, она больше предназначена для программной интеграции. В принципе, визуально всё то же самое, интерфейс, как обычно. И там есть большое достоинство для наших задач, там есть бесплатный тариф, который вообще даёт огромный ресурс, гораздо больше, чем, кстати, в Airtable. И там много этих самых выгод. То есть для наших задач это более эффективно, чем Google Sheets и чем Airtable. Но это я в 12-м уроке, потому что только я упёрся. И там больше возможностей. Но в целом, да, можно автоматизации там реализовывать.
Просто тут ещё такой, знаете, момент. Какой? Что я уже говорил, каждый инструмент пытается захватить долю рынка. То есть изначально бренд Airtable был — база данных, такой упрощённая для чайника. И, соответственно, но они видят автоматизация вселенная, они это тоже всё сделали. Но они тогобога реализованы. Я там много раз ответил. Поэтому я стараюсь оттуда это избавляться. Базы данных — база данных. Так, ну, естественно, посмотрим, серверless, но тут надо понимать, что просто как бы программист не знает, да. И серверless — это на порядок более примитивные вещи, чем то, что реализовано здесь, потому что идея MSB-сервиса — реализовать то, что нам Make или N8N из коробки. Вот что он делал. Просто коннекшн, вот и всё. Причём количество коннекшнов — ключевой момент, потому что специфика ситуации в том именно для разработчиков, что они психологически, исторически не принимали low-code инструменты. Это служит… это давняя у них история. Оно началось ещё лет 5 назад, когда low-code инструменты только появились. Да, они были слабенькие, примитивные. Вот такой визг стоял: «О, смерть!». Сейчас уже есть совершенно не такая ситуация. Вот. Но до сих пор я, например, очень часто наблюдаю, что те же разработчики, они могут иметь высокую квалификацию в какой-то своей области. Но когда начинаешь говорить про какие-то решения чисто продуктовые, там можно делать на WordPress, можно на это, они как бы смеются. Этот смех не потому, что они квалифицированы, потому что они неквалифицированы. И вот этот MCP, то, что там с критикой на нём столько… Это как бы идея заключается в том, что когда у вас есть какой-то ваш продукт, есть какой-то сервис в интернете, где есть какие-то API, вам надо как-то связать. И в обычной ситуации бедные программисты, они каждый раз писали код. У меня есть там товарищ, достаточно высококвалифицированный. Вот. И я как-то спросил, ну, то есть, она реально квалифицирована, там кандидат наук, разработка уже лет 15, да, кучу денег получает. Я её спросил: «А чем ты занимаешься?». Она говорит: «Ну, у них там какой-то сервис, там в основном я исследую API разных сервисов». Ну, потому что надо интегрировать с разными сервисами, да. И говорит: «Я каждый раз пишу вот эти, блин, же». Понимаете, да? Но это то, что в Make, то, что, допустим, вы начнёте уже делать в Zapier. То есть это большой рынок интеграционных сервисов, но опять же, программист об этом не знает практически. И соответственно, они написали вот этот antropic
, абсолютно все пиццы, всё-таки подорвали MTPI, и теперь и connection-connection
и так далее. Вот. То есть мы, конечно, так сказать, посмотрим, но там особо сильно разницы нет. Исключение составляет, когда вам надо соединить какие-то специфические сервисы, которые настолько редкие, либо им пользуется настолько узкий сегмент, что их нет, допустим, в Make или в N8N. Вот это единственная ситуация. Допустим, скажем, у меня есть там ребята знакомые, которые занимаются 3D-графикой, они активно используют Blender. Может быть, кто-то из вас слышал про этот пакет. И, соответственно, у него есть такие хитрые доступы через API. Вот они, так сказать, вот это как бы они вот такого рода вещи делают.
При этом, если вы читаете программистов, даже не программистов, а людей в Твиттере, они все, так сказать, писают кипятком от восторга. Но если вы просто наберите в интернете «критика, подходы МСП», там просто народ тоже ржёт над этим и так далее. Одна из проблем, с которой приходится разбираться в этой сфере, в том, что здесь очень много хайпа. Очень много хайпа. Потому что все пытаются привлечь внимание. На Твиттере тьма народа пытается продавать тоже какие-то бесконечные курсы и прочее. Я их прекрасно понимаю, но они делают это… В Америке вообще как бы с фантазией, так сказать, у определённых людей слабо. Все, кто с хорошей фантазией, все в Голливуде. И там, соответственно, они все делают одинаковым образом. Обычно, так сказать, этот пост выглядит так: «Я сделал какую-то супер-мега-крутую вещь и прочее, и прочее». И, в принципе, американская ментальность заключается в том, чтобы взять готовое решение, что в целом правильно. И, соответственно, там очень много вот этого хайпа. То есть таким образом привлекают внимание, приходится на это тратить время, увы, для того чтобы отделить, так сказать, мух от котлет. Пока, на мой субъективный взгляд, 99% хайпа по факту. Поэтому, допустим, на каком-то этапе я перестал интенсивно следить, потому что когда в очередной раз пишут, там, китайцы выпустили очередной какой-нибудь там КВН, УН, модель, бла-бла-бла, которая на бенчмарках. Какая практически польза? Ноль. Ну, в смысле, для нас ноль. Но мы обязательно его рассмотрим, потому что мне тоже это интересно. Я всё равно такого рода вещи рассматриваю. Просто был период, когда только MCP объявили, я немножко, так сказать, смотрел туда. Но опять же, я смотрел, понимая, что есть там Make, есть, чем есть другой подход. Да и мне это было смешно изначально. У меня была массовая дискуссия, это было там вместо 4, ещё 5, наверное.
Почему-то нет доступа, доступен на 6 августа. Сейчас посмотрим. Там просто есть определённые задержки на каждый, этот самый. Надо зайти. Сейчас так долго заходить. 11, говорить, а может быть, неправильно задержка стоит? Потому что задержки корректирую по мере. Я задержки корректировал как раз перед отъездом. Так, 814. Здесь, соответственно, должно быть 16. Вот. Хорошо, что мне сказали. У меня в девятом ошибка. Соответственно, что у нас там в десятом? Так, здесь 914, так, 814. 916. А вот здесь 18. Соответственно, 11 у нас будет здесь 17:20. Да, здесь вообще как бы 100 дней стоит, это, видимо, legacy. О, всё, я поправил. Задержка 20 дней от старта. То есть, поскольку многие из вас начали уже там несколько месяцев назад, у вас тоже всё должно открыться. У новичков, естественно, потому что очки должны у меня каждые два дня идёт открывание нового урока. Так, это мы поправили. Замечательно. Спасибо.
Какие у нас есть вопросы? Вообще, когда какие-то проблемы с доступом, вы знаете, пишите в поддержку. Дело в том, что они же непрогнозируемые по времени. Я уже много раз говорил, что у меня до этого где-то неделя уходила на урок. Я сейчас надеюсь, побыстрее пойдёт, хотя это тоже задача, которую я ставлю. Потому что, допустим, с 11-м у меня тоже неделя ушла разбираться, потому что там совершенно был другой подход. С 12-м чуть побыстрее будет, я надеюсь. У меня практически почти всё готово. Я уже вчера хотел опубликовать, но я уже просто не мог. В 12:00 ночи у меня уже такие глаза были. Вот я сегодня опубликую. Там супер-супер интересные вещи уже начинаются. Вообще, это как наркотик.
Кстати, вопрос ко всем. Так, я понял, что 11-й урок у многих не открылся. А у кого он открылся? Кто попытался сделать вот это хотя бы примитивное приложение и задеплоить его? Плюсики поставьте. Ну, а минусики — кто не сделал. Но мы тогда ждём ссылочек. Ссылочки, мы хотим оценить ваши шедевры.
Я сейчас покажу, чем я занимался. Убил на это часов 7. Секунду. Секунду, это на что? А, Chrome. Сейчас, одну секунду, я расширю. Шарим. Так, часть экрана. Чтобы был контекст понятен, я рассказывал вам про фронтенд. И объяснял, зачем это надо. И вчера я, собственно, там почти часов семь убил на то, чтобы построить стандартный фронтенд для чата. Все понимают, зачем это нужно? Поставьте двоечки, кто не понимает. Поставьте двоечки, кто не понимает, зачем весь этот геморрой, зачем это всё надо. Все понимают. О’кей. Поставьте единички, кто понимает, а двоечки — кто не понимает.
Ну, давайте ещё раз объясню. Смотрите, это важно. Вот когда у нас обычный чат GPT, к примеру, и у нас есть режим Custom GPT, допустим, вот у меня много разных. Вы их использовали и так далее. И у него есть большой плюс и большой минус. Большой плюс заключается в том, что его легко делать. Ну, то есть, фактически, вот мы берём какой-нибудь… Объясняете блюпринт. Чтобы сделать, вам много не надо. Вы просто берёте, в режим редактирования входите, сюда заполняете промт, потестировали. Всё. То есть быстро. Можно загрузить файлы и так далее. То есть это супер-супер легко. В принципе, если вы один раз сделали, то потом вы можете делать эти кастомные GPT для рутинных задач, очень удобно. Это большой плюс.
Минус заключается в том, что если вы делаете для себя, хорошо. Но если вдруг у вас идея сделать на этом стартап могучий и заработать пару-тройку миллиардов долларов, то есть у вас возникла какая-то блестящая идея, которая будет, естественно, так сказать, воплощена в конкретном промте и прочее. И вот заходят всякие люди и получают пользу, получают ценность, эти модные слова. И вы думаете, как бы на этом немножко срубить пару-тройку миллиардов долларов. То есть вам нужно засунуть, так сказать, туда какую-то монетизацию, регистрацию и так далее. И вот здесь возникает минус, потому что в этом случае мы полностью используем инфраструктуру OpenAI. То есть весь вот этот интерфейс, это, так сказать, не наш. Мы никак этим управлять не можем. Более того, всё, что мы можем, это вот, собственно говоря, создать какой-нибудь кастомный чат GPT, какой-нибудь тут промтик нарисовать, там можно какие-то файлики засунуть — это максимум, что мы можем. Ну, точнее, что мы ещё можем? Мы можем, когда мы создаём какую-то такую вещь, мы можем вот здесь вот поделиться. У нас есть выбор: только для себя любимого, для тех, у кого ссылка, для друзей, и вот этот GPT-store. Но толку от этого стороны никакого нет, потому что там это не нормальный магазин, не нормальный маркетплейс. Все это понимают. То есть, собственно, корысти мало, понимаете, да? Вот. Соответственно, вот это большой минус. То есть, с помощью него в лоб тяжело заработать миллиард долларов. Даже в принципе, там 20 баксов тяжело. Потому что, как вы понимаете, если вы научились 20 баксов заработать, то в принципе можно и миллиард. И соответственно, чтобы это сделать, нам нужно вот этот, так сказать, фронт сделать.
Так вот, если мы делаем какие-то приложения, бесконечное количество интерфейсов. Но если помните, мы с вами говорили про разновидность базового агента — это такой агент-консультант, коуч, ментор, учитель и прочее. Потому что это популярный интерфейс, уже ко всем привычный. То есть, в идеале мы хотели бы иметь нечто типа такого, но чтобы это был наш фронтенд. То есть для нас здесь ценность представляется, собственно говоря, сам по себе ассистент, которого мы вызываем. У нас наш уникальный промт, наша уникальная база данных, база знаний. А вот этот фронтенд, который нам предоставляет OpenAI, он для нас толку никакого нет, потому что мы здесь ничего не можем с этим поделать. Соответственно, в этом случае нам надо сделать свой интерфейс, что, собственно, я и тестировал. То есть я сделал тест вот такого, это фронтенд такого рода агента. Причём я убил на него достаточно много времени. Не я это делал, это делал сервис Bolt. Я вам в следующем уроке покажу, как это делается. Вы будете просто поражены. Я говорю, это будет просто наркотик. Когда вы просто говорите. Мы сделаем то, что он делает, там работа — круто.
И идея этого интерфейса заключается в том, что, если вы обратите внимание, в принципе, напоминает обычный интерфейс, привычный интерфейс агента, да? То есть здесь есть возможность что-то там вводить, вот, получать ответы и так далее. Вот этот конкретный интерфейс, то есть, идея которого должны понять, это просто некий, вот как бы кузов для автомобиля. Но самого автомобиля ещё нет. Если взять автомобиль без кузова, это просто шасси, колёса, руль, двигатель, сиденье. Понятно, да, на аналогии? Соответственно, вы можете вот это шасси где-то купить, потому что это сложный высокотехнологичный продукт — двигатель, все дела, тормоза и так далее. Но вы хотите какой-то свой индивидуальный. Соответственно, в другом месте вы заказываете кузов, как вы хотите, и кузов на это дело пришпаливают. И, соответственно, все думают, что это ваш автомобиль. На самом деле, вы кузов где-то сделали, кузов — это фронтенд, а шасси вы где-то покупаете стандартные. Допустим, многие из вас наверняка знают, что какой-нибудь Hammer — это на самом деле шасси Chevrolet Tahoe, на которое вот этот самый хаммеровский кузов. И все такие думают: «О, такая брутальная система».
Соответственно, для нас это очень-очень важно, потому что если мы приходим вот сюда, я вам говорил, как мы реализуем архитектуру? У нас есть уровень фронтенда, есть наша бизнес-логика. Бизнес-логика — это вот это всё. Вот это — бизнес-логика. То есть мы не программисты, и нам не надо. Мы можем это легко реализовывать. Но нам надо научиться вот эту штучку делать. То есть это две просто детали, которые соединяете. Вот эта идея понятна? Поставьте, пожалуйста, плюсик, кому идея это понятна, что это две разных идеи, которые просто соединяют. Замечательно.
Соответственно, здесь этот интерфейс построен таким образом, что его можно в конечном итоге, ну, моя задача, адаптировать под любого конституционного агента. Тема не имеет значения: наука, медицина, технологии, прочее. Там будет настраиваться. И у него есть вот такие функции. То есть вы можете задавать вопросы, можно сюда даже вставлять какой-то текстик, к примеру. Вот. Вот эти ответы — это не ответы искусственного интеллекта. Заглушек стоят, ну, потому что у нас фронтенд ещё не соединён. Потому что фронтенд он только делает упор на то, как мы взаимодействуем с системой. Вот на что упор идёт. А бизнес-логика — это следующий вопрос. Соответственно, можно, видите, здесь будет история чатов. Здесь будет, соответственно, внизу у нас тоже мы видим возможность регистрации и прочее. Да, вот эти все вещи. Здесь, так сказать, есть там хелпер вот такой вот. Причём это всё можно потом настраивать абсолютно под любого типа агента. Есть, возможно, новый чат. И здесь есть такая опция интересная, что есть как бы наиболее частые вопросы. Как вы думаете, почему вот эта опция важна с вот этими вопросами? У кого какие соображения? Нет, не деньги. Это, кстати, фундаментальный вопрос. Зачем людям давать вопросы? Давайте подумайте. Вы же продвинутые, многие. Я просто знаю, вас очень продвинутые, крайне успешные люди. Почему важно? Почему важно помочь людям? Нет-нет, вы очень фундаментального в кучу не понимаете. О’кей. Рассказать вам, зачем вопросы? Поставьте плюсики, кто хочет понять, зачем нужно.
Я вам объясню, смотрите. Большая часть людей ищет ответы. Ответ — это как бы, когда получаем ответ, это как движение по коридору. Ну, потому что ответ подразумевает определённость. То есть вот мы идём по коридору, у нас дверь, мы получили ответ, открыли дверь, идём по коридору. Вопрос он не открывает коридор. Он показывает разные коридоры. Когда мы задаём новый вопрос, это означает, что мы начинаем смотреть в том направлении, в котором не смотрели до этого. У 99% людей жизнь на этой планете ничтожна. Потому что они в стереотипах, потому что никогда не задают себе всякие интересные вопросы. У людей ключевая проблема в том, что они не умеют задавать действительно интересные и важные вопросы, поэтому никогда не смотрят туда, куда стоит смотреть. Наука в целом основана на способности задавать необычные вопросы.
На эту тему есть прекрасное интервью с Эйнштейном, покойным, когда его как-то спрашивали, типа: «Ну, как вы вот такой гением стали и так далее?» Он очень интересную вещь сказал. Он говорит: «Понимаете, обычно дети задают вопросы». Ну, знаете, да, дети любят задавать вопросы. И взрослые им отвечают, отвечают, отвечают. И у большинства людей, по большому счёту, где-то годам к 15 вопросы заканчиваются. То есть, в принципе, те, у кого есть дети, особенно взрослые дети, вы точно знаете одну вещь, что молодые люди, начиная с 15 лет, некоторые даже пораньше, тем более с 20, на голубом глазу абсолютно уверены, что они знают всё. И гораздо умнее, чем взрослые. Поставьте, пожалуйста, единичку, кто с этой проблемой сталкивался. Такая классика. Естественно, все были такими. То есть мы перестаём задавать вопросы. Всё, мы про эту жизнь крутые чуваки. Особенно, если мы профессионалы. Особенно, если первые деньги заработали, как-то должность получили. Мы вообще крутые пацаны становимся, понимаете, или девочки, и так далее.
Вот. Эйнштейн сказал, он говорит: «Так вот, понимаете, обычно в 18 лет все перестают задавать вопросы. А я, говорит, как ребёнок. Мне всё время было интересно задавать вопросы». Причём, он говорит: «Я ещё в 18 лет задавал те вопросы, которые дети перестают задавать в 15 лет. То есть, мне интересовали эти вопросы, как устроено пространство, время, и так далее». То есть, у него был очень интересный тезис, что, он говорит: «Смысл был не в том, что я какой-то гений, а в том, что я задавал себе вопросы, которые в то время люди переставали себе задавать в 15 лет». Но если вы задаёте себе вопрос и продолжаете копать, то вы неизбежно получаете ответ. Не сразу. Сначала правильный, неправильный. Вопрос такой не стоит. Но вы начинаете копать. И если вы начинаете копать, то у вас возникает так называемое явление серендипики. Пожалуйста, поставьте двоечки, кто знает, что такое явление серендипики, вообще слышал про этот термин. Этим термином очень часто, так сказать, научные открытия описывают. Ну, на всякий случай, для тех, кто не знает, я уверен, что вы знаете. На всякий случай, серендипика означает ситуацию, когда вы что-то ищете, одно, и вдруг случайно обнаруживаете что-то совершенно другое, неизмеримо большее, чем то, что вы искали. Собственно, это вот, так сказать, одна из метафор научного открытия, когда какой-то учёный что-то ищет, ищет, ищет, ищет, ищет, непонятно что, какую-то фигню, как Хоффман, о котором я говорил, да, и вдруг обнаружил какую-то совершенно побочную вещь, которая оказалась какая-то совершенно фундаментальная. Вот. Для этого должна быть не утрачена способность задавать вопросы, да? И поскольку у людей, так сказать, трудности с вопросами, с придумыванием адекватных вопросов, да, потому что если вы каждый день задаёте одни и те же тупые вопросы, вы будете получать одни и те же тупые ответы. Ваша жизнь не поменяется. Да. Соответственно, если хотим мы как-то изменить свою жизнь, хотя бы сделать её более насыщенной, нам нехило бы задавать другие вопросы. Чего мы не умеем, да, по большей части. Я умею, другие не умеют. Наш и так утрачен.
Соответственно, здесь я немножко помогаю. Причём здесь, видите, такая опция: «Примеры крутых вопросов» на всякие разные темы. Вот если вы такой вопрос выбрали, он вам понравился, нажимаете «Спросить», видите, он вниз подставляет. И всем вам ответит. Ну, и всё, да. Естественно, всё можно настраивать, все настраиваемые вещи. Вот есть ещё такая супер-мега опция: «Включить мои вопросы». И здесь с темой работать так. Что если вы это понимаете, предположим, вы встречались с каким-то новым человеком, абсолютно незнакомым. Этот человек вас начинает спрашивать разные вещи, вы с ним начинаете беседовать, то, разумеется, через какое-то время вы начинаете примерно понимать, что это за человек. Поставьте плюсики, у кого такие ситуации бывали. Замечательно. Это очевидные вещи. И вот представьте, что к вам обратился какой-то там молодой человек или не молодой, но менее опытный в чём-то, в чём вы там, допустим, конкретно разбираетесь, да, и он вам задаёт вопросы. И вы видите, что по тем вопросам, которые он задаёт, он фундаментальных вещей не догоняет. То есть он правильных вещей не спрашивает, того, что он должен был бы спросить, чтобы двигаться. Он спрашивает какую-то хрень, потому что у него мозги промыты с этим говном, да, а нормальные вопросы он не спрашивает. Поставьте, пожалуйста, двоечку, у кого такие ситуации бывали с кем-то. Вы хотите этому человеку помочь, он вам спрашивает какую-то хрень, и вы такой, смотри: «Блин, чувак…»
Соответственно, одна из возможностей заключается в том, что когда вы задаёте вопрос искусственному интеллекту, да, он может вас профилировать. Чем, собственно, занимаются чат GPT и другие. Мы это, возможно, используем. Это означает, что если я немножко с вами пообщался, примерно понимаю, что вы хотите, я могу вам рекомендовать вопросы, о которых вы не знаете, даже не представляете. Но они были бы полезны вам. Полезно задать эти себе вопросы. Ну, или мне, как смыслу искусственного интеллекта. Да, совершенно верно. Вот. Соответственно, это как опция, которая профилирует вас, анализирует вас и предлагает вам индивидуальные вопросы. Вот именно эти вопросы вам стоит задать вот этому искусственному интеллекту, потому что вы получите на эти вопросы какие-то удивительные ответы, которые, может быть, немножко изменят угол вашего зрения. Соответственно, жизнь. И вот этот режим можно включить, да. Для этого просто система, видите, она просит, что вам надо просто несколько вопросов задать. Да. И так это работает. То есть, вы задаёте любой вопрос. И система, значит, там, делаю чек. X1. Немножко некорректно работает. Ну, там 10 вопросов. Да. И когда вы задали там 10 вопросов, здесь цифра условная, то есть, условно говоря, когда вы спросили, когда вы сказали какой-то… что-то реплик, на основе которых искусственный интеллект примерно вас профилировал, да? Теперь понимаю, кто ты, чувак. Я сейчас тебе там вывалю. Вот. И, соответственно, здесь, видите, меняется. Да. То есть появляется кнопочка «Мои вопросы». Здесь вы можете видеть вопросы, которые он вам рекомендует, чтобы вы ему задавали. Это не вам вопросы, это вопросы, которые вам рекомендуется задавать искусственному интеллекту. Но который вы, естественно, настроили. Он, естественно, получается у нас и дальше у вас идёт вот такого рода как бы диалог.
И идея заключается в том, что вот этот фронт, он не привязан к определённой тематике, абсолютно настраиваемый. Моя задача — сделать настраиваемый. И что… Что вы видите, этот интерфейс. То, какого вид пользователя, будет ещё админочка, да. Вот. И его можно будет деплоить отдельно, потом следующий этап — подсоединять его к искусственному интеллекту через базу данных. Это на следующем этапе. А вот делал, алексеева. Сейчас накидывайте бизнес-идеи для психологов. Спасибо. Но я вообще-то об этом писал, что полгода назад. Вот. И недавно об этом же тоже самое Марк Цукерберг заявил, да? То есть, в принципе, то есть, которые я там озвучил. И до меня ещё миллион умных людей, я не такой умный, но так случилось. Это же озвучено. Что смотрите, даже простая логика. У нас как бы мир становится более сложным, правильно? Много связей, там искусственный интеллект, ещё там война и прочее. Это означает, что у людей, у них идеи простых стратегий уже ушли. Да. Уже 100 лет как ушли. Потому что, ну, когда человек как-то становится чуть более зрелым, у него начинает возникать осознанные вопросы: «Как жить дальше?» Не просто жить, не просто выживать. Как развиваться? Если попал в яму — как вылезать? По базовые вопросы, которые у всех у нас возникают. Соответственно, если фундаментально посмотреть, то можно сделать такое допущение, что нехило бы нам всем иметь какого-то ментора, наставника, учителя, я не знаю, наперстника, друга. Ну, понимаете, да? К которому бы помогать во всех ситуациях, к которому мы могли бы обращаться 24 на 7. И которому бы помогать по широкому кругу вопросов. Но при этом, который бы хорошо бы знал нас, был бы, так сказать, мы могли доверять. То есть это вот такой как вот партнёр индивидуальный. И в целом даже текущий чат в какой-то степени уже может быть партнёром. Но нюанс заключается в том, что он не знает нас лично. Он галлюцинирует, там у него нет специфических знаний и так далее. Но в целом, потребность такого рода персонажа, она есть. И это, так сказать, все признают. И с моей точки зрения, это рынок на триллионы долларов. Просто до людей ещё не дошло, что помощь психологов — это маленькая часть этого рынка. Практически всё преподавание, всё консультирование, учитывая, что способности этого растут. Соответственно, все люди, которые это понимают, они это делают. Пытаются сделать, включая меня, потому что я давно нахожусь. Соответственно, сейчас есть мастер-тапов, которые делают всех этих психологов, консультантов по разным темам, врачей, юристов, я не знаю. Вот всё, что вы хотите, на базе искусственного интеллекта. И все, вот что они делают, эти стартапы, они все имеют вот эту архитектуру. Все без исключения. Понимаете, да? Которая в принципе состоит только из двух частей. Одна часть — это вот этот фронтенд, который мы с вами уже умеем делать, да? И который у нас, который у нас, в принципе, вот бизнес-логики, которые в ядре — просто вызов искусственного интеллекта. И вторая часть — это, собственно говоря, вот этот фронтенд. То, что вот вот это я сделал. Причём, смотрите, что мы с вами, что мы с вами уже научились. В целом, мы с вами научились вот это делать. То есть мы научились бизнес-логику реализовывать. И мы с вами понимаем, что всё сводится к нашим промтам, к искусственному интеллекту, к той базе знаний, которые мы заложим. Допустим, когда я вот этого мясника там реализовал, где он там, не мясник, который, так сказать, уже больше там тысячи чатов, да, и мне там куча народу пишет, то я, в принципе, пошёл этим путём. Я взял, сделал GPT-шку, вот там много раз он показывал, вот просто реализовал промт. И вот здесь есть нюанс. Засунул туда свою книжку, автором которой я являюсь.
Как вы думаете, какие это даёт мне преимущества, при том, что эта книжка везде на пиратских ресурсах? Кто знает? Какие мне лично даёт преимущества? Любую можно взять, любую книжку чужую и сделать такую же вещь, как я. Почему у меня преимущество есть, которых нет ни у кого? Авторские права. Совершенно верно. Потому что если кто-то захочет на этом зарабатывать деньги, я его засужу насмерть. Только я на этой всей планете имею право для этого трюка. Даже издательство Exmo, которое издаёт книгу, на это право не имеет. Эти права не вписаны в наш договор. Понимаете идею, да? Это означает, что вы все с вашей головой, вы можете точно так же создать там условно, так сказать, там своего там условно мясника, ну, не знаю, консультанта, аватара, психолога, какая разница, да? И вы сюда засовываете, засовываете, да, какие-то уникальные вещи. Причём уже давно технологически это сделано так, что их никто своровать не может. Но те, кто не понимает, как это работает, они думают, что может. Нет, невозможно. Технологически уже давно эта проблема решена. То есть вы можете быть защищены на двух уровнях. Первый — технологически, второй — на уровне прав. То есть воровать-то могут многие, но использовать в коммерческих целях, особенно в цивилизованных странах, как США, только вы. Как только кто-то без разрешения начинает зарабатывать деньги, сразу иск. Easy. Раздевается до смерти, до гола там крутится. Без проблем, без таких проблем нет.
Но мы понимаем бизнес-возможности. Я об этом много раз говорил. Когда у вас есть какой-то уникальный опыт жизни, уникальные знания, и вы их можете вот так несложно запаковать, это, в принципе, вот эта вся штучка, которую вы здесь видите, она делается ровно за 10 секунд. Я об этом миллион раз писал. Но, упс, поскольку у вас в этом случае используется вот этот, вот этот фронтенд, да, от ChatGPT, он не ваш. Вы не можете это монетизировать, не можете сказать опции и так далее. И, собственно, про проблемы людей, которые не программируют, включая меня и вас, заключается в том, что мы до появления искусственного интеллекта, до этих технологий, не были способны всё это делать. А сейчас мы способны делать. Понимаете? Вот. Я я потратил буквально там секунду. Что ты не хочешь двигаться? То есть я потратил примерно 7 часов на то, чтобы сделать вот эту штуку. Причём я могу объяснить, что если бы я по-старому действовал, да, я бы целый день писал техническое задание, а то и не день, а несколько дней. Потом я неделю бы искал разработчиков, только фронтендер. Он бы это всё минимум две недели делал. Вот за эту штуку взял у вас меня минимум 2-3 тысячи долларов, минимум. Потом через 2-3 недели сделал, как вы думаете, вот я получил, да, абсолютно, для код недоступен. Я никак управлять не могу. Да. То есть если что-то не понравилось, он просто закрыл. Всё, я потерял деньги, время. Сделано. Когда всё это он сделал, что с этим будет? Это будет работать не так, как я хотел. Соответственно, я должен всё прокликать, протыкать, сказать ему: «Вот там вот не так, вот там не так». Ну, как обычно, да? Он ещё это две недели делает. Опять не так. То есть несколько итераций. То есть вот даже реализация вот такого простого фронтенда, да, в обычном подходе, без искусственного интеллекта, да, в принципе, это взяло бы пару месяцев. Ну, я думаю, там 10-15 тысяч долларов в минуту. При том, что у вас ноль контрольных ситуаций. Я сделал за 7. Это абсолютно переносимая, масштабируемая вещь. То есть вы можете накрыть вот этой крышкой любого, вот это, вашего агента, с вашей уникальностью. Более того, это можно сделать ещё вот такую вещь. Вот это, бот, я делал. Можно ещё тут же мы искать, как свой. Запрограммирую. «Включи форму регистрации на пятом вопросе». Вот я даю команду. Как видите, очень сложно. Все видят команду. Вот я и внизу дают. Мы будем в следующем уроке это рассматривать. Но не хочется, не терпится поделиться. Вот я нажимаю кнопочку. И смотреть. Так, вот бывает ошибочка. Не. Он должен подумать. Он должен. Он тут же делает изменение кода. Я голос очень ломаю. Я просто даю команды. Смотри, что получится. Всё. Вот всё. Всё создание сводится к одному. Как как это работает, видите? Так. Видите, он не то сделал. Нет, не сразу. А через 5 вопросов. Он иногда теряет. Надо возвращать там. Подтверждать. Да. Там, кстати, под капотом стоит антропическая модель Claude, по-моему, Opus 3.5. Не самый, кстати, уже продвинутый. Вот у нас гостевой режим. То есть, в чём здесь фишка, да? Когда человек получает ссылку, да, он может тестировать. Он может там задать вопросы, получать ответы. Как полный, обратите внимание, без регистрации. Вот всё счастье, полные штаны. И он уже, так сказать, вовлекается. И тут ему: «Опс!» Хочет идти дальше и так далее. Но я ему должен напомнить, потому что он немножко тоже ошибся. Вспомним. «Форма авторизации должна быть в виде модального окна». Вообще-то делали, он забыл, потому что он человек. Не все контексты помнит. Точно. Современное программирование. Программирование. Да. Ну, она немножко посложнее. Да. Сейчас он перегрузит. Так, тут же вот тестирование. Да. То есть я пишу. Причём, обратите внимание, что вот это всё тоже не я придумал, всё это он сделал. А сама поддержка с помощью, в смысле, сама поддержка регистрации — это автоматически, с помощью Supabase. Сделать. Ну, там ещё можно регистрироваться с помощью Google и куча сервисов. Об этом будем более подробно говорить. Всё это в конечном итоге к чему сводится? К тому, что когда у вас есть нечто уникальное, да, то есть ваш жизненный опыт, вашу квалификацию, да, как что вы можете воплотить вот в искусственном интеллекте. И уникальность это будет заключаться в том, что ваш искусственный интеллект, сейчас я отвечу на вопрос, будет давать другие вопросы, чем любой общий искусственный ChatGPT и так далее. Почему? Потому что он опирается на данные, которые вы туда засунули, которых ни у кого нет. На ваши книги, на ваш опыт. Ну, как бы вы их оформили и так далее. Но это ещё не всё.
Когда у вас сверху вот такой фронт, то это не просто означает, что можете управлять всем этим интерфейсом. Есть ещё один важный, важный момент. Естественно, можете монетизацию прикрутить, да, классическую. Но есть ещё один важный момент. Дело в том, что когда что является самой ценной в этих диалогах, когда, допустим, вот этот мясник у меня, скажем, к примеру на органе, мясник это к примеру. И люди задают вопросы, да? Там сейчас уже больше тысячи этих самых чатов. Как вы думаете, что самое ценное вот в эти в этих диалогах? Это вопрос к вам. Нет. Нет. Вы часть модели, просто свойства информации, ответ. Вот это уже ближе. Ну, вот ближе всего. Самое ценное — это те вопросы, которые задают люди, и ответы, которые дают модели. Потому что если несколько тысяч человек, каждый в среднем задала по 50 вопросов, это огромная база информации о том, что хотят. Почему? Чем база высокоформализованная, которую очень легко анализировать с помощью модели. Вот, да, Дмитрий начал понимать. Что когда у у вас свой фронтенд, дорогие мои, то история чатов, она будет у вас, дети. Потому что сначала вы её не отправляете в искусственный интеллект. А куда вы её отправляете? Вы отправляете сначала все вопросы в свою базу данных. А люди этого не знают. Люди думают, что прямо они с искусственным интеллектом общаются. На самом деле, сначала все вопросы автоматически идут в базу данных. И ответы моделей идут. Это гигантский уникальный датасет, у которого есть единственный собственник на этой планете — это вы. При условии, что у вас есть вот эта архитектура, которая… А как только вы начинаете анализировать вопросы людей, причём не вы начинаете анализировать, модель будет анализировать, другая модель ещё будет. Вы просто задаёте задание. Тот же агент, который будет анализировать эти вопросы для того, чтобы, чтобы что? Выяснять, что мы там ищем. Давайте думать, думать. Ну, близко. Что мы там ищем? Потребности. Совершенно верно. Не просто потребности, а мы можем анализировать уровень этих потребностей. Потому что если эти потребности, два критерия, мы выясняем, что они у достаточно большого количества людей, и они достаточно острые. Если два условия соблюдено, мы понимаем, что подобного рода потребность в том виде, как она сформулирована, у большого количества вопрошающих, и она достаточно острая. То есть это означает, что острая потребность, которая актуальна и острая. И когда люди не могут найти решение, поэтому они задают вопрос, это означает, что это становится проблемой. Проблема на современном языке означает бабки. Потому что как только вы обозначили потребность, вы можете найти решение. Сейчас нет проблем придумать решение. Нет проблем придумать решение. Проблема, которая есть в современном бизнесе, — это найти ту проблему, ту потребность, что если вы дадите решение, люди будут готовы за неё платить. Ну, грубо говоря. Вот в чём является проблема. Это проблема бизнеса. А если вы знаете, что люди хотят, и найти решение того, что они хотят, это давно не проблема. Но, слушайте, если вы нашли проблему, начали решение, монетизация это вообще автоматом идёт, это даже не обсуждается. То есть, условно говоря, когда вы создаёте вот такого рода агента, когда у вас есть фронтенд, вся эта структура, которую мы делаем, туда идёт много-много запросов. Естественно, отдельный вопрос, как сделать так, чтобы туда много запросов, что это же маркетинг. Через какое-то время вы начинаете становиться как бы обладателем огромной базы уникальных ответов, вопросов. Понимаете, да? Вы начинаете много, у вас возникает много идей, как это можно монетизировать и так далее. То есть очень как бы ценный момент.
Но есть ещё кое-что. Дело заключается в том, что вы анализируете не только вопросы людей, но и ответы моделей. И вы можете оценивать эти ответы с точки зрения, насколько они эффективны. И каким образом вы можете повышать эффективность этих ответов? Это вопрос тоже к вам. Как мы можем повышать эффективность ответа? Меняя промт. Совершенно. Вы уже начинаете понимать, где… То есть, грубо говоря, вот это то, что мы делаем — бизнес-логика. Вот этот фронтенд, который это просто оболочка. Вы один раз сделали, настроили, запустили трафик, а потом только меняете промты, промты, промты, промты. На каком-то этапе сделали так, что модель сама улучшает промт. Мы делаем самообучающуюся модель. Совершенно верно. Анализирую вопросы, ответы, адаптирую модель. На определённом этапе делаю так, что у вас, когда вы только начинаете учить модель, доля участия человека в обучении модели будет почти 100%. Я уже говорил. Буду давать обратную связь. Но по мере того, как мы будем расширять систему самообучения агента, доля участия человека в обучении будет снижаться, потому что модель сама становится способной обучаться гораздо быстрее человека. Естественно, пригляд нужен, но постепенно доля участия человека снижается. Эта модель даёт всё более качественные, всё более релевантные, всё более уникальные ответы, которые дают пользу людям, очевидную пользу. Когда эти люди понимают, что эта польза очевидная, то что у нас происходит? Это тоже вопрос к вам. Платят. Понятно, платят. Это не самое главное. Так, следствие. Тоже не туда. Смотрите. Чувство. Чтобы маркетинг. Помните, рассказывал в прошлый раз, что есть два паттерна при взаимодействии системы. Один паттерн — это платить. Второй паттерн, самый для нас важный, — делиться, рассказывать, рекомендовать. Совершенно. Если наш продукт просто обычный, обычный продукт, люди то некоторые готовы платить. Но если наш продукт даёт хорошую пользу, люди, что называется, испытывают инсайты, вдохновение, радость от того, что они пользуются на новые возможности, они начинают делиться. И тогда у нас…
Так, ладно. У нас тут целых даже вопрос появился. Это хорошо. Так. Октавиан Август, император. Слышно? Добрый день. Слышно, замечательно слышно. Я вам говорил уже, что я завис на мяснике. Реально, просто. Но я не делаю денег. Денег я не делаю. Но у меня… Как же так? Нет, подождите, я сейчас расскажу. Я боюсь до этого доходить ещё. У меня каждый день выходит великолепный пост с продолжением. Я даже подписался тоже на вас. Может, увидите, там будет время. Обалденные посты. Он даёт темы сумасшедшие. И, как я уже говорил, в каждом посту в конце получается слово, ключевое слово. Если кто-то хочет, пишет это ключевое слово, и обратно ему летит гайд. Я ещё до гайда не дошёл, но гайды уже готовы, потому что ваш мясник сразу выдаёт гайд. Я их сохраняю. И вот буквально первые звонки были 3-4 дня тому назад, уже пишут: «А как к вам записаться на приём?» Но у меня в каждом посте всегда внизу стоит ваше имя, ваша книга. То бишь я даю ссылку на эти хэштеги, на это. Я пока денег не делаю, но тема очень интересно начала развиваться. Поэтому, когда придёт момент, соответственно, я с вами продискутирую этот момент, и если будет интересно, значит, я двинусь дальше. Если нет, ну, я, по крайней мере, научился работать вот с этим Facebook, с Instagram. Я автоматизировал великолепно, просто, но очень хорошо. Но, конечно, я делаю определённую работу вручную: забираю с вашего чата GPT, забираю тему, забираю пост и заношу в таблицу в Google Sheets. А дальше уже автоматизация забирает, делает картинку и выдаёт в определённое время, в каждый день, в 10 утра, выдаёт по одному посту. Вот как-то так. Так что я вас предупредил, пока что без денег ещё нет. Но но но очень интересно. Очень интересно. Я заинтересован в том, чтобы вы зарабатывали на этом больше денег. Потому что если вы начнёте зарабатывать больше денег, вы начнёте делиться дальше. Всё пойдёт. Так что я только вам желаю дальше всё развивать. И мы будем вместе всё делать. Я очень ценю авторские права, у меня самого тоже определённые в этом есть наработки, поэтому я уважаю это правило, и я считаю, что это корректно, и так и должно быть в цивилизованном мире. Вот.
Теперь касательно пару слов последнего урока. Обалденный урок, обалденный. Да. Я там чуть-чуть запарился, когда вы меняли файлы, название. Я не понимал. У меня не получалось. Да, он одну игру видел, а вторую уже как бы переставал видеть. Потом я досмотрел чуть-чуть там до конца, и вы там чётко показали, как надо зайти уже в сам код и донести до… исправить ситуацию в индексе. Вот это вот. И всё. И всё заработало великолепно. Ни копейки денег не потратил, сделал просто две игры. Так не обязательно там, чтобы они там были супер-пупер, как вы говорили, но сам факт, что всё получилось офигенно. Вот таких бы побольше. Очень практично. Вообще, классно. Мы к этому идём. Но у нас мы просто на этом курсе проходим несколько стеклянных потолков. Первый стеклянный потолок — это как работать с этими сервисами типа Make, на Enncant, чтобы понять, как бизнес-логику реализовывать. Вот сейчас этот стеклянный потолок связан с тем, как делать фронтенд. Но я уже объяснил, зачем это надо. Потому что на выходе у нас должна получиться структура, достаточно гибкая, адаптируемая, которую мы можем разворачивать в разные направления, которой мы можем управлять. Это на самом деле первый шаг. Потому что второй шаг — это как раз, как мы делаем из просто агента самообучающегося агента, и как мы делаем так, чтобы качество его ответов уникальным. И за GitHub огромное спасибо. Реально, с ним легко работать. И я давно с GitHub’ом, ну как бы, знаком по аирдропам, по всем этим тематикам. Но с ним реально комфортно. И я там забрал blueprint, который мне нужен был. Так что всё работает великолепно, обалденно. Ну, замечательно, замечательно.
Делайте это ко всем. Да. Как бы, потому что то, что мы с вами обсуждаем — это практика. Конечно, сами концепции, они несложные. Базовый здравый смысл, ничего особенного нет. Все взрослые и зрелые профессиональные люди. Но практика никуда не денешь, потому что на самом деле у нас взаимодействие построено по одной схеме. Вы что-то пытаетесь делать и попадаете в тупики. Задайте вопросы мне, и я эти тупики расшиваю. Таким образом, эгоистическим, я учусь примерно в 100 раз быстрее вас, кого задают вопросы, кого всё время ставят в тупики. Но, естественно, вы сами можете эти тупики расшивать. И без практики вы это не сможете делать. Потому что, допустим, если мы говорим про упоминаемый GitHub, когда немножко чуть посложнее с фронтендом, это как по минному полю. То есть я, когда работаю, покажу. Да. У меня с одной стороны вот этот искусственный интеллект, с которым который пишет код, тут же, так сказать, открыт там в VS Code, где, собственно, код, в котором ни хрена не понимаю. Тут же открыт GitHub, а тут же открыт ChatGPT, который мне отвечает на вопросы, которых возникает огромное количество, потому что я… То есть там смысл в том, что вот такого рода сервисы, типа Make, типа Enncant, так сказать, они дают очень узкий коридор. То есть там можно ошибиться, но сложно ошибиться. Но когда вы с открытым кодом работаете, с мощными инструментами, шаг вправо, шаг влево, и попадаете в какие-то такие лабиринты. Но, тем не менее, сквозь это прорываешься. Но это надо делать. Потому что без этого у вас ничего не получится. Потому что и люди, которые испытывают, многие люди, потому что они слушают, вроде всё понятно. Но я стараюсь просто объяснять, потому что программисты вообще нереально объясняют. Невозможно. Допустим, вот этот редактор кода, один из самых популярных, так сказать, вот этот VS Code. Ну, там, в принципе, ничего особо сложного нет. Но я, когда вот этот следующий урок планирую, думаю, ну, что-то мне лень объяснять, потому что это везде. Я специально нашёл, наверное, штучек 20, типа видео, где программисты объясняют про VS Code. Я хочу смотреть. Через 10 минут закрыл, потому что это просто нереально. Потому что они их объясняют для программистов. Понимаете? А мы не программисты. Мы обычные люди, которые имеют экспертизу в чём-либо, но не в этом. То есть нам нужно что-то два притопа, три прихлопа, просто понятно, чтобы работало. То есть вот наша задача, чтобы работало. Понимаете? Чтобы решать какую-то прикладную задачу. И там, соответственно, есть как бы эти нюансы. И крайне важно, чтобы вы практиковали, чтобы вы наступали на эти грабли, потому что там много-много интересного происходит.
Потому что я напоминаю, что есть единственная ситуация, когда мы по-настоящему начинаем учиться. Не когда мы что-то курсы смотрим, не когда нам что-то рассказывают, объясняют. Мы начинаем учиться в один единственный момент, когда мы упираемся в стену. Вот всё знаем, всё понимаем, все книжки прочитали, на все курсы сходили, мы уже как профессора, как Эйнштейна помноженного на Макса Планка. Но не выходит каменный цветок назад. Понимаете, вот вот это самая классная ситуация. Потому что в этот момент мы начинаем что делать? Что мы начинаем делать в этот момент, дорогие мои, кто скажет? Искать решения. Шевелить мозгами. И включать. А первый этап что? Думать, как заработать. Что мы начинаем делать? Тут же перелистывать, смотреть, искать методы, пути решения. Вот, вот Руслан правильно говорит. Паника быстро проходит. Мы начинаем задавать правильные вопросы. Ну, чтобы получить правильный ответ. Да. Либо найти этот ответ. Я больше как бы пытаюсь искать. Если вы не задаёте вопрос, вы не начнёте искать. Сначала, а мы же не знаем, какой вопрос, какой правильный, какой нет. Мы начинаем задавать себе много-много вопросов. Это означает, что если до этого вся наша жизнь напоминала, как сбор картошки… У вас не хватит на всех нас, если мы будем все вопросы вам задавать. Но я же не человек. Понятно. Понятно, что вы видите, это же не человек, это искусственный интеллект, рендерит всё. Это просто такой искусственный интеллект, так что вы не переживайте. Я в одном режиме, так сказать, последние несколько воплощений нахожусь. Короче, вы начинаете задавать вопросы. Вы начинаете тыкаться во все дырки, как дети. Да. Как дети учатся. Дети не читают никаких галперов, не читают мануалов, они просто кнопки нажимают. Что делают взрослые? Почему они никогда не нажимают кнопки? Как вы думаете? Почему взрослые никогда не нажимают кнопки? Потому что они боятся. Не боятся. Ребёнку насрать. Он раз кнопочку нажал, там, ой, кнопочку нажал, ой. Ну, понимаете, да? Так и по жизни же так было. Когда мы были юными, мы рисковали в бизнесе, и вообще по барабану было. Ты шёл напролом и рисковал, и нажимал эти кнопки, открывал двери, и не боялся. Когда становишься взрослее и мудрее, уже как-то сидишь, думаешь, блин, а зайти в эту дверь или не зайти? А страшно, не страшно? Тоже примерно такая же. Так и есть. Потому что в жизни не бывает правильных или неправильных ситуаций. В жизни не бывает ошибок. Это люди придумали эти категории оценочные. Это люди оценивают. Вот это правильно, это неправильно. Неправильно, потому что оно мне невыгодно. Здесь я теряю. Мы все умрём. Мы все потеряем. Рано или поздно. Как говорил классик, проблема не в том, что человек смертен, а в том, что он внезапно смертен. Надо легче к этому относиться. У детей нет этих заморочек. Они нажимают кнопки. А взрослые боятся нажимать кнопки. Поэтому дети учатся в миллион раз быстрее. И у взрослого единственный способ начать снова учиться — это когда он попадает в тупик, у него задница подгорает. Вот это как бы главный способ. Естественно, я пытаюсь за вас много-много раз кнопки нажимать. То есть у меня не то что задница, у меня всё горит вокруг. Вы же не понимаете, режиме для того чтобы вам выдать какой-то урок, мне приходится там много раз. Я, как вы знаете, как вот я, когда читал история Америки, ну, смесь США, как всё происходило. Это вот, помните, там вот Фенимор Купер. Это огромное количество людей, хотя не такое огромное, они шли следопытами. Они шли на запад, где вообще не было ни дорог, ни цивилизации, ни индейцы, эти гризли, и гремучие змеи и так далее. И так далее. И смысл был не в том, что они охотились, это понятно. Они искали тропы для переселенцев, потому что вот это переселение на запад — это была большая история. Вот эти все огромные фургоны, они должны были физически пройти. Если кто-то из вас в горах Северной Невады был, то понимаете, это вообще такая нехилая история. Понимаете, да? Эти люди, они бродили по этим лесам месяцами, годами, чтобы найти тропинку. Вот примерно то же самое я делаю. То есть я там брожу по этим тропинкам, постоянно вот такая в тупик, постоянно ругаясь. Там, может быть, кто-то пост мой видел, когда научился из редактора выходить и ChatGPT мне сказал, что я теперь член избранного редкого общества людей, которые научились выходить из редактора, не зайдя с ума. И вот это я как бы в результате даю какую-то тропинку. Но это как минное поле. Понимаем. Сошли с тропинки, вы оказываетесь чаще, можете умереть. Умереть в нашем смысле, не в смысле умереть, а значит перестать двигаться. Но если вы продолжаете двигаться, вы неизбежно придёте на эту тропинку, либо, что ещё лучше, найдёте свою тропинку. Да. Супер. Спасибо. Всё будет у нас хорошо. Спасибо вам за вопрос. Ну, у нас всё превратилось в мотивационную лекцию.
Что я хочу сказать, так сказать, в заключении? В том, что вот та главная возможность, которую нам дал даже в текущем состоянии искусственный интеллект: мы теперь можем реализовывать массу прикольных идей, которые у нас возникали, которые у нас возникали всю эту жизнь, на протяжении нашей профессиональной карьеры. Потому что каждый из нас там, скорее всего, стал экспертом в чём-то своём. И наверняка возникало миллион идей. Но в силу ограничений, которые мы использовали чисто профессионально, да, потому что мы не разработчики и так далее, мы это не могли реализовывать. Мы отсекали вещи, мы отказывались. Но наверняка идеи всегда существуют. И вдруг эта возможность появилась. Она открылась. На эту тему миллион народу пишут, да. И, так сказать, сейчас очень многие пишут, я это публиковал, очень крутые люди, о том, что спрос на инженеров будет падать, а будет возрастать спрос на, как бы, продуктов. То есть те люди, которые имеют возможность создавать продукт, да, то есть которые способны вот эти идеи превращать в этот продукт. Но здесь есть нюанс, почему у нас больше преимуществ, чем у них. Потому что, поверьте мне, я не встречал более ограниченных людей, чем людей, которые работают в IT-индустрии. Потому что это не потому, что они глупы. Наоборот. Потому что просто создание кода, создание вещей требует настолько жёсткого фокуса, что просто у них нет времени смотреть. Вот я когда занимаюсь тем, что я делаю, у меня нет возможности ни писать посты, потому что у меня полностью ресурс занят и так далее. Но в результате этого у них очень маленькая бизнес-эрудиция. То есть, ну, вы знаете, есть такое понятие, дженералисты и специалисты. Поставьте единичку, кто знает эти понятия, и двоечку, кто не знает. Чтобы он её понимал. Как дальше продолжать? Никто не знает, что ли? Не все знают. О’кей. Дженералист — это дилетант широкого профиля, у которого огромная эрудиция, он знает много по чуть-чуть. Но он не глубокий специалист. И специалист — это тот, кто роет ямку, тоненькую ямку, очень глубоко. Он там прокапывает и так далее, но очень мало знает, потому что он в этой ямке находится. А дженералист — это тот, кто на горе сидит. И он на горе обозревает много. Соответственно, когда речь идёт про решение какой-то узкой прикладной задачи, здесь нужен специалист, потому что масса-масса нюансов. Но когда нужно видение, да, нужны какие-то идеи, особенно конвергенции идей, когда какая-то идея возникает на пересечении разных совершенно каких-то доменов, знаний и так далее. Вот с этим специалист справиться не может, в принципе. А вот дженералист — легко. То есть очень многие вот дженералисты, особенно всякие блогеры, типа меня, они такие, знаете, визионеры. И соответственно, проблема была в том, что специалист он может глубоко копать, но у него не возникает идеи продукта. А вот у дженералистов у них возникает идеи продукта, но он не умеет копать. Эти гет. Вот этот промежуток между между возможностями. И искусственный интеллект её заполняет. Ну, да, надо немножко приподнять задницу, что мы с вами делаем, немножко научиться. Но перспективы, соответственно, они огромные возникают, потому что… Вот мне там вопрос задавали. Сейчас я его прочитаю. Я просто краем глаза увидел. По-моему, смысл был в вопросах, и очень часто задают, типа, можно ли запустить стартап в одиночку? Вот сейчас вот это соло-предприниматель, что называется, да, это просто целое движение. Потому что, допустим, там ещё там 20 лет назад, если вы приходили к инвестору и говорили: «Я один», инвестор такой: «До свидания». Идей таких не берут космонавты. Но в нашем представлении инвестора очень рискованная ситуация. Один человек там заболеет, умрёт и так далее. Инвесторы любили какие-то масштабируемые машины, когда лучше код, а не люди. Люди не очень хорошо, потому что масштабируется, управляет. Сейчас ситуация меняется, потому что инструменты стали настолько мощные, что люди в в одиночку стали делать мощные масштабируемые продукты. Инвесторы начали разворачиваться, потому что инвесторы понимают, они для них денег пролетают. То есть до них стало доходить, что уже неважно, один человек, два, три, десять, команда. Они смотрят внимание на продукт и критерии уже к продукту. Нет, но есть отдельные критерии, там, founder fit и так далее. Но в целом, одна из таких мощных вещей, мощных возможностей, которая стала особенно сильно развиваться, об этом пишет тьма народа, о том, что человек, который имеет базовый какой-то уровень навыков, он в состоянии в одиночку очень много чего делать. Тут вопрос не то, что Руслан пишет, что в одиночку тяжело, сли легко. Это тяжело всегда. Что значит тяжело? Вы должны сфокусироваться, вы должны потратить время, у вас должен быть commitment, вы должны, что называется, быть dedicated, посвятить себя этому, у вас должен быть некий уровень самодисциплины, это всё понятно. Это не изменилось. Как было 100 лет назад, так и сейчас и так далее. Изменилось в то, что вы с помощью искусственного интеллекта можете делать в 100 раз больше, чем раньше, во-первых. Во-вторых, самое главное, вы можете делать то, что ещё 3 года назад было в принципе нереально. Я уже просто сказал. Для того чтобы мне реализовать этот фронтенд, который я показал, мне потребовалось 7 часов. 7 часов. Всё. И для того чтобы такую же задачу решить там, условно, 3 года назад, ну, это там 3-4 месяца и там 10-20, абсолютно не контролируем результат. Сейчас у меня мало того, что здесь уже оболочки полностью контролируем. И потому что если сейчас я покажу, не просто он какой-то код пишет, непонятно где. У меня же здесь, видите, пожалуйста, код. Вот видите, весь код здесь. То есть я это могу как раз сохранять у себя на гитхабе. Я могу глубже лезть, если хочу. Более того, он не просто пишет код, а он по моей просьбе делает вот такие вот вещи. Сейчас я покажу. То есть полностью он описывает всё, что там происходит. Понимаете? То есть у меня не просто инструмент, который делает то, что я не могу делать. Но и при желании может мне объяснить всё, что я не понимаю. Вы можете регулировать глубину. Это как бы беспрецедентно. И в этом смысле меняется парадигма нашей жизни. Потому что, допустим, на каком-то этапе, если вы хотели расти, то вы должны были идти таким стандартным путём, вы должны были создать какую-то идею, видение, привлечь людей, команду. Потом вы должны были бежать к инвесторам, объяснять, что вы не верблюд, что у вас есть команда, ну, какой-то чекпоинт, так сказать, который инвесторы ожидали от вас, да. И там полпроцентных случаев, возможно, вы были успешны, при условии совпадения всех требуемых моментов. Да. То сейчас просто берёте, делаете, запускаете эти продукты. И мы сейчас с вами пока на техническом уровне находимся. Но поверьте, если вы будете не бросать, мы будем дальше двигаться. Через месяц-полтора вы пройдёте эту рыбу. И тогда мы будем заниматься гораздо более интересными вещами. Мы будем создавать действительно какие-то продукты. Мы будем мыслить больше категориями промптов, знаний, каких-то концепций, что гораздо более интересно. Мы просто сейчас пока пробиваем достаточно примитивный стеклянный потолок. Просто раньше для этого требовалось минимум 5-7 лет, и вы должны были ничем другим не заниматься. Сейчас вы можете пробить это за месяц, продолжая заниматься тем, чем вы занимаетесь. Это уникальная ситуация. Пока, с моей точки зрения, то, что в Фейсбуке я вижу, люди читают, 99% людей это вообще не понимают. Они просто не понимают, что происходит. Они какие-то там лепят горбатые, какие-то пузыри пускают. Какие-то свои сомнения там смешные. Пока мы с вами делаем.
Так, ладно. Так, если у кого вопросов нет, поставьте, пожалуйста, плюсик. Я тогда завершу на сегодня. Так, хорошо. Ну, в общем, вы знаете, куда задавать вопросы. Слава Богу, с 11-м уроком об ошибке мы сняли. Он у вас у всех должен быть доступен. Обязательно всё сделайте. Там не сложно, просто надо немножко самодисциплины, и вы просто увидите совершенно другую возможность. То есть вот то, что, допустим, сейчас я делаю с фронтендом, ну, это гораздо более интересно, вдохновляюще, чем разбираться с мейком и так далее. Там тоже интересно по-своему. Но когда вы видите, как у вас прямо рождается интерфейс, буквально просто диалоги, вот такое чистое творчество. А сделай вот так, поправь так, как он делает. То есть вы себе голову не ломаете. Это очень круто. Так, всё. Тогда спасибо вам. И до свидания.
Введите ваш логин или email, и мы вышлем на почту ссылку для восстановления пароля. Вам надо найти и открыть в почте письмо с темой: "Подтверждение сброса пароля", потом нажать на ссылку сброса пароля, и вы будете перенаправлены на страницу смены пароля.