Сегодня код и даже секретные алгоритмы не обязательно являются интеллектуальной собственностью. Несколько очень дорогих и популярных стартапов – это буквально запрос к нейросети. Давайте посмотрим, как на самом деле устроены Lovable Dev, Cursor Ai и Windsurf.
*Прямая ссылка на видео https://www.youtube.com/watch?v=MXuPBDBEZwQ
**Пересказ видео сделала нейросеть https://300.ya.ru/
Пересказ видео
Секретные Промпты на миллионы
- Статьи о приложениях, сделавших создателей миллионерами, обычно фокусируются на коде.
- Сегодня основная ценность многих продуктов — это промты к искусственному интеллекту.
- Промты могут быть украдены, поэтому их важно защищать.
Интеллектуальная собственность и промты
- Интеллектуальная собственность в IT-разработке часто скрыта от посторонних глаз.
- Промты к нейросетям являются важной частью интеллектуальной собственности.
- Рассмотрим три популярных сервиса: Lavable, Winserf и Cursor AI.
Lavable
- Lavable позволяет создавать сайты в одну команду.
- Промт состоит из 1551 строки и подробно описывает взаимодействие с нейросетью.
- Указываются принципы разработки, такие как кодстайл, использование Typescript и React.
- Промт включает инструкции по обработке ошибок, производительности и безопасности.
- Указывается необходимость написания юнит-тестов и документации.
- Промт содержит информацию о файловых операциях, структуре кода и ответа.
- В промте указаны примеры файлов, таких как README, .eslintrc и index.html.
Описание Lavable
- Lavable умеет делать одностраничные приложения с React и Tailwind
- Ограниченная функциональность
- Примеры файлов и ответов на запросы
Влияние больших букв на нейросети
- Большие буквы привлекают внимание нейросети
- Примеры использования больших букв в промтах
F school от Влада Мишустина
- Школа для Java разработчиков
- Подробное обучение и погружение в разработку
- Карьерный центр и помощь с трудоустройством
- Скидка 10% по промокоду LAR 10
Windsurf IDE
- Новый редактор кода от CDum
- Информация о инструментах, которые может использовать LLM
- Агентские функции для написания кода
- Важные моменты выделены большими буквами
Использование маркдауна для выделения важной информации
- Маркдаун помогает нейросетям понимать, где жирные буквы и ссылки.
- Критическая информация выделена жирным и заглавными буквами.
Функции нейросети
- Нейросеть должна предоставлять краткое содержание своих действий.
- Она должна запускать команды в терминале при необходимости.
Описание файлов и языков программирования
- Пример команды для создания файла routs.py и добавления endpints.
- Нейросеть может работать с Python и JavaScript.
Memory System и инструменты
- Описание, как нейросеть должна запоминать информацию.
- Примеры использования инструментов и XML-формат запросов и ответов.
Инструкции по работе с файлами и завершению ответа
- Много инструкций по использованию файлов и переменных.
- Завершение ответа должно быть информативным.
Преимущества использования инструментов
- Инструменты упрощают основной промт и позволяют экономить деньги.
- Примеры инструментов: браузер preview, плейстатус, поиск по кодовой базе.
Запрос в редакторе Cursor AI
- Cursor AI — популярный редактор кода, который создаёт приложения с нуля.
- Промт состоит из 62 строк и включает описание задач и функций.
Функции и инструменты в Cursor AI
- Функции описаны отдельно, но без примеров запросов и ответов.
- Функции включают внесение изменений в код, поиск и чтение данных.
Формат текста для LLM
- Не обязательно использовать абзацы и списки
- Можно писать один большой абзац с предложениями друг за другом
- Для логического разделения можно использовать HTML-теги
Дополнительные инструкции
- Указывается версия операционной системы пользователя
- Это важно для правильного использования терминала и установки библиотек
- Автор удивляется, что подобное не используется в Windows и Lavable
Доступность промтов
- Ссылка на все промты размещена ниже под кнопкой в описании
- Включает Vрf, курсор, Lavable, Davin, Vinol и агенты для VS-кода
- Можно сделать форк, чтобы сохранить данные
Интеллектуальная собственность
- Некоторые компании заявили, что их промты не попали в репозиторий
- Другие фирмы промолчали, что подтверждает наличие их промтов
- Компании, отрицающие это, возможно, не хотят признавать доступность своей интеллектуальной собственности
В этом видео
Секретные Промпты на миллионы
0:00
Вы наверняка видели такие статьи,
0:01
которые называются топ-5 приложений,
0:03
которые сделали своих создателей
0:04
миллионерами. И обычно это буквально про
0:07
написание кода и публикацию приложения в
0:09
интернете, чтобы другие люди им
0:10
пользовались. Однако сегодня появился
0:12
целый ряд продуктов, основная ценность
0:15
которых совсем не в коде и очень часто
0:17
даже не в людях, которые делали это
0:19
приложение. Основная ценность или так
0:21
называемая интеллектуальная
0:22
собственность — это самый обычный промт,
0:25
запрос к искусственному интеллекту.
0:26
Такая информация тоже иногда бывает
0:29
украдена. Поэтому сегодня давайте
0:31
посмотрим на пром используют так любимые
0:34
сегодня разработчиками программы.
0:35
Например, курсор, Winserf и Lavable.
0:40
[музыка]
1:10
Но прежде чем начать говорить о том, как
1:12
работают любимые современными
1:14
разработчиками инструменты, давайте
1:15
поговорим о розыгрыше. ключа на любой
1:18
продукт от компании Jetbains. Для того,
1:20
чтобы в нём поучаствовать, как обычно,
1:22
нужно поставить лайк под этим видео и
1:24
написать абсолютно любой комментарий, и
1:26
через неделю я выберу победителя.
1:28
Кстати, ещё один ключ я разыгрываю у
1:31
себя в Telegram-канале. Переходите вот
1:33
по этой ссылке, и там вы можете тоже,
1:35
нажав кнопку участвовать, просто
1:37
поучаствовать в этом розыгрыше.
1:38
Интеллектуальная собственность — это
1:40
что-то, что все компании, которые
1:42
занимаются IT-разработкой, обычно прячут
1:44
от посторонних глаз, потому что очень
1:46
часто это главная ценность их программы.
1:49
Так вот, сегодня мы будем говорить об
1:51
интеллектуальной собственности, которая
1:52
является промтами к нейросетям. И
1:56
поговорим о трёх популярных сервисах,
1:58
которыми пользуются разработчики. Это
2:00
Lavable, нидерландская, кстати, контора.
2:03
Winsf — это новый редактор кода от
2:06
создателей Кадеума. В прошлом они вот
2:08
всё переименовали, теперь называются
2:10
Winf. И, конечно же, курсор AI. Пожалуй,
2:12
самая громкая и самая новая программа
2:16
для разработки, о которой говорят все и
2:17
которую используют многие, особенно для
2:19
вайп-кодинга. И давайте начнём с
2:22
Lavable. Так как это менее известно из
2:24
трёх мною названных, однако мы попробуем
2:26
найти основные особенности промта,
2:30
которые там используются, и затем
2:31
посмотрим, применяются ли эти
2:33
особенности в Винссерфе и в курсоре. На
Запрос в Lovable Dev
2:35
экране вы сейчас видите прот, который
2:37
написан для того самого Lavable. И с
2:40
помощью Lavable вы можете в одну
2:42
команду, как они говорят, делать целые
2:44
сайты. И прот состоит из
2:47
1.551 строки, некоторые из которых
2:49
достаточно длинные. Например, вот строка
2:51
номер два и строка номер три очень
2:53
большие. Но, как я уже сказал, мы
2:55
пройдёмся по основным моментам, как
2:57
здесь всё устроено, и затем посмотрим,
2:59
какие здесь есть особенности, как здесь
3:01
применяются различные штуковины внутри
3:04
этого промта. и затем сравним с тем, как
3:06
это сделано в Винсрфе и в курсор AI,
3:09
потому что, возможно, там это сделано
3:10
несколько по-другому. Также мы не знаем,
3:13
какие нейросети используются этими
3:16
программами, будь то чат GPT или, может
3:18
быть, Geminii от Гугла или что-то ещё.
3:21
Поэтому мы рассчитываем, что это
3:23
одинаково применяется ко всем
3:26
существующим LM. И проб начинается с
3:28
того, что указывается, кем именно
3:31
является нейросеть. Мы видим, что здесь
3:33
говорится, что она lavable AIредактор,
3:36
который создаёт и модифицирует
3:38
веб-приложение. И здесь очень подробно,
3:41
я бы сказал,
3:43
описывается то, как пользователь будет
3:45
взаимодействовать с этой нейросетью.
3:47
Здесь говорится, что он и картинки может
3:48
загружать, и какие-то другие файлы,
3:50
которые необходимо использовать.
3:51
Обратите внимание, что здесь
3:52
указывается, что не всегда нужно
3:54
применять какие-то изменения, что иногда
3:57
их нужно обсуждать с пользователем. И
3:59
это чётко здесь указано на случай, если
4:01
нейросеть вдруг решит, что изменения,
4:03
которые просит пользователь, не нужно
4:06
сразу применять или, может быть,
4:07
какой-то информации недостаточно, она
4:08
может спросить об этой дополнительной
4:10
информации или указать причину, по
4:11
которой код писать не надо. Дальше у нас
4:13
идут инструкции о том, какие принципы
4:16
при разработке применять. Вы знаете, что
4:18
обычно разработчики в команде
4:19
договариваются, какой будет кодстайл,
4:22
какие будут подходы, какие методы и так
4:24
далее. Так вот, когда вы используете
4:25
нейросети, это всё тоже надо указать. Вы
4:27
видите, что здесь указывается и про код,
4:30
и организацию файлов. Файлы должны быть
4:32
маленькие, сфокусированы на какой-то
4:34
одной теме и за быть не более птися
4:37
линий кода, строк кода. Также должен
4:40
использоваться
4:41
Typesриpt. Это значит, кстати, что мы с
4:43
вами говорим только о фронтде. Вряд ли
4:45
подразумевается JS условный. И
4:47
говорится, что наш код должен содержать
4:50
много выводов в консоль для дебаггинга,
4:52
что как будто бы логично. Также здесь
4:54
жёстко указывается, что для того, чтобы
4:56
делать компоненты, нужно использовать
4:58
библиотеку SHT Cn UI- это библиотека,
5:00
которая построена на базе Реакта с
5:02
использованием Tail Windowнда. И ещё мы
5:04
можем увидеть, что здесь жёстко
5:05
указывается, что для state-менеджмента
5:07
необходимо использовать React query, а
5:11
локальный state с помощью use state и
5:12
use context. Не уверен, насколько это
5:15
можно поменять, когда вы создаёте своё
5:17
приложение с помощью Lavable, но пока
5:18
это выглядит, как будто мы всегда и все
5:21
наши приложения будем получать с
5:22
одинаковым набором библиотек и утилит,
5:25
которые используются. Также здесь жёстко
5:27
указывается, что необходимо обрабатывать
5:28
ошибки, потому что это очень важная
5:30
часть. Если их не обрабатывать, то у нас
5:32
что-нибудь сломается и мы не знаем, где.
5:34
Затем нам говорят или указывают не
5:36
расти, что производительность должна
5:38
большой, что безопасность должна быть
5:40
хорошая. Мы все знаем, что тот же
5:41
Lavable, например, не очень дружит в
5:43
итоге с безопасностью. И в одном из
5:45
роликов я показывал примеры. Затем
5:47
говорится, что нужно писать юнит-тесты
5:50
для критической функциональности. Но я
5:52
бы так сказал, не только юнит-тесты, на
5:54
самом деле нужно писать ещё и NТНте, и
5:57
всё остальное. Но а так как это
5:58
приложение чаще всего используют не
6:01
разработчики, а N2N-тесты всё-таки
6:03
написать с помощью е сегодня тяжеловато,
6:06
то здесь делается упор на юнит-тестах
6:08
только для критической функциональности.
6:10
Немного про документацию. Опять-таки,
6:12
всегда хорошо иметь документацию к
6:14
какому-то проекту, особенно если не ты
6:16
сам его писал, чтобы разработчики,
6:17
которые будут, возможно, с ним потом
6:19
работать, могли что-то понять очень
6:21
быстро. Ну а дальше у нас идёт
6:24
оформление. И оформление сделано с
6:26
помощью специальных тегов, которые
6:27
наверняка потом используются системой
6:29
для того, чтобы отделять а куски кода от
6:31
документации, ещё что-то и правильно их
6:33
расставлять по папкам и файлам. Из
6:35
интересного здесь указано, как общаться
6:38
с файловыми операциями, то есть как
6:39
создавать файлы, загружать файлы,
6:41
сохранять файлы. Затем структура кода, и
6:44
нам указывают, что нужно и мыслительный
6:47
процесс показать, и технические детали
6:49
кода, и показывать ошибки, если они
6:52
возникают, и вот это вот всё. Затем
6:54
структура ответа. И, кстати, если вы не
6:56
знаете, когда вы общаетесь с неростями и
6:58
вам нужен какой-то структурированный
6:59
ответ для того, чтобы дальше его
7:01
использовать без всяких изменений, то
7:02
обязательно нужно указывать нейросети,
7:04
как именно вы хотите ответ получать. И
7:06
если мы посмотрим дальше, снова
7:08
информация о роли, которую мы уже
7:10
видели, и на самом деле она дублируется.
7:12
Не знаю, зачем это её можно было вынести
7:14
в переменную прямо в промте используйте
7:17
эту переменную. Ну и затем более
7:19
подробная и детальная информация о том,
7:22
как это всё должно
7:24
работать. Смотрите, например, Redmi
7:27
Filй. Указано, что он должен быть и что
7:29
он изначально должен содержать какую-то
7:31
определённую информацию. Эта информация
7:33
сразу предоставлена, и это всё можно
7:36
менять. Забавно, что всё это сразу
7:38
предоставлено в Маркдауне, хотя можно
7:40
было написать обычным текстом и
7:41
попросить оформить в Маркдауне как
7:43
типичную документацию. Забавно, что в
7:45
RID- файле для неразработчиков, ну,
7:47
повторюсь, Lavable часто используют
7:49
именно неразработчики, указано, как
7:52
пользоваться и менять файлы, например, в
7:54
Гитхабе, а также как их деплоить в
7:56
prodдаction. Но повторюсь, это же для
7:58
неразработчиков имму и слово плой на
8:00
самом деле не очень понятно, поэтому мне
8:01
кажется это несколько странным. Здесь же
8:03
в промте видна информация о других
8:05
файлах, которые чаще всего в проекте
8:07
используются. Например, настройка
8:09
ESлинта для того, чтобы проверять
8:11
качество кода, пожалуйста, ES Lint
8:13
Config JS сразу здесь, в том виде, в
8:15
котором он по умолчанию будет в проекте,
8:17
и затем нейросеть может этот файл
8:19
менять. Индекс HTML. И мы можем увидеть,
8:21
что он опять-таки самый простой, тот
8:23
самый indкс HTML, который у нас
8:25
применяется во всех сиage приложениях
8:27
одностраничных. И там нет ничего, только
8:29
div idroot, в которой всё будет
8:31
рендериться в данном случае Реактом.
8:33
Настройка Tailн, потому что, напоминаю,
8:35
используется ша DNблиотека, она
8:38
использует Reactты TailWind.
8:39
Соответственно, TailWIN нам тоже сразу
8:41
нужен в проекте. И здесь есть файл с его
8:43
конфигурацией. И много других файлов, на
8:46
которых, я думаю, нет смысла
8:47
останавливаться. Они имеют отношение
8:48
только к фронт. И мы можем увидеть из
8:51
этого промта, что Lavable умеет, в
8:54
принципе, делать только одностраничное
8:56
приложение с использованием Реакта и
8:58
Tailвин, что как будто бы ограничивает
9:00
его функциональность. Файлы, файлы.
9:03
файлы, файлы, файлы, файлы, файлы,
9:05
файлы,
9:10
файлы. И затем после файлов у нас идёт
9:15
responsсформат, где мы описываем или в
9:19
данном случае разработчики lavable
9:20
описывают, каким должен быть ответ. Они
9:22
говорят, что он должен быть на том же
9:24
языке, на котором пишет пользователь. -э
9:26
должны быть объяснения, гайды, как,
9:30
собственно, приложения устроены, как
9:32
написан код. И вот это вот всё. Я думаю,
9:35
что, если вам интересно, вы сами можете
9:36
прочитать. Ссылку, кстати, на вот эти
9:39
все запросы, которые были так или иначе
9:42
вытянуты из всех этих приложений, я
9:44
оставлю ниже под кнопкой лайк в
9:45
описании. Здесь же приведен пример того,
9:47
как должен выглядеть ответст точки
9:49
зрения размышлений, запроса
9:51
пользователя. Вы увидите стандартную
9:52
разметку Userмедж. Там хранится то, что
9:54
пользователь спрашивает.
9:56
AI message, то, что AI отвечает.
9:59
Thinking — это то место, куда будут
10:01
писаться все размышления. И по поводу
10:03
вашего запроса, ну, знаете, что если
10:04
сделать вот так, хм, так может не
10:06
работать, может быть, сделать лучше вот
10:08
так. И вот это вот всё то, что Deep нам
10:10
придумал и показал. А сегодня это есть
10:12
практически в любой LLM. Затем примеры
10:14
ответов э
10:17
с кодом. И здесь нам предлагают сразу
10:20
компонент, который называется
10:21
калькулятор TSX, как пример для
10:23
нейросети. И согласно этому примеру, она
10:25
будет делать все остальные
10:29
компоненты. Мы можем увидеть ещё всякие
10:32
примеры и так далее. И как будто бы в
10:35
этом промте больше нет ничего
10:37
интересного. Есть куча примеров того,
10:39
как создавать файлы и как их
10:40
использовать. И в зависимости от того,
10:43
какой запрос будет у пользователя,
10:44
например, покажи мне код для компонента
10:47
кнопки и затем пример того, как и должен
10:50
ответить.
10:52
Ну и здесь в примере самый простой
10:54
компонент кнопки и так далее.
10:56
Множество-мжество примеров, потому что
10:58
нейросеть, она не должна придумывать то,
11:01
какие ответы и как будет она давать. Ей
11:04
обязательно нужно дать как можно больше
11:06
референсов, примеров и дополнительной
11:08
информации, потому что чем больше этой
11:10
информации, тем лучше финальный
11:12
результат. Мы можем увидеть здесь ещё
11:14
пару интересных моментов. Это, например,
11:17
coding guidelines, а то, что всегда
11:19
нужно отвечать responsive дизайном и так
11:21
далее. И я бы обратил внимание на слово
11:24
always, которое написано большими
11:25
буквами. Мы это увидим ещё и в других
11:27
промтах. Такое чувство, что для ЛМ, как
11:30
и в переписке между людьми, большие
11:33
буквы обозначают, что это что-то очень
11:34
важное и как будто бы тот, кто писал
11:37
этот запрос, кричит нейросети о том, что
11:39
именно так сделать и надо. Поэтому я
11:42
этого не знал раньше. Теперь я знаю, что
11:44
большие буквы так или иначе влияют на
11:46
восприятие текста нейросетями. И снова
11:49
множество примеров того, как,
11:50
собственно, что, куда и выводить. И мы
11:52
можем видеть you must, например. Здесь
11:54
тоже выделено большими буквами или вот
11:56
must. То есть мы прямо кричим,
11:58
повторюсь, нейросети, ты
12:01
должна. Больше ничего интересного в этом
12:03
промте нет. Он очень большой, но
12:05
основной размер или основное место
12:07
занимают примеры того, как не расти,
12:10
надо отвечать на вопросы. И там есть и
12:12
примеры файлов, и примеры размышлений, и
12:14
примеры всего остального. Так что, если
12:16
вы пишете какой-то запрос к нейросети и
12:18
хотите сделать какой-то похожий промт,
12:21
то не забывайте, больше информации
12:23
всегда лучше. И эта информация должна
12:25
быть структурирована. И в самом конце,
12:27
потому что промт большой и нейросея, у
12:30
неё, конечно, контекст большой
12:31
поддерживается, но некоторые вещи ей
12:33
надо постоянно напоминать. Поэтому здесь
12:35
в конце у нас есть напоминалка, которая
12:38
вкратце описывает всё то, что было
12:40
написано выше, без примеров и большими
12:43
буквами ещё раз указывает нейрости, как
12:45
ей себя
12:47
вести. Я очень часто получаю вопросы: «А
12:50
посоветую какой-нибудь курс? А есть ли
12:52
какая-то классная программа?» Потому что
12:53
многие из вас понимают, что
12:55
самообучаться — это достаточно долго, а
12:57
если воспользоваться услугами какой-то
12:59
платформы, то можно как будто бы намного
13:01
быстрее получить работу в IT. И я
13:03
никогда вам ничего не советовал, потому
13:05
что сам не проходил и даже не видел эти
13:06
курсы. Но мне в какой-то момент стало
13:08
интересно, и я нашёл вот эту вот
13:11
нашумевшую школу F school от Влада
13:13
Мишустина, ещё одного блогера, который и
13:15
снимает на YouTube, и живёт в
13:17
Амстердаме. Я написал Владу, он мне
13:19
ответил, мы с ним созвонились, и он
13:20
показал мне всю платформу и программу
13:23
обучения, а также дал доступ на сутки
13:25
для того, чтобы я самостоятельно мог с
13:27
ней ознакомиться. Поэтому сейчас я вам
13:29
честно расскажу, что я там увидел. Если
13:31
вы не знаете, Влад — это Java
13:33
разработчик, который более 6 лет уже в
13:36
IT. И он, как и я, из небольшой
13:38
провинции. Если я из маленького города,
13:40
то он из деревни. И у него, как и у
13:42
меня, в детстве или в юности не было
13:44
возможности заниматься IT там, где он
13:46
рос. Поэтому он в какой-то момент
13:49
приехал в Амстердам и работал в Убере.
13:51
Он также ведёт крутой канал. Вы можете
13:52
всегда найти его в поиске Ютуба. Вот
13:55
здесь выше должна быть форма для ввода.
13:58
И там вы найдёте много интересной
13:59
информации и видео, как для начинающих
14:01
Java разработчиков, так и в целом для
14:03
разработчиков на всяких других языках
14:05
программирования. Но давайте вернёмся к
14:06
программе. Так вот, я был удивлён,
14:08
насколько она подробная, сколько там
14:10
всяких мелких вещей и нюансов, про
14:12
которые очень часто не говорят. Ну а так
14:14
как это не просто курс а буotткampм, то
14:16
там прямо настоящее погружение в
14:18
разработку. Здесь тебе и скрам, и жира,
14:22
и использование нейросетей, и все
14:24
процессы, как в настоящей компании,
14:26
которая занимается разработкой
14:27
программных продуктов. Я посмотрел
14:29
видео, полистал презентации, и мне стало
14:31
понятно, почему Влад говорит, что он
14:33
объясняет сложные вещи простыми словами.
14:35
Вместо скучной теории 80% времени на
14:39
буткэмпе посвящено практике. Поэтому вы
14:41
можете всё, что вы там делаете, добавить
14:43
к себе в LinkedIin, в резюме или куда
14:45
угодно, как опыт разработки. Также у них
14:48
есть карьерный центр, который работает и
14:49
с действующими студентами, и с
14:51
выпускниками Буткэмпа. Там проходит и
14:53
МОК интервью, и рекомендации по
14:56
составлению резюме, и как подавать себя,
14:58
когда у вас собеседование. В общем,
15:00
полный набор услуг для того, чтобы
15:03
помочь вам со стартом вашей карьеры. Так
15:05
что вот моё честное мнение. Если вы
15:07
хотите выучить Java и побыстрее найти
15:09
работу, то этот буткэмп как раз для вас.
15:11
Среднее время получения работы тем, кто
15:14
обучается на буткмпе, от 3 х до 5
15:16
месяцев. Средний чек около 202.000 руб.
15:20
Это примерно 2.000 евро. И, конечно же,
15:23
если вы перейдёте по ссылке, которая
15:25
расположена здесь ниже под кнопкой в
15:27
описании, и введёте промокод LAR 10, то
15:30
получите ещё дополнительную
15:31
десятипроцентную скидку. Так как это
15:33
предложение действует всего лишь сутки,
15:35
то поторопитесь перейти по ссылке ниже.
15:37
И можете даже попросить у куратора
15:38
провести вам такую же экскурсию, как
15:40
была проведена для меня. Это позволит
15:42
вам убедиться, что Bootcamp подходит
15:44
именно для вас, что там действительно
15:46
всё так, как я описывал. Ну и, конечно
15:48
же, подписывайтесь на канал Влада
15:49
Мишустина, там много всякой классной
15:51
информации для начинающих
Запрос в Windsurf IDE
15:54
разработчиков. Ну а теперь давайте
15:57
поговорим про WiнсF. новый редактор кода
16:00
от CDum, от ребят из CDum, который
16:03
набирает популярность и поговорили, что
16:05
он сейчас иногда даже лучше, чем курсор,
16:07
о котором мы поговорим чуть позже. И
16:09
здесь у нас есть два файла. Первый —
16:11
это, собственно, промт, а второй — это
16:13
описание инструментов, которые LLM может
16:15
использовать. И это отличает
16:18
winsf, например, от LAVLE, где мы не
16:20
видели информации про инструменты.
16:22
Начало плюс-минус похоже. Мы снова чётко
16:24
указываем нейросети, кем она будет. В
16:27
данном случае она будет coding
16:29
assistant, powerful agentic AI coding
16:32
assistant, то есть очень мощная и для
16:36
написания кода, которое используют
16:38
агентские функции. И также мы можем
16:40
увидеть здесь, что у нас появляются тоже
16:44
слова, написанные большими буквами. То
16:46
есть опять-таки это как будто
16:47
подтверждает информацию о том, что если
16:49
ты пишешь capitalized, то есть все буквы
16:51
большие, то и больше внимания обращает
16:55
на эти слова. Я не думаю, что есть смысл
16:56
всё писать большими буквами, потому что
16:58
тогда всё будет равнозначно и не будет
17:00
ничего важного и
17:01
неважного. Дальше мы видим, у нас
17:03
появляются important штуки, где мы в
17:06
самом начале нейро в Wнсurf говорим, что
17:08
она может использовать там, например,
17:10
инструменты только в случае экстренной
17:12
необходимости. И мы видим never большими
17:14
буквами, important большими, user
17:16
большими. Выделяем важные моменты
17:20
капитал капиталом.
17:22
Capitalized не прописные, а заглавные
17:24
буквы. Я вспомнил, как это по-русски.
17:26
Дальше у
17:28
нас много-много всякой информации, и мы
17:31
можем увидеть здесь в описании снова
17:33
очень важную какую-то часть. Она не
17:36
просто написана большими буквами, она
17:38
ещё и выделена жирным в маркдауне,
17:41
потому что нейросети, если вы отдаёте им
17:43
команды, написанные с помощью маркдауна,
17:45
они понимают, где там жирные, где там
17:47
ссылки и так далее. Поэтому маркдаун
17:49
можно непосредственно использовать. И
17:50
здесь мы с помощью жирного и заглавных
17:53
букв выделяем, что это критическая
17:56
информация для работы нейросети. И мы
17:58
рассказываем о том, что она должна
18:00
предоставлять краткое содержание того,
18:02
как она думала и какие изменения она
18:04
внесла. Должна запускать команды в
18:07
терминале, если они релевантны и
18:10
пользовательские требования как бы
18:13
необходимы или требуют того, чтобы
18:15
что-то выполнялось в терминале и так
18:17
далее. Затем мы также говорим информацию
18:20
о файлах, которые хотим использовать. И
18:22
вот здесь тоже достаточно интересно,
18:24
потому что мы можем увидеть, что здесь в
18:25
команде указано: «Создай файл
18:28
routs.py» и добавь ему
18:32
endpиты. То есть как будто бы у нас
18:35
сразу указывается, что это будет Python
18:37
приложение, да? выше, что мы мы можем
18:40
увидеть, что мы говорим о Python
18:42
приложении, которое охранит фотографии,
18:45
как пример того, что может делать а
18:48
Winurf. И наверняка Winсurf, или даже не
18:50
наверняка, люди используют для того,
18:51
чтобы писать на разных языках
18:52
программирования. Но пример внутри
18:54
написаны для питона и для джаваскрипта,
18:57
так что как будто бы Pпитоon и
18:59
JavaScript лучшие языки
19:00
программирования, на которых нейросеть в
19:02
данный момент в винсрфе может писать.
19:04
Опять-таки видим различную разметку,
19:07
такие штуки, похожие на теги в HTМ,
19:10
которые необходимо нейрасти для того,
19:12
чтобы выделять одни логические куски
19:15
промта от других логических кусков. И,
19:17
например, у нас есть Memory System.
19:19
Здесь мы описываем, как нейросеть должна
19:22
помнить информацию, которую она дальше
19:24
использует. И как будто бы ничего
19:27
особенного здесь нет, кроме инструментов
19:30
и того, что здесь нет примеров файлов.
19:33
Да-да, у нас здесь нету примеров того,
19:35
как файлы должны быть структурированны
19:37
выглядеть. То есть мы не ограничиваем
19:39
нейросеть в языках программирования, в
19:41
инструментах и фреймворках, в отличие
19:43
от, например, lavable. Мы можем привести
19:45
ей какой-то пример на каком-то языке
19:47
программирования, но не говорим, что ты
19:49
создаёшь только jз файлы или
19:50
только-файлы или только HTML-файлы. Ты
19:53
делаешь всё, что хочешь на любом языке
19:55
программирования. И следующее отличие —
19:58
это то, что, как я уже говорил, здесь
19:59
есть инструменты. Нам нужно дать примеры
20:01
использования инструментов. И вы можете
20:03
увидеть здесь эти примеры. Мы говорим,
20:06
что у нас есть описание инструментов и
20:09
XML-формат того, как должны выглядеть
20:12
запросы и ответы. Мы можем увидеть здесь
20:15
все эти примеры. Однако ещё для этого
20:17
есть отдельный файл. Мы к нему вернёмся.
20:19
И после того, как мы увидим примеры всех
20:21
инструментов, а их здесь достаточно
20:25
много, мы видим дальнейшие инструкции по
20:28
работе с
20:29
файлами и по запуску. Например,
20:32
использовать только один инструмент. Мы
20:34
запускаем и так далее. Вы видите,
20:36
много-много инструкций, а, с примерами
20:40
того, где брать пути к файлам, как их
20:43
использовать, какие переменные должны
20:45
быть использованы. Опять-таки
20:46
много-много много контекста и
20:48
информации. И в конце 4 мы приводим то,
20:52
как надо завершить ответ пользователю.
20:54
Можно сказать, что всё хорошо, я всё
20:56
закончил. Или если будет какая-то
20:58
ошибка, сказать: «Всё плохо, я не смог
20:59
вот этого вот сделать». Всего 131
21:02
строчка. Файл меньше, в 10 раз меньше,
21:04
чем то, что было для Lavable. Но
21:06
повторюсь, у нас здесь есть инструменты.
21:08
Инструмент достаточно интересная штука.
21:10
Это функции, которые общаются с внешним
21:12
IP, например, и которые нейросети могут
21:14
вызывать. И описание этих инструментов
21:16
тоже достаточно подробное, потому что
21:18
оно должно показывать и как выглядит
21:20
запрос, и как выглядят ответы.
21:23
Смотрите, файл с Джейсоном внутри
21:26
название инструмента, схема того, как мы
21:30
можем взаимодействовать с этим
21:32
инструментом. Например, мы указываем,
21:34
что мы используем JSON для
21:36
взаимодействия, что у нас есть URL. URL
21:39
это то место, куда мы будем делать
21:40
запросы, что у нас есть описание
21:43
какое-то того, что в этих запросах
21:44
будет, дополнительные свойства, если они
21:47
есть, тип данных, которые мы получим, и
21:49
обязательно или не обязательно мы должны
21:51
передавать определённые поля. Также есть
21:53
отдельное ещё описание того, что,
21:56
собственно, умеет делать этот инструмент
21:57
для того, чтобы нейросеть понимала,
21:59
когда его проверять. И таких
22:01
инструментов у нас много. Например, у
22:03
нас есть браузер preview для того, чтобы
22:04
мы могли показать результат того, что мы
22:07
сделали. Если это веб-страница,
22:09
плойстатус для того, чтобы посмотреть,
22:11
задеплоилось наше приложение или нет,
22:13
поиск по кодовой базе, потому что
22:16
нерости, как и человеку, разработчику,
22:17
надо иногда найти, где и что находится.
22:20
Затем у нас есть статус какой-то
22:22
определённой команды, если мы её
22:23
выполняем, создать память, то есть
22:25
сохранить что-то временно в память для
22:27
того, чтобы переиспользовать в контексте
22:29
и не давать это снова внутри промта, то
22:32
есть уменьшить размер промта.
22:35
Webup — это команда, которая позволяет
22:36
нам задеплоить и так далее. И вы можете
22:38
увидеть, что возможность использовать
22:41
инструменты позволяет нам упростить
22:43
основной промом. А всю работу по
22:46
созданию файлов, по деплою, по каким-то
22:49
ответам пользователей и так далее мы
22:51
можем переложить в описание
22:52
инструментов, которые lm будет
22:54
использовать, тех самых тулзов. Таким
22:56
образом, мы можем в промте или только
22:59
необходимо это уз использовать самим
23:01
промтом или все, если надо. Тем самым мы
23:03
можем регулировать размер промта, а это
23:07
позволит нам экономить деньги при
23:08
обращении с API LLM, потому что и размер
23:12
токенов в запросе, и размер токенов в
23:13
ответе влияет на то, сколько вы за всё
23:15
это заплатите. Ну а теперь курсор. Это
Запрос в редакторе Cursor AI
23:19
самый популярный сегодня и редактор
23:22
кода, тот, о котором больше всего
23:24
говорят, тот, который появился одним из
23:26
первых. И его задача состоит в том, что
23:28
он вам с нуля может сделать всё
23:30
приложение. Вы отдаёте ему описание
23:31
продукта, который хотите сделать, а он,
23:33
используя нейросети и свой собственный
23:36
пром, за вас всё это делает. К
23:38
сожалению, как мне кажется, у нас есть
23:40
не вся информация. Например, у нас нету
23:42
описания инструментов, которые там
23:43
используются, но у нас есть промт. Это
23:46
очень маленький промт, который состоит
23:48
всего из 62 строк. И давайте внимательно
23:51
посмотрим на этот промт, потому что он
23:53
очень похож на то, что мы видели раньше.
23:55
Во-первых, сначала мы точно указываем
23:57
нейросети, в качестве кого она
23:59
выступает. И в данном случае у нас тоже
24:01
кодин assistent, который использует
24:03
Cloudсо. Здесь мы ещё и знаем, какая
24:05
нейросеть у нас используется или какая
24:07
lm у нас используется. И дальше мы
24:10
описываем задачи. То есть опять-таки ты
24:12
помогаешь пользователю сделать
24:14
приложение, всё программируешь, создаёшь
24:16
файлы и так далее. Заметьте, что и здесь
24:18
у нас тоже есть слова, написанные
24:20
большими буквами, не только usеer. Вот
24:22
вам и never с жирным текстом вокруг, и
24:25
always. Так что мы можем в очерёдный раз
24:28
убедиться, что даже Cloud Sonet
24:31
понимает, что если что-то написано
24:32
большими буквами, то это что-то важное.
24:34
А если что-то выделено двойными
24:36
звёздочками с двух сторон, что
24:37
обозначает жирные в маркдауне, то это
24:39
ещё более важная вещь. И затем в нашем
24:41
промте мы видим чуть больше информации о
24:43
том, как пользоваться инструментами. Да,
24:45
мы знаем, что у нас тоже будут
24:47
инструменты, но, как я уже сказал, у нас
24:48
нет отдельного файла их описывающего.
24:50
Тоже говорим, что инструменты надо
24:52
использовать только в случае
24:53
необходимости и так далее. И если мы их
24:55
используем, то сначала объясняем
24:57
пользователю, зачем мы это делаем и
24:59
почему мы не можем этого сделать без
25:00
дополнительных инструментов. Так как
25:02
нейросеть выполняет сразу несколько
25:03
функций, то каждая функция описана
25:05
отдельно. Например, внесение изменений в
25:08
код. Пожалуйста. Условия для этого.
25:09
Опять-таки жирным выделено экстремально.
25:12
Затем поиск и чтение, потому что надо
25:15
искать внутри файлов и читать оттуда
25:17
данные. Поэтому мы тоже подробно
25:18
описываем, как это должно работать. И
25:20
дальше у нас есть функции. И функции —
25:22
это буквально те тузы, которые можно
25:24
использовать просто с описанием. В
25:26
данном случае нет у нас ни примеров
25:28
ответов, ни примеров запросов, ни даже
25:30
названий этих функций. Есть просто
25:32
функция такая-то делает
25:35
то-то. Описание того, какие параметры
25:38
там могут приходить и так далее. И
25:40
функций здесь много для абсолютно разных
25:42
целей. Например, предложить команду, ещё
25:44
что-то. И эти функции просто, как вы
25:47
видите, даже не разделены. То есть они
25:49
не находятся у нас в каком-то JSON
25:50
формате и так далее. И это важная часть.
25:53
Дело в том, что когда вы пишете пром для
25:55
нейросети, для lm, то вам не обязательно
25:57
делать там абзацы, писать что-то
25:59
списками и так далее. Это может быть
26:01
просто один большой абзац текста, где
26:03
предложения идут друг за другом, даже
26:05
если они логически как-то разделяются. И
26:07
если вам хочется внести логическое
26:09
разделение, чтобы LLM знала, что это не
26:11
один абзац текста, а внутри есть
26:13
какие-то определённые логические блоки,
26:15
вы просто оборачиваете их в подобие
26:17
HTML-тегов.
26:19
Таким образом, нейросеять или LLM будет
26:21
знать, внутри вот этих тегов одна
26:23
логическая цепочка каких-то данных,
26:25
внутри вот других тегов какая-то другая
26:27
логическая информация. И после того, как
26:29
мы описали эти функции, у нас есть ещё
26:31
парочка дополнительных инструкций. Плюс
26:34
здесь указывается версия операционной
26:36
системы пользователя. И это надо,
26:38
кстати, для того, чтобы и терминал
26:39
правильно использовать, и библиотеки
26:41
необходимые устанавливать, и так далее.
26:43
И меня, кстати, удивляет, что чего-то
26:45
подобного мы не видели ни в Винсрфе, ни
26:47
в Lavable, потому что Wнсрf, например,
26:50
тоже запускается на локальном
26:51
компьютере, и ему было бы неплохо знать,
26:53
в какой системе он запущен. Если вы сами
26:55
хотите посмотреть на все вот эти промты
26:58
и, может быть, даже что-то там
26:59
переиспользовать или утянуть себе, то
27:01
ссылку на них все я размещу ниже под
27:04
кнопкой в описании. Там есть не только
27:06
Vрf, курсор и Lavable, там есть и Davin,
27:09
и Vinol, и даже агенты для VS-кода.
27:11
Поэтому, если вам прямо очень интересно,
27:13
можете поковыряться, сделать себе форк,
27:15
чтобы это никто не удалил и так далее. Я
27:17
считаю также важным отметить то, что
27:19
некоторые из компаний Чимпромты попали в
27:21
этот репозиторий, сказали, что это не их
27:23
промты. Но так как другие фирмы и
27:26
проекты промолчали, то, скорее всего, их
27:30
промты действительно сюда попали. А
27:32
значит, и те, кто отнекивается, просто
Заключение
27:33
не хотят признаваться, что их
27:35
интеллектуальная собственность доступна
27:38
всем. เฮ
27:51
[музыка]

