WEBVTT
00:00:00.199 ⇒ 00:00:05.080
Так. Ага.
00:00:02.919 ⇒ 00:00:07.839
Всем привет. Я так фантазирую, что у нас
00:00:05.080 ⇒ 00:00:11.480
сегодня будет такой стрим, что Вася
00:00:07.839 ⇒ 00:00:14.879
работает, а мы смотрим и, а, вникаем в
00:00:11.480 ⇒ 00:00:18.600
это. И Вася ещё поясняет, потому что,
00:00:14.879 ⇒ 00:00:20.199
во-первых, хочется сказать, а что Вася
00:00:18.600 ⇒ 00:00:22.359
сделал кучу предварительной работы, и
00:00:20.199 ⇒ 00:00:24.279
это показывает, что мы можем наработками
00:00:22.359 ⇒ 00:00:26.119
других разработчиков пользоваться.
00:00:24.279 ⇒ 00:00:28.439
Наверное, для этого весь GitHub и
00:00:26.119 ⇒ 00:00:29.960
существует. То есть, э, в современности
00:00:28.439 ⇒ 00:00:32.239
с нуля разрабатывать, мне кажется,
00:00:29.960 ⇒ 00:00:35.280
вообще не надо. То есть не то, что, ну,
00:00:32.239 ⇒ 00:00:37.280
ради только интереса, а начинать с нуля
00:00:35.280 ⇒ 00:00:40.600
- это не самая лучшая идея. Лучше
00:00:37.280 ⇒ 00:00:42.280
потратить время на поиск того, кто может
00:00:40.600 ⇒ 00:00:44.320
сильно забустить старт проекта. Это,
00:00:42.280 ⇒ 00:00:46.120
во-первых. И вот Василий нам предложит
00:00:44.320 ⇒ 00:00:49.039
такой болерпateт
00:00:46.120 ⇒ 00:00:52.960
для старта. А второе, мы посмотрим
00:00:49.039 ⇒ 00:00:54.760
сегодня, как делают разработку
00:00:52.960 ⇒ 00:00:55.960
несколько агентов, соревнуясь в
00:00:54.760 ⇒ 00:00:59.399
некотором смысле друг с другом,
00:00:55.960 ⇒ 00:01:02.399
дополняя. И это у нас будет такое шоу.
00:00:59.399 ⇒ 00:01:04.799
Мы так будем смотреть, как Василий ими
00:01:02.399 ⇒ 00:01:06.960
дирижирует. И это покажет, ну, у нас
00:01:04.799 ⇒ 00:01:08.759
появятся такие данные отчасти
00:01:06.960 ⇒ 00:01:12.080
субъективные, кто лучше справится, кто
00:01:08.759 ⇒ 00:01:14.759
хуже, кто будет тупить, какой агент
00:01:12.080 ⇒ 00:01:16.799
зайдёт, а, не знаю, в тупик или сделает
00:01:14.759 ⇒ 00:01:20.720
быстрее, у кого кончатся токены, потому
00:01:16.799 ⇒ 00:01:23.680
что, кажется, вот эти CLI, а, тулы
00:01:20.720 ⇒ 00:01:26.320
разработческие, они будут и будут
00:01:23.680 ⇒ 00:01:28.799
появляться, будут улучшаться, и стоит их
00:01:26.320 ⇒ 00:01:30.400
иметь в виду. То есть мы будем сидеть в
00:01:28.799 ⇒ 00:01:32.560
терминале,
00:01:30.400 ⇒ 00:01:34.479
наверное, перестанем его бояться и и
00:01:32.560 ⇒ 00:01:36.159
будем смотреть.
00:01:34.479 ⇒ 00:01:37.759
А что они пишут? В код, наверное, не
00:01:36.159 ⇒ 00:01:40.119
будем смотреть, как Вася говорил, что он
00:01:37.759 ⇒ 00:01:42.560
не смотрит в код. А куда будем смотреть?
00:01:40.119 ⇒ 00:01:44.320
Ну вот Василий нам и расскажет. Вот
00:01:42.560 ⇒ 00:01:48.479
передаю слово.
00:01:44.320 ⇒ 00:01:51.640
Да, привет всем. Э сегодня буду
00:01:48.479 ⇒ 00:01:52.960
показывать, как я работаю сFу. Для тех,
00:01:51.640 ⇒ 00:01:54.920
кто уже был в прошлый раз, немножечко
00:01:52.960 ⇒ 00:01:57.240
закрепим каки-то материалы, но глубоко
00:01:54.920 ⇒ 00:01:59.880
не пойдём. А, расскажу, как я
00:01:57.240 ⇒ 00:02:02.320
подготавливаюсь к работе, покажу свои
00:01:59.880 ⇒ 00:02:05.680
наработки и будем тестировать разных
00:02:02.320 ⇒ 00:02:08.119
агентов. Цель сегодня за час сделать
00:02:05.680 ⇒ 00:02:09.520
рабочий САС продукт,
00:02:08.119 ⇒ 00:02:11.879
который действительно будет рабочий. Не
00:02:09.520 ⇒ 00:02:14.560
просто прототип в болте, а что-то такое
00:02:11.879 ⇒ 00:02:17.760
по-настоящему, что можно уже там как MVP
00:02:14.560 ⇒ 00:02:21.239
показывать инвесторам. Э, простая задача
00:02:17.760 ⇒ 00:02:23.560
будет довольно-таки м такой сервис
00:02:21.239 ⇒ 00:02:26.760
документации,
00:02:23.560 ⇒ 00:02:29.760
а, ассистент, который будет знать
00:02:26.760 ⇒ 00:02:33.160
какую-то базу компании, там, кодовую или
00:02:29.760 ⇒ 00:02:35.760
ещё какую-то, мы сами скажем. И этот
00:02:33.160 ⇒ 00:02:38.680
ассистент будет как бы таким помощником
00:02:35.760 ⇒ 00:02:42.040
для нов прибывших сотрудников, будет им
00:02:38.680 ⇒ 00:02:44.440
подсказывать по какой-то базе знаний.
00:02:42.040 ⇒ 00:02:46.440
А, будем использовать рак. Может быть,
00:02:44.440 ⇒ 00:02:49.680
все уже слышали, что это есть такое
00:02:46.440 ⇒ 00:02:51.720
слово Rag retrieval argument generation.
00:02:49.680 ⇒ 00:02:53.920
И вот, наверное, начну с того, что
00:02:51.720 ⇒ 00:02:56.560
вообще расскажу, постараюсь простыми
00:02:53.920 ⇒ 00:02:58.400
словами, если будут вопросы, давайте
00:02:56.560 ⇒ 00:03:01.120
объяснить, что такое Retri Agent
00:02:58.400 ⇒ 00:03:03.840
Generation, как на его базе строятся
00:03:01.120 ⇒ 00:03:06.480
вообще AI продукты, и стартапы, потому
00:03:03.840 ⇒ 00:03:08.040
что сейчас, по сути, все AI стартапы
00:03:06.480 ⇒ 00:03:12.280
используют эту технологию. Она довольно
00:03:08.040 ⇒ 00:03:14.280
простая, ничего там сложного нет. Она
00:03:12.280 ⇒ 00:03:17.879
случилась, эта технология в связи с
00:03:14.280 ⇒ 00:03:19.640
ограничением нейронных сетей. И сейчас
00:03:17.879 ⇒ 00:03:21.239
множество есть реализации. Ну давайте
00:03:19.640 ⇒ 00:03:24.840
посмотрим
00:03:21.239 ⇒ 00:03:29.959
базово, что это такое.
00:03:24.840 ⇒ 00:03:31.920
Картинку нашёл. Сейчас вскрываюсь. Это
00:03:29.959 ⇒ 00:03:35.080
такая картинка. Сначала может показаться
00:03:31.920 ⇒ 00:03:38.120
что-то непонятным. Давайте разберёмся.
00:03:35.080 ⇒ 00:03:39.840
У нас есть какой-то этап даты. Dat
00:03:38.120 ⇒ 00:03:42.159
preparation, это подготовка документов.
00:03:39.840 ⇒ 00:03:44.760
То есть какие-то документы, пдфки,
00:03:42.159 ⇒ 00:03:47.319
статьи, любой текст, неважно.
00:03:44.760 ⇒ 00:03:49.280
Загружается, из него информация
00:03:47.319 ⇒ 00:03:51.120
достаётся.
00:03:49.280 ⇒ 00:03:54.000
Всё понятно, да? Дальше она разбивается
00:03:51.120 ⇒ 00:03:56.040
на какие-то чанки по смыслам, не знаю,
00:03:54.000 ⇒ 00:03:58.680
по страницам, по абзацам, на маленькие
00:03:56.040 ⇒ 00:04:02.319
кусочки. В общем, разбиваются. Обычно
00:03:58.680 ⇒ 00:04:04.200
там по абзацам разбивают чанки
00:04:02.319 ⇒ 00:04:06.159
и складывается.
00:04:04.200 ⇒ 00:04:08.319
базу знаний, но предварительно
00:04:06.159 ⇒ 00:04:13.200
происходит бединг. Наверное, тоже
00:04:08.319 ⇒ 00:04:13.200
слышали про такое слово где-то, если
00:04:13.360 ⇒ 00:04:17.880
так или иначе работали. Вот бединг - это
00:04:15.720 ⇒ 00:04:19.680
такой процесс интересный. Давайте сейчас
00:04:17.880 ⇒ 00:04:21.400
простыми словами рассказать, что это
00:04:19.680 ⇒ 00:04:23.759
такое.
00:04:21.400 ⇒ 00:04:25.720
Картинку пока не смотрите. Вот пытался
00:04:23.759 ⇒ 00:04:27.280
чатом GPT побронештормить, как просто
00:04:25.720 ⇒ 00:04:29.680
объяснить.
00:04:27.280 ⇒ 00:04:32.400
Вкратце бединг - это цифровой отпечаток
00:04:29.680 ⇒ 00:04:33.720
смысла. Мы берём какую-то фразу или
00:04:32.400 ⇒ 00:04:36.720
абзац.
00:04:33.720 ⇒ 00:04:38.320
и превращаем её в какой-то список чисел,
00:04:36.720 ⇒ 00:04:42.520
вектор.
00:04:38.320 ⇒ 00:04:44.880
И похожие по смыслу абзацы вещи, они
00:04:42.520 ⇒ 00:04:47.080
получают похожие вектора. То есть они
00:04:44.880 ⇒ 00:04:50.120
смотрят в одном направлении эти вектора,
00:04:47.080 ⇒ 00:04:52.479
и они лежат рядом. Поэтому, то есть, э,
00:04:50.120 ⇒ 00:04:55.080
можно представить себе это на примере
00:04:52.479 ⇒ 00:04:58.120
библиотеки, что у каждой книги есть своя
00:04:55.080 ⇒ 00:05:00.880
карточка с полями, жанр, тема, стиль. И
00:04:58.120 ⇒ 00:05:03.840
имбединг - это такая же карточка,
00:05:00.880 ⇒ 00:05:08.120
и только полей у неё там сотни тысяч, и
00:05:03.840 ⇒ 00:05:10.360
они часовые. И две карточки с похожими
00:05:08.120 ⇒ 00:05:13.440
полями лежат рядышком, значит, книги
00:05:10.360 ⇒ 00:05:15.240
похожи. То есть вот на примере
00:05:13.440 ⇒ 00:05:18.600
этой картинки можно увидеть здесь два
00:05:15.240 ⇒ 00:05:20.840
вектора, которые лежат рядом. Это
00:05:18.600 ⇒ 00:05:23.360
простая математика. То есть вот есть
00:05:20.840 ⇒ 00:05:25.960
один вектор А, есть вектор B. между ними
00:05:23.360 ⇒ 00:05:29.319
маленький угол, то есть, ну, там
00:05:25.960 ⇒ 00:05:32.039
минимальный косинусное расстояние. Это
00:05:29.319 ⇒ 00:05:33.880
геометрия девятый класс. В целом ничего
00:05:32.039 ⇒ 00:05:35.479
такого сверхъестественного
00:05:33.880 ⇒ 00:05:38.120
там под капотом нет. Просто берётся
00:05:35.479 ⇒ 00:05:41.560
кость наное расстояние двух чисел, если
00:05:38.120 ⇒ 00:05:44.360
они двух векторов. Если оно минимальное,
00:05:41.560 ⇒ 00:05:46.759
значит, как бы по смыслу семантическому
00:05:44.360 ⇒ 00:05:49.720
эти два абзаца похожи. Они о чём-то
00:05:46.759 ⇒ 00:05:52.440
одном говорят. А вот этот вектор, он
00:05:49.720 ⇒ 00:05:55.759
далеко. Вот у него большой угол, значит,
00:05:52.440 ⇒ 00:05:57.479
он вообще про другое совершенно антоним
00:05:55.759 ⇒ 00:05:58.440
даже можно сказать, да? Там чем больше
00:05:57.479 ⇒ 00:06:00.400
этот угол, тем больше это
00:05:58.440 ⇒ 00:06:02.440
противоположное что-то. А похожие
00:06:00.400 ⇒ 00:06:05.800
синонимы, там слова могут лежать вот
00:06:02.440 ⇒ 00:06:08.319
практически рядом. Вот для чего это
00:06:05.800 ⇒ 00:06:10.120
нужно вообще?
00:06:08.319 ⇒ 00:06:12.240
Ну вот, допустим,
00:06:10.120 ⇒ 00:06:14.280
у нас есть обычный чат GPT. Мы там у
00:06:12.240 ⇒ 00:06:17.880
него можем хотим сделать вот
00:06:14.280 ⇒ 00:06:21.479
какую-нибудь систему, которая по FIQ
00:06:17.880 ⇒ 00:06:24.599
будет отвечать ээ
00:06:21.479 ⇒ 00:06:26.160
такой помощник ээ банковского
00:06:24.599 ⇒ 00:06:27.319
ассистента. Пользователь пишет в чат,
00:06:26.160 ⇒ 00:06:29.440
спрашивает: “У меня там что-то не
00:06:27.319 ⇒ 00:06:32.639
работает, но лмка не знает специфики
00:06:29.440 ⇒ 00:06:35.599
этого банка, не знает, что ему отвечать.
00:06:32.639 ⇒ 00:06:38.479
И скормить огромный документ в контекст
00:06:35.599 ⇒ 00:06:40.680
Лэмки, это очень сложно. Поэтому
00:06:38.479 ⇒ 00:06:42.280
используется как раз-таки ракбединг”.
00:06:40.680 ⇒ 00:06:46.639
Что происходит? Вот, как я и говорил, мы
00:06:42.280 ⇒ 00:06:49.120
разбиваем на абзацы и переводим текст в
00:06:46.639 ⇒ 00:06:52.599
вот эти вектора чисельные и складываем в
00:06:49.120 ⇒ 00:06:55.520
какую-то базу данных хранилище. Дальше
00:06:52.599 ⇒ 00:06:58.120
вопрос пользователя точно также
00:06:55.520 ⇒ 00:07:01.000
приводится к числовому вектору. Дальше
00:06:58.120 ⇒ 00:07:03.840
мы из этой базы знаний находим ближайшие
00:07:01.000 ⇒ 00:07:06.919
вектора. То есть есть вектор запроса, и
00:07:03.840 ⇒ 00:07:08.639
мы его как бы на графике ищем все
00:07:06.919 ⇒ 00:07:11.440
вектора, лежащие рядом, у которых
00:07:08.639 ⇒ 00:07:13.879
наименьший угол. Берём там
00:07:11.440 ⇒ 00:07:18.520
какое-то n число, допустим, 10 ближайших
00:07:13.879 ⇒ 00:07:20.639
векторов, наиболее подходящих по смыслу.
00:07:18.520 ⇒ 00:07:22.840
Это как бы операция, которая чисто
00:07:20.639 ⇒ 00:07:24.919
математическая, просто из базы данных
00:07:22.840 ⇒ 00:07:27.080
запросом достаём. То есть тут нету, не
00:07:24.919 ⇒ 00:07:30.199
тратятся токены. Токен тратятся только
00:07:27.080 ⇒ 00:07:30.919
на перевод текста в циферки.
00:07:30.199 ⇒ 00:07:32.520
Соответственно, это простая
00:07:30.919 ⇒ 00:07:34.680
математическая операция, как запрос из
00:07:32.520 ⇒ 00:07:37.120
базы данных. мы находим какое-то
00:07:34.680 ⇒ 00:07:40.120
количество этих абзацев близких по
00:07:37.120 ⇒ 00:07:42.800
смыслу, и уже эти абзацы, вот эти
00:07:40.120 ⇒ 00:07:45.479
релевантные, релевантная дата, мы уже
00:07:42.800 ⇒ 00:07:48.440
тогда отдаём в лмку. То есть мы говорим
00:07:45.479 ⇒ 00:07:50.639
про МТЕ, вот запрос пользователя, вот
00:07:48.440 ⇒ 00:07:52.840
релевантные куски из наших из нашей
00:07:50.639 ⇒ 00:07:55.560
документации, где-то в них может быть
00:07:52.840 ⇒ 00:07:57.840
ответ. Прочитай и дай ответ.
00:07:55.560 ⇒ 00:07:59.360
Соответственно,
00:07:57.840 ⇒ 00:08:01.599
МКА получает, скорее всего, только
00:07:59.360 ⇒ 00:08:04.440
релевантную информацию. Она там не
00:08:01.599 ⇒ 00:08:06.080
выдумывает, она берёт только отвечает на
00:08:04.440 ⇒ 00:08:09.280
ответ только из той информации, которая
00:08:06.080 ⇒ 00:08:12.319
у нас уже предварительно заготовлена.
00:08:09.280 ⇒ 00:08:14.159
Вот это что такое бединки вкратце вот
00:08:12.319 ⇒ 00:08:18.120
какую задачу мы сегодня будем решать.
00:08:14.159 ⇒ 00:08:20.159
Если есть вопрос сейчас по этой части,
00:08:18.120 ⇒ 00:08:23.879
скажите, дайте обратную связь. Понятно
00:08:20.159 ⇒ 00:08:27.520
ли я рассказал, старался? Можно проще.
00:08:23.879 ⇒ 00:08:29.800
Могу ещё попробовать проще.
00:08:27.520 ⇒ 00:08:32.440
Можно вот короткий вопрос по поводу
00:08:29.800 ⇒ 00:08:35.479
отображения информации в виде вектора. А
00:08:32.440 ⇒ 00:08:37.399
это упрощённая модель получается
00:08:35.479 ⇒ 00:08:41.120
информации. То есть вектор - это это
00:08:37.399 ⇒ 00:08:41.919
что? Это слово, это какой-то абзац.
00:08:41.120 ⇒ 00:08:44.320
Угу.
00:08:41.919 ⇒ 00:08:48.519
Что есть вектор? Что он обозначает?
00:08:44.320 ⇒ 00:08:54.560
вектор есть число, массив чисел, да,
00:08:48.519 ⇒ 00:08:57.880
набор разных чисел, где каждое число,
00:08:54.560 ⇒ 00:09:01.800
то есть представьте, что нам нужно взять
00:08:57.880 ⇒ 00:09:03.519
абзац текста. Изначально каждый кусочек
00:09:01.800 ⇒ 00:09:06.519
- это, скорее всего, абзац текста, да,
00:09:03.519 ⇒ 00:09:08.519
там или страница документа. Вот мы её
00:09:06.519 ⇒ 00:09:12.200
переводим в численное значение.
00:09:08.519 ⇒ 00:09:14.240
Как это работает? Ээ, внутри под капотом
00:09:12.200 ⇒ 00:09:16.880
есть там тысячи разных критериев,
00:09:14.240 ⇒ 00:09:20.440
например, не знаю, там разные
00:09:16.880 ⇒ 00:09:23.800
семантические смыслы, их тысячи. И мы
00:09:20.440 ⇒ 00:09:27.200
берём каждое слово, там, каждую фразу
00:09:23.800 ⇒ 00:09:29.800
меряем по этому сематическому смыслу.
00:09:27.200 ⇒ 00:09:33.040
Вот у каждой модельки есть свой эмбедр,
00:09:29.800 ⇒ 00:09:37.279
э, модель маленькая, которая переводит
00:09:33.040 ⇒ 00:09:42.560
текст в этот вектор, и она разбивает на
00:09:37.279 ⇒ 00:09:44.920
смыслы. То есть задача получить какое-то
00:09:42.560 ⇒ 00:09:47.600
какой-то набор чисел
00:09:44.920 ⇒ 00:09:49.640
таким образом, чтобы два синонима были
00:09:47.600 ⇒ 00:09:52.120
наиболее похожи между собой, два
00:09:49.640 ⇒ 00:09:54.839
вектора. А внутри там множество
00:09:52.120 ⇒ 00:09:57.480
критерией, сколько они там придумают. В
00:09:54.839 ⇒ 00:10:02.399
каждый имбедер по-своему работает. Э они
00:09:57.480 ⇒ 00:10:04.959
там берут, не знаю, ну, к примеру, а
00:10:02.399 ⇒ 00:10:07.800
какие-то смысловые критерии, да, вот как
00:10:04.959 ⇒ 00:10:10.000
в примере с книгами. Вот это жанр, тема,
00:10:07.800 ⇒ 00:10:12.920
стиль. Вот мы берём одну книжку, это
00:10:10.000 ⇒ 00:10:15.120
значит и делаем для неё карточку. Это
00:10:12.920 ⇒ 00:10:17.959
книга там Гарри Поттер, она по жанру
00:10:15.120 ⇒ 00:10:19.839
фантастика, по стилю там такое-то. Вот
00:10:17.959 ⇒ 00:10:23.120
мы сделали карточку. Вот этих вот
00:10:19.839 ⇒ 00:10:25.880
параметров может быть там тысячи. И вот
00:10:23.120 ⇒ 00:10:27.880
эта вот карточка - это и есть как бы
00:10:25.880 ⇒ 00:10:31.440
вектор этой книги. То есть это не само
00:10:27.880 ⇒ 00:10:34.480
содержание книги, а такое представление
00:10:31.440 ⇒ 00:10:37.440
её семантического смысла. И дальше мы
00:10:34.480 ⇒ 00:10:39.079
расставляем картотеку этих карточек. Там
00:10:37.440 ⇒ 00:10:41.560
говорим: “Вот фантастика будет лежать
00:10:39.079 ⇒ 00:10:43.959
вот на этой полочке.
00:10:41.560 ⇒ 00:10:45.680
А если это фантастика и у них ещё
00:10:43.959 ⇒ 00:10:47.600
какой-то другой параметр совпадает, то
00:10:45.680 ⇒ 00:10:49.240
они вот ещё ближе друг к другу. И вот
00:10:47.600 ⇒ 00:10:51.720
так мы на большом шкафу расставляем эти
00:10:49.240 ⇒ 00:10:54.160
карточки для книг. И потом мы сможем
00:10:51.720 ⇒ 00:10:56.680
быстро ориентироваться. там с
00:10:54.160 ⇒ 00:10:58.800
пришла к нам другая карточка
00:10:56.680 ⇒ 00:11:01.000
и в ней сказано, что там эта книга тоже
00:10:58.800 ⇒ 00:11:03.240
там про фантастику, и мы сразу знаем,
00:11:01.000 ⇒ 00:11:05.480
что вот а карточки про фантастику у нас
00:11:03.240 ⇒ 00:11:07.639
лежат вот на этой полке. Можно её туда
00:11:05.480 ⇒ 00:11:09.399
положить либо посмотреть, что на этой
00:11:07.639 ⇒ 00:11:12.600
полке лежат другие книги, уже сослаться
00:11:09.399 ⇒ 00:11:13.240
на сами книги.
00:11:12.600 ⇒ 00:11:14.639
Я хотел,
00:11:13.240 ⇒ 00:11:16.839
Спасибо большое.
00:11:14.639 ⇒ 00:11:18.519
Хотел добавить, ну, так коротко, что нам
00:11:16.839 ⇒ 00:11:20.240
сложно это представить, если честно,
00:11:18.519 ⇒ 00:11:23.040
потому что я вот на второй неделе
00:11:20.240 ⇒ 00:11:25.200
говорил про тысячемерное пространство.
00:11:23.040 ⇒ 00:11:27.200
Если мы возьмём понятие код, например,
00:11:25.200 ⇒ 00:11:29.639
мы можем взять координаты там животное,
00:11:27.200 ⇒ 00:11:31.720
домашнее и поставить типа он скорее
00:11:29.639 ⇒ 00:11:34.279
домашний и животный, да, там,
00:11:31.720 ⇒ 00:11:36.959
ну, или такие две оси поставить точку
00:11:34.279 ⇒ 00:11:38.240
или там пушистые и мяукающие можем
00:11:36.959 ⇒ 00:11:40.160
поставить,
00:11:38.240 ⇒ 00:11:43.200
а, и можем это представить. А если у нас
00:11:40.160 ⇒ 00:11:45.720
таких осей там 1500, то там
00:11:43.200 ⇒ 00:11:48.120
какие параметры пойдут в ход, например?
00:11:45.720 ⇒ 00:11:51.360
А, возьмём ещё, не знаю, десяток других
00:11:48.120 ⇒ 00:11:56.040
языков. Он в пространстве и там кац
00:11:51.360 ⇒ 00:11:58.079
иметь точку. А, да. А, а ещё какие-то
00:11:56.040 ⇒ 00:12:00.279
я не знаю, какие модель выделяет
00:11:58.079 ⇒ 00:12:03.639
существенные параметры, но таким образом
00:12:00.279 ⇒ 00:12:07.560
упаковывается целый кусок смысла. И там,
00:12:03.639 ⇒ 00:12:10.560
а, можно вот в этом абзаце выделить
00:12:07.560 ⇒ 00:12:13.480
ключевые слова, да, токинизировать их и
00:12:10.560 ⇒ 00:12:17.639
присвоить целому, не знаю, смысловому
00:12:13.480 ⇒ 00:12:18.959
куску а вот ряд чисел. И каким образом
00:12:17.639 ⇒ 00:12:21.839
это происходит, я не знаю, но это
00:12:18.959 ⇒ 00:12:22.800
называет, ну, вот имбединг получается. А
00:12:21.839 ⇒ 00:12:25.279
как
00:12:22.800 ⇒ 00:12:27.639
как как модель решает, по каким осям
00:12:25.279 ⇒ 00:12:27.920
раскладывать? Не знаю, Вась, может, ты
00:12:27.639 ⇒ 00:12:30.639
знаешь.
00:12:27.920 ⇒ 00:12:33.079
Это чёрный ящик, да. Это, ну, у каждого
00:12:30.639 ⇒ 00:12:35.360
своё. Это код не открытый.
00:12:33.079 ⇒ 00:12:36.560
Это довольно уже сложная задача. Нам это
00:12:35.360 ⇒ 00:12:38.000
на самом деле не важно. Я просто пытался
00:12:36.560 ⇒ 00:12:40.639
объяснить так, чтобы было понятно, но
00:12:38.000 ⇒ 00:12:42.399
это может быть даже, то есть важно, что
00:12:40.639 ⇒ 00:12:45.240
есть какой-то абзац, и его можно
00:12:42.399 ⇒ 00:12:48.320
привести в какой-то вектор.
00:12:45.240 ⇒ 00:12:50.360
Вектора ээ близкие к друг другу,
00:12:48.320 ⇒ 00:12:52.959
соответственно, по смыслу похожие. Таким
00:12:50.360 ⇒ 00:12:55.639
образом, мы можем оперировать огромным
00:12:52.959 ⇒ 00:12:57.760
количеством информации. У нас в chatчат
00:12:55.639 ⇒ 00:13:00.199
GPT там влазиет там контекстное окно
00:12:57.760 ⇒ 00:13:02.360
несколько тысяч. Там у Gнаi миллионный
00:13:00.199 ⇒ 00:13:05.120
контекст, но это максимум. мы не сможем
00:13:02.360 ⇒ 00:13:08.000
там пять книжек войны и мир загрузить
00:13:05.120 ⇒ 00:13:11.639
сразу в контекстное окно. Поэтому, чтобы
00:13:08.000 ⇒ 00:13:14.399
искать что-то в огромной базе знаний,
00:13:11.639 ⇒ 00:13:17.560
нам нужен мembдинг,
00:13:14.399 ⇒ 00:13:20.880
чтобы привести, ну, чтобы находить как
00:13:17.560 ⇒ 00:13:22.800
бы по семантически похожие фразы
00:13:20.880 ⇒ 00:13:26.040
довольно легко и дёшево, просто обычным
00:13:22.800 ⇒ 00:13:27.279
запросом. Вот в числах можно брать
00:13:26.040 ⇒ 00:13:29.240
похожие два числа, значит,
00:13:27.279 ⇒ 00:13:31.560
по-симатически эти две фразы будут
00:13:29.240 ⇒ 00:13:34.120
похожи. Вот такую задачу это решает. Вот
00:13:31.560 ⇒ 00:13:36.399
это, наверное, самое важное. А ещё у
00:13:34.120 ⇒ 00:13:40.600
меня такой вопрос. Вот мы эмбедим, ну,
00:13:36.399 ⇒ 00:13:43.240
этих эмбедеров там десятки моделей, а
00:13:40.600 ⇒ 00:13:45.440
моделей, не знаю, там сотни. И каким
00:13:43.240 ⇒ 00:13:47.320
образом тот эмбединг, который мы абзац
00:13:45.440 ⇒ 00:13:50.160
текста получаем, он становится как бы
00:13:47.320 ⇒ 00:13:51.720
родным внутри лэмки, да? Можем ли мы
00:13:50.160 ⇒ 00:13:53.360
перевести в такой вектор, который просто
00:13:51.720 ⇒ 00:13:55.440
там не приживётся, как бы, да, будет
00:13:53.360 ⇒ 00:13:58.360
другим по размерности, по семантике или
00:13:55.440 ⇒ 00:13:59.920
ещё по чему-то? Как нужно сочетать,
00:13:58.360 ⇒ 00:14:02.759
[музыка]
00:13:59.920 ⇒ 00:14:05.720
ну, сочетать лмку ибедер, потому что
00:14:02.759 ⇒ 00:14:08.440
одни эмбедеры дешёвые, быстрые, другие
00:14:05.720 ⇒ 00:14:10.720
глупые, не знаю, некоторые дорогие. Тут
00:14:08.440 ⇒ 00:14:13.240
же тоже выходит подбор и модели, и
00:14:10.720 ⇒ 00:14:15.279
самого Эмбедера.
00:14:13.240 ⇒ 00:14:18.040
Да, смотри, как это работает. Eдер - это
00:14:15.279 ⇒ 00:14:21.560
отдельная операция. Мы взяли текст,
00:14:18.040 ⇒ 00:14:24.399
перевели его в эмбединг, в вот эти
00:14:21.560 ⇒ 00:14:26.839
циферки, вектора. И у каждой модели есть
00:14:24.399 ⇒ 00:14:28.639
разные эмбедеры. Главное, что здесь
00:14:26.839 ⇒ 00:14:32.320
иметь, если мы выбрали один имбедер, то
00:14:28.639 ⇒ 00:14:35.240
мы всё им и имбедим. Если мы возьмём,
00:14:32.320 ⇒ 00:14:37.199
за имбедим от Open один кусок, а другие
00:14:35.240 ⇒ 00:14:39.079
другой кусок замбедим от, не знаю,
00:14:37.199 ⇒ 00:14:41.639
антропика, то эти два мбединга, они
00:14:39.079 ⇒ 00:14:44.120
вообще не сойдутся. Они про разные. У
00:14:41.639 ⇒ 00:14:45.720
каждой компании как бы свой бедер. Если
00:14:44.120 ⇒ 00:14:48.399
мы какой-то выбрали бедер, мы должны его
00:14:45.720 ⇒ 00:14:52.560
всегда использовать. А, отвечая на твой
00:14:48.399 ⇒ 00:14:55.199
вопрос дальше. Мы, когда нашли похожие
00:14:52.560 ⇒ 00:14:58.000
кусочки, то мы уже достали сам текст. В
00:14:55.199 ⇒ 00:15:01.680
лмку уже дальше пойдёт сам текст
00:14:58.000 ⇒ 00:15:03.720
документа, то есть не циферки.
00:15:01.680 ⇒ 00:15:05.560
И мы по циферкам только находим
00:15:03.720 ⇒ 00:15:07.959
ближайшие похожие, чтобы достать из
00:15:05.560 ⇒ 00:15:10.680
запроса пользователя и огромной базы
00:15:07.959 ⇒ 00:15:13.040
документов релевантные кусочки
00:15:10.680 ⇒ 00:15:15.560
информации. И когда мы вот достали их в
00:15:13.040 ⇒ 00:15:18.000
виде имбедингов, мы уже
00:15:15.560 ⇒ 00:15:21.240
приводим это обратно в текст, потому что
00:15:18.000 ⇒ 00:15:23.360
мы храним и текст, и имбединг. И вот мы
00:15:21.240 ⇒ 00:15:26.279
достали по циферкам, но подставили вмку
00:15:23.360 ⇒ 00:15:28.360
уже сам текст. Поэтому
00:15:26.279 ⇒ 00:15:30.839
неважно, какой мбидинг использовать, как
00:15:28.360 ⇒ 00:15:33.839
с лмкой сочетать, потому что всё равно в
00:15:30.839 ⇒ 00:15:36.440
лэмку уже пойдёт обычный текст. Но важно
00:15:33.839 ⇒ 00:15:37.839
выбрать один мбединг и на нём сидеть.
00:15:36.440 ⇒ 00:15:40.920
Либо, если переходить на другой, то
00:15:37.839 ⇒ 00:15:42.680
переделывать всё на другой мбединг, в
00:15:40.920 ⇒ 00:15:44.600
том числе те документы, которые уже были
00:15:42.680 ⇒ 00:15:47.399
загружены. А какой имбединг выбрать? Это
00:15:44.600 ⇒ 00:15:49.079
задача хорошая. И для этого обычно есть
00:15:47.399 ⇒ 00:15:50.920
бенчмарки, потому что под разные
00:15:49.079 ⇒ 00:15:53.279
бизнес-процессы
00:15:50.920 ⇒ 00:15:55.360
может лучше перформить тот или инойбедер
00:15:53.279 ⇒ 00:15:57.839
под разные задачи свой. Мы сегодня
00:15:55.360 ⇒ 00:15:59.440
возьмём там самый простой топ лайтовый
00:15:57.839 ⇒ 00:16:03.680
бедер. Они там бывают двумерные,
00:15:59.440 ⇒ 00:16:06.959
тримерные, но это уже задачи, которые
00:16:03.680 ⇒ 00:16:09.839
требуют там анализа. и тестов по
00:16:06.959 ⇒ 00:16:13.240
бенчмаркам, как будет лучше себя вести.
00:16:09.839 ⇒ 00:16:14.959
Потому что, например, есть специфика
00:16:13.240 ⇒ 00:16:16.560
какого-нибудь медицинского сегмента,
00:16:14.959 ⇒ 00:16:19.279
там, допустим, в медицинской теме там,
00:16:16.560 ⇒ 00:16:21.600
наверное, openй будет лучше имбедить, а
00:16:19.279 ⇒ 00:16:23.199
там в теме программирования, может быть,
00:16:21.600 ⇒ 00:16:25.839
антропиковская модель будет лучше
00:16:23.199 ⇒ 00:16:28.040
бедить. То есть это тоже есть для этого
00:16:25.839 ⇒ 00:16:28.600
разные бичмарки. Вот тут уже
00:16:28.040 ⇒ 00:16:30.199
Угу.
00:16:28.600 ⇒ 00:16:32.360
надо исходить из задачи.
00:16:30.199 ⇒ 00:16:35.279
Спасибо.
00:16:32.360 ⇒ 00:16:37.639
Ну и пойдём тогда разрабатывать. Вот я
00:16:35.279 ⇒ 00:16:39.920
тут подготовилхабе
00:16:37.639 ⇒ 00:16:44.240
для вас проектик,
00:16:39.920 ⇒ 00:16:46.160
называется coding starter. В нём я
00:16:44.240 ⇒ 00:16:49.920
у меня есть документация на русском. За
00:16:46.160 ⇒ 00:16:53.440
что? Вот это шаблон, в котором уже
00:16:49.920 ⇒ 00:16:56.360
подключен там фреймворк для разработки,
00:16:53.440 ⇒ 00:17:01.839
там NextJS. Я выбрал как такой самый
00:16:56.360 ⇒ 00:17:04.600
простой. Firebase - это база данных, э,
00:17:01.839 ⇒ 00:17:06.760
и авторизация, и аналитика. Это такой
00:17:04.600 ⇒ 00:17:08.199
сервис, э,
00:17:06.760 ⇒ 00:17:10.360
в котором есть всё. Я сейчас чуть дальше
00:17:08.199 ⇒ 00:17:13.760
покажу. В общем, я соединил несколько
00:17:10.360 ⇒ 00:17:15.520
разных технологий уже за вас, чтобы ни
00:17:13.760 ⇒ 00:17:17.240
выни агент не выбирал, описал
00:17:15.520 ⇒ 00:17:21.480
документацию,
00:17:17.240 ⇒ 00:17:24.559
а создал разные файлики для агентов. Вот
00:17:21.480 ⇒ 00:17:27.000
MD, да, это файл, который описывает, что
00:17:24.559 ⇒ 00:17:29.720
это за проект, какие команды там нужны
00:17:27.000 ⇒ 00:17:31.600
для запуска, для установки зависимости,
00:17:29.720 ⇒ 00:17:33.760
какие технологии тут используются там
00:17:31.600 ⇒ 00:17:37.880
для юа библиотеки, какой технологический
00:17:33.760 ⇒ 00:17:41.480
стак, где что лежит, как что хранить, а
00:17:37.880 ⇒ 00:17:45.520
какие перемены нужны, да, этот файл он
00:17:41.480 ⇒ 00:17:46.840
не для человека, он для агента. А, и так
00:17:45.520 ⇒ 00:17:49.640
как у нас сегодня будет множество разных
00:17:46.840 ⇒ 00:17:52.120
агентов, вот этот вообще формат агент
00:17:49.640 ⇒ 00:17:54.520
MD, он такой как бы универсальный
00:17:52.120 ⇒ 00:17:56.000
для того, чтобы разные агенты могли
00:17:54.520 ⇒ 00:17:58.720
работать с одним и тем же файлом. То
00:17:56.000 ⇒ 00:18:01.080
есть здесь у меня репозиторий
00:17:58.720 ⇒ 00:18:04.080
подразумевает, что вы можете как бы хоть
00:18:01.080 ⇒ 00:18:08.200
с Курсором работать, хоть там с Киро,
00:18:04.080 ⇒ 00:18:11.120
хоть ээ с Клодом, с Кадексом, с Джемни.
00:18:08.200 ⇒ 00:18:13.200
А, но вся информация будет храниться как
00:18:11.120 ⇒ 00:18:17.280
бы в одном файле, чтобы не для каждого
00:18:13.200 ⇒ 00:18:20.559
агента не писать такой файл. Все вот MD,
00:18:17.280 ⇒ 00:18:23.360
он ссылается как бы на этот агент, да?
00:18:20.559 ⇒ 00:18:26.320
То есть это источник правды для агентов,
00:18:23.360 ⇒ 00:18:30.919
для всех. Просто универсальный формат.
00:18:26.320 ⇒ 00:18:33.679
А вот сам проект
00:18:30.919 ⇒ 00:18:35.600
лучше всего там спулить, да, если умеете
00:18:33.679 ⇒ 00:18:40.000
там пользоваться, можно либо скачать
00:18:35.600 ⇒ 00:18:42.520
зипом и открыть на компьютере.
00:18:40.000 ⇒ 00:18:46.000
Когда вы его скачаете, там надо будет
00:18:42.520 ⇒ 00:18:48.000
сделать ещё один момент. Это добавить
00:18:46.000 ⇒ 00:18:50.280
инваменты переменные.
00:18:48.000 ⇒ 00:18:53.640
Вот есть Firebase.
00:18:50.280 ⇒ 00:18:56.440
Я уже создал проект тестовый.
00:18:53.640 ⇒ 00:18:59.280
Вот как он выглядит. Э-э, здесь я создал
00:18:56.440 ⇒ 00:19:01.120
приложение,
00:18:59.280 ⇒ 00:19:04.159
и
00:19:01.120 ⇒ 00:19:07.520
тут можно вот скачать, э, вот эти вот
00:19:04.159 ⇒ 00:19:10.880
значения. Нам понадобятся для
00:19:07.520 ⇒ 00:19:13.799
того, чтобы положить их в
00:19:10.880 ⇒ 00:19:17.400
файлик environment перемен.
00:19:13.799 ⇒ 00:19:20.480
Вот тут есть key, и так далее. И ещё
00:19:17.400 ⇒ 00:19:25.120
Open ключик я закинул, так как мы будем
00:19:20.480 ⇒ 00:19:27.720
работать с лмками. у нас будет продукт.
00:19:25.120 ⇒ 00:19:30.600
Вот это нам единственная подготовка,
00:19:27.720 ⇒ 00:19:33.000
которая нужна будет. Там в документации
00:19:30.600 ⇒ 00:19:35.200
тоже об этом написано. И что мы здесь
00:19:33.000 ⇒ 00:19:37.200
получим? В итоге уже сразу
00:19:35.200 ⇒ 00:19:39.240
преднастроенную авторизацию. Будем
00:19:37.200 ⇒ 00:19:44.039
видеть пользователи, которые зашли, их
00:19:39.240 ⇒ 00:19:46.240
ID. Можем видеть базу данных и по ней
00:19:44.039 ⇒ 00:19:49.679
ходить по полям базы данных в удобном
00:19:46.240 ⇒ 00:19:51.600
виде. Можно настроить аналитику сразу. У
00:19:49.679 ⇒ 00:19:53.280
нас получается такая будет админка
00:19:51.600 ⇒ 00:19:56.400
нашего продукта, в которой будет всё
00:19:53.280 ⇒ 00:19:57.400
сразу содержаться. Если мы подключим
00:19:56.400 ⇒ 00:20:00.360
аналитику, здесь будет какая-то
00:19:57.400 ⇒ 00:20:05.559
статистика, ивенты.
00:20:00.360 ⇒ 00:20:10.200
Вот это зачем нужен Firebase кратко. Ну
00:20:05.559 ⇒ 00:20:13.840
и давайте приступим к задаче.
00:20:10.200 ⇒ 00:20:16.039
Чтобы я много времени не тратил,
00:20:13.840 ⇒ 00:20:19.039
уже заранее написал какой-то небольшой
00:20:16.039 ⇒ 00:20:19.039
промт.
00:20:19.200 ⇒ 00:20:25.600
А я на самом деле не написал.
00:20:22.720 ⇒ 00:20:29.520
Скажем ему:
00:20:25.600 ⇒ 00:20:29.520
”Действуй как-менеджер
00:20:29.919 ⇒ 00:20:35.320
и напиши,
00:20:31.799 ⇒ 00:20:37.840
а project requirement документ для
00:20:35.320 ⇒ 00:20:40.840
разработчика для разработки вот такого
00:20:37.840 ⇒ 00:20:40.840
продукта”.
00:20:41.200 ⇒ 00:20:46.679
Важно в пронте это указывать
00:20:44.080 ⇒ 00:20:48.919
роль. И вот он.
00:20:46.679 ⇒ 00:20:50.480
Я писал документ SAS Smart Doc
00:20:48.919 ⇒ 00:20:53.280
Assistant, да, простое название какое-то
00:20:50.480 ⇒ 00:20:56.480
САС для стартапов, который загружает их
00:20:53.280 ⇒ 00:20:58.720
техническую документацию. И есть
00:20:56.480 ⇒ 00:21:02.520
страница, которая отвечает на вопросы
00:20:58.720 ⇒ 00:21:07.120
новых разработчиков вмокодовой базе.
00:21:02.520 ⇒ 00:21:07.120
Вот. И небольшие
00:21:07.840 ⇒ 00:21:12.600
описания. На самом деле можно и меньше,
00:21:10.000 ⇒ 00:21:14.880
просто
00:21:12.600 ⇒ 00:21:17.720
какое-то небольшое дать ему описание.
00:21:14.880 ⇒ 00:21:20.400
Вот так даже можно. Просто я чуть здесь
00:21:17.720 ⇒ 00:21:25.400
уточнил, чтобы мы точно успели за нашу
00:21:20.400 ⇒ 00:21:25.400
сессию. Я ему порезал скоп.
00:21:28.039 ⇒ 00:21:32.360
То есть, что я сейчас делаю? Я сейчас
00:21:29.320 ⇒ 00:21:33.960
создаю как бы техническое задание для
00:21:32.360 ⇒ 00:21:36.320
разработчика. Разрабатывать у нас будет
00:21:33.960 ⇒ 00:21:39.440
агент,
00:21:36.320 ⇒ 00:21:42.120
ну или разработчик с агента, да. Ну вот
00:21:39.440 ⇒ 00:21:44.360
нужно какое-то
00:21:42.120 ⇒ 00:21:46.520
чуть более подробное
00:21:44.360 ⇒ 00:21:50.919
описание.
00:21:46.520 ⇒ 00:21:53.080
Там ответ попишет какой-то.
00:21:50.919 ⇒ 00:21:55.559
Сейчас я вам скажу брать пример кода. Ну
00:21:53.080 ⇒ 00:21:58.559
или ладно, оставлю,
00:21:55.559 ⇒ 00:21:58.559
неважно.
00:22:09.360 ⇒ 00:22:12.919
Ну, в общем, получился какой-то
00:22:11.080 ⇒ 00:22:15.320
документ. Пока он долго пишет, я, на
00:22:12.919 ⇒ 00:22:16.840
самом деле, уже
00:22:15.320 ⇒ 00:22:22.799
здесь вот загружал такой похожий
00:22:16.840 ⇒ 00:22:26.039
документ. И вот покажу, как это было.
00:22:22.799 ⇒ 00:22:27.919
То есть сейчас я открыл курсор вам, но
00:22:26.039 ⇒ 00:22:29.799
только потому, что здесь просто удобнее
00:22:27.919 ⇒ 00:22:32.720
показать,
00:22:29.799 ⇒ 00:22:35.640
как это работает. Вот тот проект,
00:22:32.720 ⇒ 00:22:37.320
который мы с Гитхаба скопируем.
00:22:35.640 ⇒ 00:22:40.640
Если мы его откроем кодовом редакторе,
00:22:37.320 ⇒ 00:22:44.440
он будет выглядеть вот так.
00:22:40.640 ⇒ 00:22:46.960
В нём есть из важного это папочка план и
00:22:44.440 ⇒ 00:22:49.960
три файлика.
00:22:46.960 ⇒ 00:22:53.919
Что я делаю? Первым делом
00:22:49.960 ⇒ 00:22:57.640
я добавляю в контекст
00:22:53.919 ⇒ 00:23:00.760
а чата этот файлик generate перерыди и
00:22:57.640 ⇒ 00:23:02.440
скидываем ему какое-то описание задачи.
00:23:00.760 ⇒ 00:23:04.880
Это описание задачи, оно обычно у меня
00:23:02.440 ⇒ 00:23:06.120
сильно короче. Я просто там с ноги
00:23:04.880 ⇒ 00:23:09.080
залетаю, говорю: “Сделай мне то-то,
00:23:06.120 ⇒ 00:23:11.720
то-то”. В двух словах.
00:23:09.080 ⇒ 00:23:14.520
Здесь я просто чуть больше подготовился,
00:23:11.720 ⇒ 00:23:15.960
более подробно ему писал. Чем подробнее
00:23:14.520 ⇒ 00:23:18.559
вы описываете задачу, тем лучше
00:23:15.960 ⇒ 00:23:20.919
результат будет.
00:23:18.559 ⇒ 00:23:22.760
В результате чего в ответ на вот этот
00:23:20.919 ⇒ 00:23:27.559
мой промт,
00:23:22.760 ⇒ 00:23:27.559
он мне задал уточняющие вопросы.
00:23:28.200 ⇒ 00:23:32.720
Я на них должен был ответить, но я
00:23:30.960 ⇒ 00:23:35.320
сейчас ленивый. Я просто их сейчас
00:23:32.720 ⇒ 00:23:37.400
скопирую. Пусть нас решит наш проject
00:23:35.320 ⇒ 00:23:39.400
менеджер. Мы ему сказали, пусть он и сам
00:23:37.400 ⇒ 00:23:41.320
отвечает. Вот.
00:23:39.400 ⇒ 00:23:43.720
То есть нам project менеджер дал задачу,
00:23:41.320 ⇒ 00:23:45.440
мы ему задаём уточняющий вопрос.
00:23:43.720 ⇒ 00:23:49.120
Общается прокт-менеджер с программистом.
00:23:45.440 ⇒ 00:23:50.919
Программист не понял, что нужно сделать.
00:23:49.120 ⇒ 00:23:52.720
И вот
00:23:50.919 ⇒ 00:23:54.760
ответы на уточняющие вопросы. Вот он
00:23:52.720 ⇒ 00:23:56.919
генерирует. Пока он перирует, я вот
00:23:54.760 ⇒ 00:23:59.279
покажу, что
00:23:56.919 ⇒ 00:24:01.679
он точно так же мне ответил. То есть в
00:23:59.279 ⇒ 00:24:03.799
прошлый раз отличные вопросы для
00:24:01.679 ⇒ 00:24:06.720
уточнения. Здесь то же самое. Отличные
00:24:03.799 ⇒ 00:24:09.960
уточняющие вопросы.
00:24:06.720 ⇒ 00:24:14.240
Вот я дал ему ответы на эти вопросы. То
00:24:09.960 ⇒ 00:24:15.760
есть А1, B3. Тут специально таким
00:24:14.240 ⇒ 00:24:18.520
образом промт устроен, чтобы не
00:24:15.760 ⇒ 00:24:20.679
приходилось описывать всё ручками, а
00:24:18.520 ⇒ 00:24:24.679
просто морским боем выбираем там ответ
00:24:20.679 ⇒ 00:24:26.320
на вопрос а два там и так далее. Вопросы
00:24:24.679 ⇒ 00:24:27.960
типа уточняющие. Что делать, если
00:24:26.320 ⇒ 00:24:32.399
пользователь загружает документ с тем же
00:24:27.960 ⇒ 00:24:35.120
именем повторно? Ну какие-то корнеркейсы
00:24:32.399 ⇒ 00:24:36.600
какие-то нужно нам решить моменты. Здесь
00:24:35.120 ⇒ 00:24:41.080
я вообще ничего не решал. Вот у меня
00:24:36.600 ⇒ 00:24:43.720
была только задача. И она изначально
00:24:41.080 ⇒ 00:24:45.720
было описание её только бизнесовое,
00:24:43.720 ⇒ 00:24:47.279
никакого кода, никаких там примеров
00:24:45.720 ⇒ 00:24:49.080
кода.
00:24:47.279 ⇒ 00:24:50.799
Единственное, что я сказал, что формат
00:24:49.080 ⇒ 00:24:52.840
markдаdown.
00:24:50.799 ⇒ 00:24:55.080
И из такого важного я вам сказал, что
00:24:52.840 ⇒ 00:24:58.080
вот у меня MVP, и мне нужно за 30 минут
00:24:55.080 ⇒ 00:25:01.760
успеть всё это сделать, потому что я вот
00:24:58.080 ⇒ 00:25:03.039
сейчас во время живой демонстрации
00:25:01.760 ⇒ 00:25:04.760
я ему уточнил, чтобы он там не
00:25:03.039 ⇒ 00:25:07.880
разгулялся и мы успели с вами быстро
00:25:04.760 ⇒ 00:25:10.760
пройти, соответственно.
00:25:07.880 ⇒ 00:25:16.960
получили промт, дали уточняющие вопросы
00:25:10.760 ⇒ 00:25:20.240
в результате и а он не здесь. Он
00:25:16.960 ⇒ 00:25:22.799
в результате создался документ.
00:25:20.240 ⇒ 00:25:25.039
Этот документ техническое задание
00:25:22.799 ⇒ 00:25:27.600
product requirement document, который
00:25:25.039 ⇒ 00:25:30.679
описывает, что мы делаем, проблема, как
00:25:27.600 ⇒ 00:25:34.080
он её решает, цели, как разработчик, то
00:25:30.679 ⇒ 00:25:37.520
есть это истории,
00:25:34.080 ⇒ 00:25:39.799
а разные, ну, в общем, такой огромный
00:25:37.520 ⇒ 00:25:42.039
документ. Раньше была даже такая роль в
00:25:39.799 ⇒ 00:25:45.960
IT-стартапах, ну, вообще в IT-командах.
00:25:42.039 ⇒ 00:25:47.440
какой-то аналитик или, э, wter,
00:25:45.960 ⇒ 00:25:48.840
техрайтер. В общем, это задача,
00:25:47.440 ⇒ 00:25:50.120
наверное, техрайтера описать вот такой
00:25:48.840 ⇒ 00:25:52.240
документ, чтобы разработчик начал
00:25:50.120 ⇒ 00:25:54.679
работать. Здесь у нас за 1ну минуту мы
00:25:52.240 ⇒ 00:25:57.640
получили уже этот документ. На основе
00:25:54.679 ⇒ 00:25:59.799
этого документа
00:25:57.640 ⇒ 00:26:03.159
это всё само.
00:25:59.799 ⇒ 00:26:06.039
Я вызываю наш следующий
00:26:03.159 ⇒ 00:26:08.000
файлик из вот этой папки план generate
00:26:06.039 ⇒ 00:26:11.919
task.
00:26:08.000 ⇒ 00:26:14.600
прошу его generate task за, то есть
00:26:11.919 ⇒ 00:26:15.880
затащил этот файлик сюда и указал, что
00:26:14.600 ⇒ 00:26:17.679
для вот этого вновь созданного
00:26:15.880 ⇒ 00:26:20.320
документа,
00:26:17.679 ⇒ 00:26:24.159
типа, сгенерирую мне таски для вот этого
00:26:20.320 ⇒ 00:26:26.399
PRD. Соответственно, он на выходе я
00:26:24.159 ⇒ 00:26:31.960
получил вот такой файл, в котором
00:26:26.399 ⇒ 00:26:35.360
указаны задачи на и подзадачи
00:26:31.960 ⇒ 00:26:37.679
вот в таком формате.
00:26:35.360 ⇒ 00:26:40.679
И с этим уже можно приступать к
00:26:37.679 ⇒ 00:26:40.679
разработке.
00:26:41.640 ⇒ 00:26:45.360
Что у нас есть? У нас есть
00:26:43.679 ⇒ 00:26:47.960
файлик описывающий, что нам сделать и
00:26:45.360 ⇒ 00:26:50.520
уже конкретно по плану разбитый на
00:26:47.960 ⇒ 00:26:52.240
подзадач, чтобы простейший там джуниор
00:26:50.520 ⇒ 00:26:53.720
разработчик смог
00:26:52.240 ⇒ 00:26:56.000
разработать
00:26:53.720 ⇒ 00:26:58.960
по пунктикам один за одним. Зачем нам
00:26:56.000 ⇒ 00:27:01.440
это нужно? Потому что у агентов контекст
00:26:58.960 ⇒ 00:27:03.200
маленький. Мы можем прерваться, чтобы
00:27:01.440 ⇒ 00:27:05.360
всегда была какая-то память у агента,
00:27:03.200 ⇒ 00:27:07.440
чтобы мы к ней всегда могли возвращаться
00:27:05.360 ⇒ 00:27:09.919
и чтобы мы видели прогресс. То есть мы
00:27:07.440 ⇒ 00:27:12.120
здесь вручную управляем прогрессом,
00:27:09.919 ⇒ 00:27:14.600
видим, насколько мы продвинулись. И в
00:27:12.120 ⇒ 00:27:16.799
каждый момент времени, э, агент решает
00:27:14.600 ⇒ 00:27:18.720
маленькую понятную задачу, имея контекст
00:27:16.799 ⇒ 00:27:22.520
общий, что приводит к лучшему
00:27:18.720 ⇒ 00:27:22.520
результату, по еему мнению.
00:27:22.760 ⇒ 00:27:28.440
Вот. Ну и теперь, а, открывая терминал,
00:27:26.840 ⇒ 00:27:32.080
покажу вам, что это не так страшно. У
00:27:28.440 ⇒ 00:27:36.640
нас сегодня с вами соревнуется
00:27:32.080 ⇒ 00:27:38.760
шесть разных э кодинговых агентов.
00:27:36.640 ⇒ 00:27:41.720
Какой-то АМП. Первый раз сегодня про
00:27:38.760 ⇒ 00:27:43.880
него узнал, поставил.
00:27:41.720 ⇒ 00:27:46.000
Посмотрим, что он из себя представляет.
00:27:43.880 ⇒ 00:27:48.000
Вот код.
00:27:46.000 ⇒ 00:27:50.640
Мой любимый, наверное, фаворит. К
00:27:48.000 ⇒ 00:27:52.200
примере, я с ним больше всего работаю.
00:27:50.640 ⇒ 00:27:57.039
кодекс.
00:27:52.200 ⇒ 00:28:00.919
А терминал кодинговый агент от Openя,
00:27:57.039 ⇒ 00:28:04.120
доступный по подписки J GPT.
00:28:00.919 ⇒ 00:28:07.919
Gemini - это, соответственно, моделька
00:28:04.120 ⇒ 00:28:10.159
GM от, но в виде кодингового агента.
00:28:07.919 ⇒ 00:28:12.480
Open Code.
00:28:10.159 ⇒ 00:28:14.880
Это openourсная моделька, Openourсная
00:28:12.480 ⇒ 00:28:18.480
силайка, в которой можно много моделей
00:28:14.880 ⇒ 00:28:20.320
выбирать. Э, там даже можно вроде как
00:28:18.480 ⇒ 00:28:22.799
почти бесплатно не пользоваться.
00:28:20.320 ⇒ 00:28:24.600
при определённых сценариев.
00:28:22.799 ⇒ 00:28:27.960
Вот для не даже никая подписка не нужна.
00:28:24.600 ⇒ 00:28:29.679
Ну или там свои токены добавлять и
00:28:27.960 ⇒ 00:28:31.360
только по токенам билится. Можно
00:28:29.679 ⇒ 00:28:34.799
какие-нибудь дешёвые модели, можно
00:28:31.360 ⇒ 00:28:37.799
модели какие угодно здесь выбирать.
00:28:34.799 ⇒ 00:28:37.799
Ан
00:28:37.919 ⇒ 00:28:43.399
это вроде от китайцев.
00:28:39.799 ⇒ 00:28:47.519
Даже интересная модель.
00:28:43.399 ⇒ 00:28:51.039
Вот всё, что я сделал. А я по сути
00:28:47.519 ⇒ 00:28:51.039
открыл в терминале.
00:28:51.399 ⇒ 00:28:59.799
Я выйду. То есть у меня есть папка, где
00:28:54.880 ⇒ 00:29:04.279
я храню вот этот код. Я в него зашёл
00:28:59.799 ⇒ 00:29:04.279
через терминал. Вот
00:29:05.519 ⇒ 00:29:13.039
папкой set. Я такой change directory to
00:29:08.840 ⇒ 00:29:15.200
clot. Я назвал clot sw.
00:29:13.039 ⇒ 00:29:16.880
Для каждого агента у меня своя папка
00:29:15.200 ⇒ 00:29:21.279
сейчас.
00:29:16.880 ⇒ 00:29:23.519
И внутри, по сути, везде одинаковый вот
00:29:21.279 ⇒ 00:29:25.679
этот проект
00:29:23.519 ⇒ 00:29:27.799
болеп для старта, в котором я уже
00:29:25.679 ⇒ 00:29:29.799
поместил все вот эти предварительно,
00:29:27.799 ⇒ 00:29:32.480
чтобы сейчас время не тратить, все вот
00:29:29.799 ⇒ 00:29:34.519
эти задания, поместил enвайромент
00:29:32.480 ⇒ 00:29:37.320
переменные
00:29:34.519 ⇒ 00:29:39.880
и всё. Это всё, что нужно для старта. То
00:29:37.320 ⇒ 00:29:42.080
есть каждый агент имеет одинаковую папку
00:29:39.880 ⇒ 00:29:45.480
с одинаковым заданием.
00:29:42.080 ⇒ 00:29:48.000
Вот запускаю агента. Как их установить?
00:29:45.480 ⇒ 00:29:49.200
Можно посмотреть там на сайте у них одну
00:29:48.000 ⇒ 00:29:52.000
команду вызов в терминале, он
00:29:49.200 ⇒ 00:29:55.960
становится. И вот мы добро пожаловать в
00:29:52.000 ⇒ 00:29:58.399
clкод, добро пожаловать тамкс. Давайте
00:29:55.960 ⇒ 00:30:00.760
в каждом начнём работу.
00:29:58.399 ⇒ 00:30:02.720
Эх такое правило: через собачку
00:30:00.760 ⇒ 00:30:05.399
mentionть файлы. То есть я нажимаю
00:30:02.720 ⇒ 00:30:07.360
собачка, я знаю, что у меня в папке план
00:30:05.399 ⇒ 00:30:10.919
лежат три файла. И вот он мне
00:30:07.360 ⇒ 00:30:14.480
подсвечивает. Я выбираю план
00:30:10.919 ⇒ 00:30:16.840
process. Это третий файл в этой папке,
00:30:14.480 ⇒ 00:30:19.760
который объясняет агенту, каким образом
00:30:16.840 ⇒ 00:30:24.760
ему нужно идти выполнять задачу.
00:30:19.760 ⇒ 00:30:24.760
Я добавляю этот файл в контекст агента.
00:30:25.399 ⇒ 00:30:31.120
Я
00:30:27.360 ⇒ 00:30:33.200
добавляю сюда из папки task тот файл,
00:30:31.120 ⇒ 00:30:36.840
который только что мы сгенерили, который
00:30:33.200 ⇒ 00:30:40.440
содержит в себе описание задачи.
00:30:36.840 ⇒ 00:30:43.640
Вот он. Добавляю и говорю ему:
00:30:40.440 ⇒ 00:30:43.640
”Let’s go”.
00:30:44.480 ⇒ 00:30:50.120
И он внутри себя уже знает, как ему идти
00:30:46.720 ⇒ 00:30:52.440
по пунктам, что ему нужно делать.
00:30:50.120 ⇒ 00:30:54.480
Всё, мы его запустили. Он пошёл кушать
00:30:52.440 ⇒ 00:30:57.000
токены, что-то там делать. Пока пойдём
00:30:54.480 ⇒ 00:31:01.240
следующее запустим. То же самое. Можно
00:30:57.000 ⇒ 00:31:01.240
даже копирнуть это чтопечатать.
00:31:06.039 ⇒ 00:31:11.360
Сейчас я здесь разрешу, он будет
00:31:07.799 ⇒ 00:31:14.360
спрашивать, могу ли я начать.
00:31:11.360 ⇒ 00:31:14.360
А
00:31:18.000 ⇒ 00:31:25.279
так,
00:31:20.960 ⇒ 00:31:29.279
а, сорри. Мм, я там немножечко, когда
00:31:25.279 ⇒ 00:31:29.279
копировал, не учил. Один момент,
00:31:32.639 ⇒ 00:31:37.720
у меня таски проставлено все как уже
00:31:34.840 ⇒ 00:31:39.760
сделаны,
00:31:37.720 ⇒ 00:31:41.399
и поэтому он думает, что всё уже
00:31:39.760 ⇒ 00:31:45.840
сделано. и не хочет ничего делать.
00:31:41.399 ⇒ 00:31:45.840
Сейчас просто их копировал.
00:31:51.360 ⇒ 00:31:55.639
Мы уберём крестик.
00:32:48.399 ⇒ 00:32:54.399
Так, теперь я скопирую это для всех
00:33:00.600 ⇒ 00:33:06.279
для кодекса, для джемени. У всех
00:33:03.200 ⇒ 00:33:09.559
одинаковые проекты
00:33:06.279 ⇒ 00:33:09.559
для Openда,
00:33:11.039 ⇒ 00:33:14.639
для Квина.
00:33:17.519 ⇒ 00:33:26.320
А и вот для АП ещё. Угу.
00:33:22.840 ⇒ 00:33:30.399
Всё. Э,
00:33:26.320 ⇒ 00:33:30.399
ещё раз. Теперь
00:33:30.880 ⇒ 00:33:33.720
дано.
00:33:39.159 ⇒ 00:33:45.279
Процесим task list из папки task.
00:33:48.600 ⇒ 00:33:56.039
Вот такой запрос.
00:33:51.559 ⇒ 00:33:56.039
По сути, кодинговый агент - это чат,
00:33:56.399 ⇒ 00:34:02.799
который с которым мы общаемся просто
00:33:59.320 ⇒ 00:34:02.799
текстом, голосом.
00:34:03.600 ⇒ 00:34:07.399
И в нём ничего страшного нет. Это не
00:34:05.360 ⇒ 00:34:09.520
такой терминал, как вы привыкли, где
00:34:07.399 ⇒ 00:34:10.679
команды нужно знать.
00:34:09.520 ⇒ 00:34:14.079
Это такой же чат, просто у него
00:34:10.679 ⇒ 00:34:16.760
интерфейс чуть менее приятный, может
00:34:14.079 ⇒ 00:34:20.599
быть. Роман,
00:34:16.760 ⇒ 00:34:23.079
а вопрос дилетантов. А почему именно
00:34:20.599 ⇒ 00:34:25.679
кодинговый агент, а не среда разработки?
00:34:23.079 ⇒ 00:34:28.359
Или это в принципе одно и то же?
00:34:25.679 ⇒ 00:34:31.320
Угу. Ну, а в прошлый раз мы уже
00:34:28.359 ⇒ 00:34:32.599
показывали на примере
00:34:31.320 ⇒ 00:34:35.320
среды разработки. Сейчас просто
00:34:32.599 ⇒ 00:34:37.280
интересно на этом мастер-классе показать
00:34:35.320 ⇒ 00:34:39.200
кодинговых агентов. Я лично использую
00:34:37.280 ⇒ 00:34:42.119
кодинговых агентов, потому что конкретно
00:34:39.200 ⇒ 00:34:45.760
cloudкод сильно лучше по своему тулингу,
00:34:42.119 ⇒ 00:34:47.800
чем курсор. По сути, все они используют
00:34:45.760 ⇒ 00:34:50.919
какие-то модели,
00:34:47.800 ⇒ 00:34:54.480
э, внутри себя, но важно, как они их
00:34:50.919 ⇒ 00:34:59.000
оркестрируют и используют инструменты
00:34:54.480 ⇒ 00:35:00.880
тулинга. И у каждого агента это своё. То
00:34:59.000 ⇒ 00:35:04.040
есть у курсора тоже есть представление в
00:35:00.880 ⇒ 00:35:05.960
виде C. Просто код даёт мощный
00:35:04.040 ⇒ 00:35:08.680
результат, но у него нету красивого
00:35:05.960 ⇒ 00:35:09.920
интерфейса, как у
00:35:08.680 ⇒ 00:35:11.640
курсора, например.
00:35:09.920 ⇒ 00:35:13.359
У Клоуда же был какой-то интерфейс, я
00:35:11.640 ⇒ 00:35:15.640
помню, похоже на этот сейчас как на
00:35:13.359 ⇒ 00:35:16.480
курсора, мне кажется, он был или нет?
00:35:15.640 ⇒ 00:35:18.599
Или мне показалось?
00:35:16.480 ⇒ 00:35:21.800
Нет, нет, нет. Это как бы есть компании,
00:35:18.599 ⇒ 00:35:25.040
которые делают редакторы кода, и у них
00:35:21.800 ⇒ 00:35:28.640
есть свой агент и его отображение вот
00:35:25.040 ⇒ 00:35:30.200
здесь сбоку, где видно и чат, и файловую
00:35:28.640 ⇒ 00:35:32.760
систему. Здесь же у нас не видно
00:35:30.200 ⇒ 00:35:34.440
файловую систему, здесь просто видно вот
00:35:32.760 ⇒ 00:35:35.680
эта часть чата.
00:35:34.440 ⇒ 00:35:38.000
То есть это что-то типа просто
00:35:35.680 ⇒ 00:35:41.560
терминала. А слово агент здесь, ну, как
00:35:38.000 ⇒ 00:35:43.800
бы, наверное, немного не отражается.
00:35:41.560 ⇒ 00:35:46.160
Не, это отражает именно то, что он
00:35:43.800 ⇒ 00:35:48.440
автономный и ему можно поручить какую-то
00:35:46.160 ⇒ 00:35:50.839
задачу. То есть ему вот мы скармливаем
00:35:48.440 ⇒ 00:35:52.960
огромный документ со списком задач и
00:35:50.839 ⇒ 00:35:56.079
говорим: “Сделай”. И он, да, там
00:35:52.960 ⇒ 00:35:57.800
работает ээ посинения, пока не сделает.
00:35:56.079 ⇒ 00:35:58.960
Ну, так же, как и здесь, так же, как и в
00:35:57.800 ⇒ 00:36:00.920
этой среде,
00:35:58.960 ⇒ 00:36:02.319
да. Вот здесь тоже агент. Здесь тоже
00:36:00.920 ⇒ 00:36:05.280
агент, просто ещё с визуальным
00:36:02.319 ⇒ 00:36:08.160
отображением как бы среды разработки. Но
00:36:05.280 ⇒ 00:36:10.680
этот агент, по моему мнению, хуже, чем
00:36:08.160 ⇒ 00:36:12.640
клодкодовский агент. У них он один из
00:36:10.680 ⇒ 00:36:14.000
самых лучших. У Кодекса тоже неплохой
00:36:12.640 ⇒ 00:36:16.000
для каких-то задач. Ну вот мы сейчас с
00:36:14.000 ⇒ 00:36:18.599
вами и проверим, кто будет лучше. Мы
00:36:16.000 ⇒ 00:36:20.760
можем, конечно, и здесь запустить, как
00:36:18.599 ⇒ 00:36:24.079
бы добавить его в
00:36:20.760 ⇒ 00:36:26.599
Да, сейчас я бы не запускал там, вот как
00:36:24.079 ⇒ 00:36:28.480
Григорий в чате пишет, чтобы было не так
00:36:26.599 ⇒ 00:36:30.160
страшно и, может быть, более понятно,
00:36:28.480 ⇒ 00:36:32.480
можно внутри курсора открыть терминал,
00:36:30.160 ⇒ 00:36:34.200
он просто будет маленьким окошком, и там
00:36:32.480 ⇒ 00:36:36.440
менее удобно, наверное, чем развернуть
00:36:34.200 ⇒ 00:36:38.520
вот так на полный экран. Но в целом эти
00:36:36.440 ⇒ 00:36:40.800
вот кодинговые агенты смотрятся те же
00:36:38.520 ⇒ 00:36:43.400
самые файлы, и мы можем в курсоре
00:36:40.800 ⇒ 00:36:46.640
видеть, как они меняются. Так что
00:36:43.400 ⇒ 00:36:48.760
давайте сделаем так, да.
00:36:46.640 ⇒ 00:36:51.000
Так что их можно там внутри запустить. А
00:36:48.760 ⇒ 00:36:54.319
ещё интересно, да, можно и так.
00:36:51.000 ⇒ 00:36:55.880
Ещё интересная штука, почему Клод,
00:36:54.319 ⇒ 00:36:57.640
вернее, почему Антропик не сделали
00:36:55.880 ⇒ 00:37:00.800
нормальный интерфейс вот к этому всему?
00:36:57.640 ⇒ 00:37:02.400
Они же могли бы. Такой вопрос
00:37:00.800 ⇒ 00:37:03.920
философскопродуктовый.
00:37:02.400 ⇒ 00:37:06.079
Стремятся продуктовы. Они стремятся
00:37:03.920 ⇒ 00:37:10.079
сделать хороший тулинг хорошего агента,
00:37:06.079 ⇒ 00:37:14.000
как и все сейчас компании, а потом
00:37:10.079 ⇒ 00:37:18.079
разработать какой-то интерpтол
00:37:14.000 ⇒ 00:37:22.119
разработали его в редакторе
00:37:18.079 ⇒ 00:37:25.160
Z, вроде. В общем, сейчас уже можно
00:37:22.119 ⇒ 00:37:27.480
встраивать этих агентов в айдешку, чтобы
00:37:25.160 ⇒ 00:37:31.119
они как вот курсор выглядели в конечном
00:37:27.480 ⇒ 00:37:33.720
итоге. То есть там штука штука такая,
00:37:31.119 ⇒ 00:37:35.720
что если мы пользуемся в курсоре вот
00:37:33.720 ⇒ 00:37:37.720
этими агентами, то курсор задаёт ещё
00:37:35.720 ⇒ 00:37:39.520
один уровень, ну, прослойку такую, да,
00:37:37.720 ⇒ 00:37:43.119
уровень фильтрации или там уровень
00:37:39.520 ⇒ 00:37:45.079
какого-то промтинга. А Клод сказали, что
00:37:43.119 ⇒ 00:37:46.480
мы не знаем, каким будет интерфейс через
00:37:45.079 ⇒ 00:37:48.440
полгода, год, и мы просто не будем
00:37:46.480 ⇒ 00:37:50.040
вкладываться в его разработку, что всё
00:37:48.440 ⇒ 00:37:51.760
равно всё поменяется.
00:37:50.040 ⇒ 00:37:54.599
И поэтому терминал как будто бы по
00:37:51.760 ⇒ 00:37:58.240
умолчанию супер интерфейс, он быстрый,
00:37:54.599 ⇒ 00:38:01.319
он не содержит как бы мы напрямую ходим.
00:37:58.240 ⇒ 00:38:04.839
ходим в клодкод именно таким, каким его
00:38:01.319 ⇒ 00:38:06.440
антропик задумывал, без каких-то вещей,
00:38:04.839 ⇒ 00:38:08.160
которые, может быть, полезны, а может
00:38:06.440 ⇒ 00:38:09.599
быть, наоборот, задерживают, а может
00:38:08.160 ⇒ 00:38:12.400
быть что-то там фильтруют, а может быть
00:38:09.599 ⇒ 00:38:14.160
по дороге что-то теряют и так далее. Вот
00:38:12.400 ⇒ 00:38:16.000
поэтому, наверное, оно существует в виде
00:38:14.160 ⇒ 00:38:17.880
терминала.
00:38:16.000 ⇒ 00:38:19.240
Да, я вижу, будущее таким, что будут
00:38:17.880 ⇒ 00:38:22.079
компании, которые будут разрабатывать
00:38:19.240 ⇒ 00:38:25.000
красивые вот эти среды разработки, и все
00:38:22.079 ⇒ 00:38:26.520
эти агенты подружатся с ними по
00:38:25.000 ⇒ 00:38:27.920
какому-то протоколу, начнут в них как-то
00:38:26.520 ⇒ 00:38:31.240
более нативно интегрироваться. В
00:38:27.920 ⇒ 00:38:34.839
принципе, к этому уже есть все шаги, но
00:38:31.240 ⇒ 00:38:36.720
можно для удобства вот вместо этого чата
00:38:34.839 ⇒ 00:38:38.520
его закрыть и открыть вот этот чат,
00:38:36.720 ⇒ 00:38:41.760
потому что по сути такой же строка
00:38:38.520 ⇒ 00:38:43.800
входа, инпутат.
00:38:41.760 ⇒ 00:38:46.200
И мы здесь можем видеть, что меняется.
00:38:43.800 ⇒ 00:38:49.839
Это как-то такой
00:38:46.200 ⇒ 00:38:52.040
совет, как не бояться его. Вот. Ну и
00:38:49.839 ⇒ 00:38:55.079
сделать чуть побольше,
00:38:52.040 ⇒ 00:38:58.160
а чтобы было лучше видно. Сейчас я
00:38:55.079 ⇒ 00:39:01.720
запустил эту команду во всех агентах. А,
00:38:58.160 ⇒ 00:39:03.240
и они первый раз всегда такие очень
00:39:01.720 ⇒ 00:39:04.480
осторожные, спрашивают: “А можно мне эту
00:39:03.240 ⇒ 00:39:05.720
команду выполнить? А можно мне эту
00:39:04.480 ⇒ 00:39:07.400
команду выполнить?” Ну, чтобы
00:39:05.720 ⇒ 00:39:10.119
пользователь постепенно давал разрешение
00:39:07.400 ⇒ 00:39:14.560
и там, чтобы не было таких случаев,
00:39:10.119 ⇒ 00:39:17.240
чтобы агент удалил всю файловую систему.
00:39:14.560 ⇒ 00:39:19.359
нечаянно. Поэтому вы сами даёте ему
00:39:17.240 ⇒ 00:39:22.599
доступ свободы, он с вами общается. Я
00:39:19.359 ⇒ 00:39:24.960
вот им всем разрешаю.
00:39:22.599 ⇒ 00:39:26.720
Вот.
00:39:24.960 ⇒ 00:39:28.200
А
00:39:26.720 ⇒ 00:39:32.160
не будем сейчас за ними, за всеми
00:39:28.200 ⇒ 00:39:35.839
наблюдать, да? Вот.
00:39:32.160 ⇒ 00:39:39.319
Вот он. А, он что говорит нам?
00:39:35.839 ⇒ 00:39:42.319
Нифига. Ага. Амп выбивает из игры, и он
00:39:39.319 ⇒ 00:39:45.160
бесплатно мне ничего не дал
00:39:42.319 ⇒ 00:39:47.560
и просит кредитов, поэтому додание. Ну,
00:39:45.160 ⇒ 00:39:49.680
в общем, на него не было надежд больших,
00:39:47.560 ⇒ 00:39:51.319
поэтому кд остаётся в игре. Клод снова
00:39:49.680 ⇒ 00:39:53.680
спрашивает, могу ли я там выносить
00:39:51.319 ⇒ 00:39:55.440
изменения файл. И ему выбираю второй
00:39:53.680 ⇒ 00:39:58.400
пункт
00:39:55.440 ⇒ 00:40:00.119
all thisation. То есть всегда всё можно
00:39:58.400 ⇒ 00:40:02.240
тебе, я тебе доверяю, пожалуйста,
00:40:00.119 ⇒ 00:40:06.880
выполняй.
00:40:02.240 ⇒ 00:40:10.119
А, выполнил первую подзадачу.
00:40:06.880 ⇒ 00:40:13.520
У нас кодекс говорит, что вот я, у меня
00:40:10.119 ⇒ 00:40:17.920
был план сделать зависимость,
00:40:13.520 ⇒ 00:40:19.960
я сделал и говорит, что могу ли я
00:40:17.920 ⇒ 00:40:22.960
приступить к следующей. Я ему сразу
00:40:19.960 ⇒ 00:40:26.680
скажу: “Let’s go
00:40:22.960 ⇒ 00:40:26.680
until end.”
00:40:31.000 ⇒ 00:40:37.240
А печатался. Ну неважно, он поймёт.
00:40:34.319 ⇒ 00:40:39.280
говорю ему, что давай иди вперёд по
00:40:37.240 ⇒ 00:40:41.520
этому списку задач, меня не спрашивай,
00:40:39.280 ⇒ 00:40:44.040
потому что вообще, когда я разрабатываю
00:40:41.520 ⇒ 00:40:47.040
как разработчик один,
00:40:44.040 ⇒ 00:40:47.040
а
00:40:47.960 ⇒ 00:40:53.079
то я каждый подпункт проверяю, он это
00:40:51.400 ⇒ 00:40:54.720
сделал, я такой посмотрел, о’кей,
00:40:53.079 ⇒ 00:40:57.520
закоммитил, дальше идём закоммитил,
00:40:54.720 ⇒ 00:40:59.400
дальше идём закомитил это я использую
00:40:57.520 ⇒ 00:41:01.240
гитом и свой код я отправляю в это
00:40:59.400 ⇒ 00:41:03.560
хранилище, чтобы у меня всегда было
00:41:01.240 ⇒ 00:41:05.400
чистое состояние по каждому шагу. Но
00:41:03.560 ⇒ 00:41:07.280
здесь в рамках эксперимента мы ему
00:41:05.400 ⇒ 00:41:09.680
разрешаем
00:41:07.280 ⇒ 00:41:13.200
идти до конца. Нас не спрашивает, чтобы
00:41:09.680 ⇒ 00:41:15.240
мы не отвлекались. Вот это мы куда? К
00:41:13.200 ⇒ 00:41:17.079
Джемине пришли. Он точно также нас
00:41:15.240 ⇒ 00:41:21.960
спрашивает.
00:41:17.079 ⇒ 00:41:21.960
А allow, allow
00:41:22.079 ⇒ 00:41:29.880
мы разрешаем тоже все делать изменения.
00:41:26.880 ⇒ 00:41:29.880
Сейчас.
00:41:34.760 ⇒ 00:41:40.560
А, иди до конца и меня не спрашивай.
00:41:37.160 ⇒ 00:41:45.400
Можешь выполнять до последнего пункта
00:41:40.560 ⇒ 00:41:45.400
без разрешения моего.
00:41:45.640 ⇒ 00:41:50.440
Вот я ему говорю, чтобы он тоже меня не
00:41:47.640 ⇒ 00:41:55.000
спрашивал и шёл до конца.
00:41:50.440 ⇒ 00:41:55.000
Open code. Вкоде мы так и не запустили.
00:41:55.750 ⇒ 00:41:58.860
[музыка]
00:41:58.960 ⇒ 00:42:05.119
process task list. Выбираем, какой какую
00:42:02.079 ⇒ 00:42:09.200
задачу мы ему даём. Task
00:42:05.119 ⇒ 00:42:11.400
и говорим Let’s go. А ещё говорю сразу,
00:42:09.200 ⇒ 00:42:15.079
а, иди до конца, до последнего пункта и
00:42:11.400 ⇒ 00:42:15.079
не спрашивай меня.
00:42:15.359 ⇒ 00:42:20.880
О’кей, не спрашивай меня.
00:42:18.079 ⇒ 00:42:23.079
попробуем сделать так, чтобы он
00:42:20.880 ⇒ 00:42:25.839
чуть-чуть забирають инструкцию, потому
00:42:23.079 ⇒ 00:42:28.200
что в изначальной инструкции вот этой
00:42:25.839 ⇒ 00:42:32.400
процесс tasрист сказано: “Выполняй
00:42:28.200 ⇒ 00:42:36.520
только по маленькой подзадаче
00:42:32.400 ⇒ 00:42:38.559
и ставь крестик, когда выполняешь,
00:42:36.520 ⇒ 00:42:41.240
иди к следующей”.
00:42:38.559 ⇒ 00:42:43.240
Вот это специально сделано,
00:42:41.240 ⇒ 00:42:46.000
но в нашем случае мы сейчас хотим вот
00:42:43.240 ⇒ 00:42:48.800
идти до конца. И вот он взял все наши
00:42:46.000 ⇒ 00:42:51.800
задачки. вынес и планирует их все
00:42:48.800 ⇒ 00:42:54.440
бахнуть по одной.
00:42:51.800 ⇒ 00:42:56.520
Ну вот он, кстати,
00:42:54.440 ⇒ 00:42:58.520
это кто у нас Open CД. Прикольно, что
00:42:56.520 ⇒ 00:43:01.119
мне нравится, как он это отображает. Мне
00:42:58.520 ⇒ 00:43:04.720
нравится, что он
00:43:01.119 ⇒ 00:43:09.359
нас ни о чём не спрашивает.
00:43:04.720 ⇒ 00:43:14.079
Идёт дальше. Молодец. Пусть работает.
00:43:09.359 ⇒ 00:43:14.079
А дальше, запустим, здесь
00:43:25.640 ⇒ 00:43:29.960
иди до конца и меня не спрашивай.
00:43:33.520 ⇒ 00:43:37.680
О’кей, давайте всех запустились,
00:43:34.800 ⇒ 00:43:39.680
вернёмся, посмотрим, что тут у нас. Угу.
00:43:37.680 ⇒ 00:43:42.960
Вот у меня тоже спрашивает: “Иди до
00:43:39.680 ⇒ 00:43:45.359
последнего пункта без
00:43:42.960 ⇒ 00:43:47.960
дозапрашиваний. Я тебе доверяю. Делай
00:43:45.359 ⇒ 00:43:51.720
всё от начала до конца, и придёшь,
00:43:47.960 ⇒ 00:43:51.720
отчитаешься, когда сделаешь”.
00:43:54.040 ⇒ 00:44:00.400
Вот даю им инструкции, чтобы они
00:43:57.520 ⇒ 00:44:02.559
каждый раз отвлекались. Так, Кодекс
00:44:00.400 ⇒ 00:44:05.079
спрашивает, могу ли я установить
00:44:02.559 ⇒ 00:44:07.400
команду. Я выбираю здесь always, чтобы
00:44:05.079 ⇒ 00:44:10.760
он тоже больше не спрашивал. сделал всё,
00:44:07.400 ⇒ 00:44:10.760
что ему нужно.
00:44:11.960 ⇒ 00:44:19.079
Угу. Точно также спрашивают
00:44:16.200 ⇒ 00:44:20.520
на каждую команду они спрашивают, то
00:44:19.079 ⇒ 00:44:22.079
есть установить зависимость от этой
00:44:20.520 ⇒ 00:44:24.480
команды, могу ли её использовать? Я им
00:44:22.079 ⇒ 00:44:26.599
говорю: “Могу там изменить файл”. Эта
00:44:24.480 ⇒ 00:44:28.079
команда тоже разрешает. То есть они,
00:44:26.599 ⇒ 00:44:30.319
скорее всего, будут ещё неоднократно
00:44:28.079 ⇒ 00:44:33.119
что-то спрашивать. Будем за ними
00:44:30.319 ⇒ 00:44:35.960
посматривать и разрешать всё.
00:44:33.119 ⇒ 00:44:41.119
А тем временем
00:44:35.960 ⇒ 00:44:41.119
к Open CД агент
00:44:42.599 ⇒ 00:44:46.640
что-то он
00:44:45.160 ⇒ 00:44:49.640
А он работает. Всё нормально, ничего не
00:44:46.640 ⇒ 00:44:49.640
спрашивает.
00:44:49.839 ⇒ 00:44:56.920
Он прям сам самостоятельный довольно.
00:44:53.200 ⇒ 00:45:00.800
Угу. Так, Квин что-то у нас в
00:44:56.920 ⇒ 00:45:03.960
зависимости пошёл обновлять чем. Ладно,
00:45:00.800 ⇒ 00:45:06.040
мы им доверяем. Пусть делают, что хотят.
00:45:03.960 ⇒ 00:45:09.040
Я согласовал.
00:45:06.040 ⇒ 00:45:09.040
Разрешили.
00:45:10.520 ⇒ 00:45:17.240
Так, вернулись снова клоду.
00:45:14.559 ⇒ 00:45:19.520
Он
00:45:17.240 ⇒ 00:45:23.000
что-то делает, показывает, что что-то
00:45:19.520 ⇒ 00:45:23.000
там меняет.
00:45:23.119 ⇒ 00:45:27.119
Смотрим на кодекс. Тоже пишет код
00:45:25.200 ⇒ 00:45:30.839
активно. Причём Хакатон идёт полным
00:45:27.119 ⇒ 00:45:34.319
кодом. Так, G у нас опять задаёт вопрос:
00:45:30.839 ⇒ 00:45:34.319
могу ли я использовать?
00:45:36.079 ⇒ 00:45:40.720
Давайте им скажем, что
00:45:41.760 ⇒ 00:45:44.760
не надо, потому что я не хочу сейчас
00:45:43.319 ⇒ 00:45:49.160
ничего коммитить. Хочу, чтобы они всё
00:45:44.760 ⇒ 00:45:53.119
сделали до конца уже потом посмотреть.
00:45:49.160 ⇒ 00:45:55.880
говорим другую команду. Не используй Git
00:45:53.119 ⇒ 00:45:58.760
и не комить изменения, а выполни всё до
00:45:55.880 ⇒ 00:46:02.000
конца, и уже потом я решу коммитить это
00:45:58.760 ⇒ 00:46:02.000
или нет.
00:46:06.559 ⇒ 00:46:12.960
Просто по умолчанию в моём файлике так
00:46:09.520 ⇒ 00:46:14.800
настроено, чтобы после выполненной
00:46:12.960 ⇒ 00:46:16.800
задачи
00:46:14.800 ⇒ 00:46:21.480
агент пытался эти изменения сразу
00:46:16.800 ⇒ 00:46:21.480
автоматически отправить в гит.
00:46:22.079 ⇒ 00:46:26.640
А примерно на каком пункте списка они
00:46:24.400 ⇒ 00:46:29.359
находятся? Типа они они сейчас все
00:46:26.640 ⇒ 00:46:32.359
первый большой пункт из пяти делают, да?
00:46:29.359 ⇒ 00:46:35.079
Давай посмотрим. А если
00:46:32.359 ⇒ 00:46:39.520
если смотреть на это как на соревнования
00:46:35.079 ⇒ 00:46:39.520
cl. Давай откроем tasks.
00:46:40.520 ⇒ 00:46:46.920
Task
00:46:43.440 ⇒ 00:46:49.920
11 сделал. А
00:46:46.920 ⇒ 00:46:49.920
коeкс
00:46:51.200 ⇒ 00:46:57.040
Ну я запустил их ещё неодновременно.
00:46:52.800 ⇒ 00:47:00.280
Кодекс что-то это буксует или
00:46:57.040 ⇒ 00:47:03.400
что с ним?
00:47:00.280 ⇒ 00:47:06.079
Или он игнорирует мою инструкцию, чтобы
00:47:03.400 ⇒ 00:47:07.319
ставить здесь крестики.
00:47:06.079 ⇒ 00:47:08.960
Ну, в общем, крестики он не ставит.
00:47:07.319 ⇒ 00:47:13.319
Возможно, что-то делает, судя по тому,
00:47:08.960 ⇒ 00:47:16.319
что он выдаёт. Ну, крестики не ставит.
00:47:13.319 ⇒ 00:47:16.319
Gemнай,
00:47:18.280 ⇒ 00:47:27.760
Gemini. Вот идёт неплохо. Уже 2.2
00:47:24.119 ⇒ 00:47:27.760
делать этого списка.
00:47:28.559 ⇒ 00:47:33.880
Open code.
00:47:30.800 ⇒ 00:47:35.400
Что ты там делал? Грок код. Ну под
00:47:33.880 ⇒ 00:47:40.480
копотом, кстати, Open CД сейчас у меня
00:47:35.400 ⇒ 00:47:42.079
использовать модельку Евана Маскак код.
00:47:40.480 ⇒ 00:47:44.720
Тут можно выбирать, кстати, множество
00:47:42.079 ⇒ 00:47:48.079
модели.
00:47:44.720 ⇒ 00:47:50.119
Вот что-то он тут
00:47:48.079 ⇒ 00:47:53.599
делает.
00:47:50.119 ⇒ 00:47:56.319
Посмотрим, на каком он пункте. Open CД
00:47:53.599 ⇒ 00:47:58.720
Tasks.
00:47:56.319 ⇒ 00:48:01.720
Он что-то тоже не ставит чекбокс
00:47:58.720 ⇒ 00:48:06.280
игнорирует.
00:48:01.720 ⇒ 00:48:08.800
Вот тоже показатель по сложности агента.
00:48:06.280 ⇒ 00:48:11.760
Квин
00:48:08.800 ⇒ 00:48:13.480
тоже не ставит. Проверим.
00:48:11.760 ⇒ 00:48:15.880
А Квин
00:48:13.480 ⇒ 00:48:19.119
немножечко задумался, потому что я ему
00:48:15.880 ⇒ 00:48:19.119
сделал разрешение.
00:48:20.800 ⇒ 00:48:24.000
Дали разрешение?
00:48:24.880 ⇒ 00:48:29.839
Спрашивает у нас
00:48:28.119 ⇒ 00:48:32.599
кто?
00:48:29.839 ⇒ 00:48:36.640
Клод. О, Клод уже вообще всё сделал.
00:48:32.599 ⇒ 00:48:40.800
Все, все просит собрать проект.
00:48:36.640 ⇒ 00:48:42.640
Ну пусть дит. Он сейчас закончил работу,
00:48:40.800 ⇒ 00:48:44.880
я так понимаю,
00:48:42.640 ⇒ 00:48:46.760
будет пытаться его собрать. Скорее
00:48:44.880 ⇒ 00:48:49.280
всего, там будут ошибки. Дальше он будет
00:48:46.760 ⇒ 00:48:51.880
уже смотреть на ошибки. и дебажить,
00:48:49.280 ⇒ 00:48:54.720
исправлять. Посмотрим.
00:48:51.880 ⇒ 00:48:59.799
Да, действительно, код уже
00:48:54.720 ⇒ 00:48:59.799
наш продукт реализовал довольно быстро.
00:49:02.599 ⇒ 00:49:06.520
Вась, а у тебя были документы на входе,
00:49:04.760 ⇒ 00:49:09.680
чтобы он их на чанке бил и всё такое?
00:49:06.520 ⇒ 00:49:10.440
Они в сорсах, да, лежат или нет, чтобы
00:49:09.680 ⇒ 00:49:12.760
затестить?
00:49:10.440 ⇒ 00:49:15.599
А
00:49:12.760 ⇒ 00:49:18.000
документы? Ещё раз я не понял вопрос. Ну
00:49:15.599 ⇒ 00:49:19.960
там, э, они должны были раксистему
00:49:18.000 ⇒ 00:49:21.520
сделать, и они же должны на чём-то
00:49:19.960 ⇒ 00:49:23.760
потренироваться,
00:49:21.520 ⇒ 00:49:25.760
проверить, что документы бьются начанки,
00:49:23.760 ⇒ 00:49:27.720
векторизируются и так далее.
00:49:25.760 ⇒ 00:49:29.359
Угу. Ну да, наверное, было. Давай
00:49:27.720 ⇒ 00:49:30.839
посмотрим, что там.
00:49:29.359 ⇒ 00:49:32.240
У тебя там папка Docs есть. Может, это
00:49:30.839 ⇒ 00:49:37.079
они?
00:49:32.240 ⇒ 00:49:39.319
Не, папка docs - это документация к моей
00:49:37.079 ⇒ 00:49:41.480
этой репозиторию на русском, на
00:49:39.319 ⇒ 00:49:43.359
английском, в которой описывается
00:49:41.480 ⇒ 00:49:46.000
подход, вот который я сейчас объяснял,
00:49:43.359 ⇒ 00:49:49.000
как я использую create,
00:49:46.000 ⇒ 00:49:53.480
как я генерирую задачи, то есть
00:49:49.000 ⇒ 00:49:55.920
какие вообще здесь фичи, как настроить
00:49:53.480 ⇒ 00:49:58.440
Firebase, где откуда взять ключи. То
00:49:55.920 ⇒ 00:50:00.240
есть тут я просто даю инструкции. А всё,
00:49:58.440 ⇒ 00:50:05.079
что касается задачи, лежит в папке
00:50:00.240 ⇒ 00:50:05.079
Tasks. И вот PRD - это
00:50:05.160 ⇒ 00:50:08.920
то, что нужно сделать. То есть здесь
00:50:07.000 ⇒ 00:50:11.079
довольно бизнесово описано работающий
00:50:08.920 ⇒ 00:50:13.760
MVP, создать полный рак пайплайн,
00:50:11.079 ⇒ 00:50:18.599
загрузка, обработка.
00:50:13.760 ⇒ 00:50:18.599
Ээ вот по поводу чанков
00:50:20.240 ⇒ 00:50:22.520
автоматически обрабатыват загруженны
00:50:21.280 ⇒ 00:50:25.119
документы. Документ должен разбиваться
00:50:22.520 ⇒ 00:50:26.680
на чанке по 500 токенов. Вот видишь у
00:50:25.119 ⇒ 00:50:28.920
них.
00:50:26.680 ⇒ 00:50:30.720
Так как это всё сгенерировано, то есть я
00:50:28.920 ⇒ 00:50:35.680
даже тут не принимал решения, а решил,
00:50:30.720 ⇒ 00:50:35.680
что надо генерировать по 500 токенов.
00:50:36.040 ⇒ 00:50:40.680
Вот с перекрытием в 50 токенов. Это
00:50:38.280 ⇒ 00:50:43.680
делается для того, чтобы, если мы бьём
00:50:40.680 ⇒ 00:50:45.760
абзац, то мы ещё конец абзаца добавляем
00:50:43.680 ⇒ 00:50:49.200
следующий.
00:50:45.760 ⇒ 00:50:50.640
То есть вот абзац содержит сам себя и
00:50:49.200 ⇒ 00:50:53.760
ещё чуть-чуть от предыдущего и чуть-чуть
00:50:50.640 ⇒ 00:50:55.599
от следующего. Это тоже важно в чанках,
00:50:53.760 ⇒ 00:50:59.040
чтобы
00:50:55.599 ⇒ 00:50:59.040
если по смыслу
00:50:59.119 ⇒ 00:51:05.559
кусочек предыдущего
00:51:01.119 ⇒ 00:51:07.240
часто так устроено текстно, что там
00:51:05.559 ⇒ 00:51:08.640
конец одного абзаца начала следующего
00:51:07.240 ⇒ 00:51:11.920
могут быть сематически связаны, поэтому
00:51:08.640 ⇒ 00:51:14.559
важно это перекрытие делать.
00:51:11.920 ⇒ 00:51:17.119
Вот пишет, что для каждого чанка должно
00:51:14.559 ⇒ 00:51:19.520
состоваться векторное представление. Вот
00:51:17.119 ⇒ 00:51:22.559
он выбрал opening copy, потому что я
00:51:19.520 ⇒ 00:51:24.200
токен open доставил.
00:51:22.559 ⇒ 00:51:25.880
чанки и их вектора должны храниться в
00:51:24.200 ⇒ 00:51:28.960
Firлекции
00:51:25.880 ⇒ 00:51:30.920
Doc chunks. То есть,
00:51:28.960 ⇒ 00:51:33.960
а
00:51:30.920 ⇒ 00:51:35.960
вот у нас
00:51:33.960 ⇒ 00:51:38.960
баз данных будет и вот здесь будет
00:51:35.960 ⇒ 00:51:41.280
храниться всё. Посмотрим уже, когда всё
00:51:38.960 ⇒ 00:51:43.839
это будет работать.
00:51:41.280 ⇒ 00:51:46.200
Так, здесь он снова просит уже
00:51:43.839 ⇒ 00:51:47.640
закоммитить. Он типа закончил. Ну, раз
00:51:46.200 ⇒ 00:51:53.319
закончил, давайте пока не будем
00:51:47.640 ⇒ 00:51:53.319
коммитить, проверим остальных. Слушайте,
00:51:53.799 ⇒ 00:51:58.040
кодекс-то уже закончил. Всё, что-то
00:51:55.400 ⇒ 00:52:01.559
довольно быстро всё закончили. Keep loop
00:51:58.040 ⇒ 00:52:01.559
det en
00:52:02.359 ⇒ 00:52:07.440
loop detected. Это кто у нас? J говорит,
00:52:05.480 ⇒ 00:52:09.640
что я
00:52:07.440 ⇒ 00:52:12.960
создал
00:52:09.640 ⇒ 00:52:15.280
файл. Ну о’кей, пусть продолжает.
00:52:12.960 ⇒ 00:52:18.119
Какое-то потенциальное
00:52:15.280 ⇒ 00:52:21.000
зацикливание нашёл.
00:52:18.119 ⇒ 00:52:25.000
Пусть пусть подумает ещё. Не хочу сейчас
00:52:21.000 ⇒ 00:52:28.559
с этим разбираться. Посмотрим на
00:52:25.000 ⇒ 00:52:28.559
Open C.
00:52:30.079 ⇒ 00:52:34.200
Что? Вроде тоже закончил. Непонятно.
00:52:32.559 ⇒ 00:52:36.440
Что-то появилось. Будем с
00:52:34.200 ⇒ 00:52:39.880
Может он завис этот Open CД там. Он
00:52:36.440 ⇒ 00:52:41.480
показывает 49 минут. Это было
00:52:39.880 ⇒ 00:52:44.040
5 минут назад.
00:52:41.480 ⇒ 00:52:45.200
Угу. Может быть. А нет, что-то
00:52:44.040 ⇒ 00:52:47.319
выкинурейте.
00:52:45.200 ⇒ 00:52:48.960
Что-то визуально отображается, что ещё
00:52:47.319 ⇒ 00:52:53.440
живой.
00:52:48.960 ⇒ 00:52:55.960
А Кадир это у нас последний кандидат
00:52:53.440 ⇒ 00:53:00.000
Квин. Он что-то хочет создать. Опять ему
00:52:55.960 ⇒ 00:53:01.799
разрешу, пусть создаёт. Пока они там ещё
00:53:00.000 ⇒ 00:53:05.400
дорабатывают, давайте смотреть, что
00:53:01.799 ⇒ 00:53:08.680
получилось. А, идём в первого агента
00:53:05.400 ⇒ 00:53:10.559
Клода и ему говорю: “Запусти проект в
00:53:08.680 ⇒ 00:53:13.559
режиме разработчика, чтобы я увидел, что
00:53:10.559 ⇒ 00:53:13.559
получилось”.
00:53:13.839 ⇒ 00:53:20.480
Это по сути команда NPM Randf, но так
00:53:17.200 ⇒ 00:53:21.920
как мы веб-кодим и не трогаем код, я с
00:53:20.480 ⇒ 00:53:25.040
ним вот общаюсь голосом, чтобы он сам
00:53:21.920 ⇒ 00:53:26.640
эту команду вызвал. Вот, собственно, of
00:53:25.040 ⇒ 00:53:29.640
вызвал, спрашивает: “Разрешить?”
00:53:26.640 ⇒ 00:53:29.640
Разрешаю.
00:53:29.799 ⇒ 00:53:34.160
Собственно, это мы запускаем наш проект
00:53:32.079 ⇒ 00:53:35.440
локально на машине, чтобы посмотреть,
00:53:34.160 ⇒ 00:53:40.200
что у нас получилось. Ну и давайте
00:53:35.440 ⇒ 00:53:42.400
пойдём и посмотрим. Local host 3.000.
00:53:40.200 ⇒ 00:53:44.559
Это
00:53:42.400 ⇒ 00:53:47.000
то, куда он нас послал.
00:53:44.559 ⇒ 00:53:50.280
Околохо 3.000 будет наш сайт работать.
00:53:47.000 ⇒ 00:53:51.839
Ой, он уже документы пошёл. Давайте
00:53:50.280 ⇒ 00:53:54.000
посмотрим, как это выглядит. Изначально
00:53:51.839 ⇒ 00:53:55.559
мой лепйт выглядит вот так. Здесь есть
00:53:54.000 ⇒ 00:53:58.280
кнопка логин, регистр. Здесь может быть
00:53:55.559 ⇒ 00:54:01.240
ваш лендинг и кнопка входа илибо
00:53:58.280 ⇒ 00:54:03.599
регистрация, да? То есть, так как это
00:54:01.240 ⇒ 00:54:07.520
полноценное приложение, оно не пустит
00:54:03.599 ⇒ 00:54:07.520
сюда незарегистрированных пользователей.
00:54:07.680 ⇒ 00:54:11.960
Поэтому, чтобы получить доступ к
00:54:09.720 ⇒ 00:54:13.720
странице,
00:54:11.960 ⇒ 00:54:15.400
он зарегистрироваться, но я уже
00:54:13.720 ⇒ 00:54:18.280
зарегистрировался. Залогинемся. Сейчас
00:54:15.400 ⇒ 00:54:20.960
вот у меня сохранённый есть пароль.
00:54:18.280 ⇒ 00:54:22.839
Вот пошли.
00:54:20.960 ⇒ 00:54:24.799
Это специальная страница заглушка, что
00:54:22.839 ⇒ 00:54:27.680
вот написано только залогированные
00:54:24.799 ⇒ 00:54:29.040
пользователи видят эту страницу.
00:54:27.680 ⇒ 00:54:31.559
Вот, соответственно, теперь, когда мы
00:54:29.040 ⇒ 00:54:34.520
залогинились, можем пойти, и он нам
00:54:31.559 ⇒ 00:54:37.200
говорит, где что лежит. Вот есть после
00:54:34.520 ⇒ 00:54:38.640
входа страница с документами будет
00:54:37.200 ⇒ 00:54:41.640
лежать по этому адресу. Давайте
00:54:38.640 ⇒ 00:54:41.640
скопируем
00:54:42.880 ⇒ 00:54:48.400
и видим результат. Пабам. Вот он
00:54:45.559 ⇒ 00:54:52.680
интерфейс. Говорит, что мои документы.
00:54:48.400 ⇒ 00:54:56.599
Загрузите документ всем формат. Татата.
00:54:52.680 ⇒ 00:54:56.599
Что с файл? Выбираем
00:54:58.000 ⇒ 00:55:04.240
в десктопе есть какой-то
00:55:01.839 ⇒ 00:55:07.520
документ, который я как разработчик
00:55:04.240 ⇒ 00:55:09.680
писал. Это описание для полреквеста
00:55:07.520 ⇒ 00:55:12.160
моего. Ну, подойдёт какой-то текст,
00:55:09.680 ⇒ 00:55:16.720
допустим. Загрузили. Можно даже два
00:55:12.160 ⇒ 00:55:18.799
загружать. А, я нажал загрузить.
00:55:16.720 ⇒ 00:55:23.400
Опа,
00:55:18.799 ⇒ 00:55:27.880
список документов загрузился. Обработка.
00:55:23.400 ⇒ 00:55:29.799
Круто. Смотрим, что происходит.
00:55:27.880 ⇒ 00:55:31.960
Что у нас происходит?
00:55:29.799 ⇒ 00:55:33.599
Тка.
00:55:31.960 ⇒ 00:55:36.799
Интересно.
00:55:33.599 ⇒ 00:55:40.839
Посмотрим в базе данных. Собновим.
00:55:36.799 ⇒ 00:55:40.839
Что-то произошло.
00:55:42.799 ⇒ 00:55:47.520
О, документ появилась. Таблица с
00:55:44.880 ⇒ 00:55:49.760
документами. Вот он,
00:55:47.520 ⇒ 00:55:53.559
запись. Документ.
00:55:49.760 ⇒ 00:55:56.119
Чан аккаунт. Четыре чанка. Название, ID
00:55:53.559 ⇒ 00:55:59.119
размер в килобайтах, либайтах статус
00:55:56.119 ⇒ 00:56:00.880
ready загружен сегодня. User ID - это
00:55:59.119 ⇒ 00:56:02.480
мой юзер. Видимо, он связал, что я его
00:56:00.880 ⇒ 00:56:06.880
загрузил.
00:56:02.480 ⇒ 00:56:11.559
Вот chanс, соответственно, это вот чанки
00:56:06.880 ⇒ 00:56:11.559
для этого документа. Вот документ ID
00:56:12.079 ⇒ 00:56:15.079
текст
00:56:15.799 ⇒ 00:56:19.280
этого чанка. Собственно, самый
00:56:17.960 ⇒ 00:56:22.839
бедненький - это вот вектор, про который
00:56:19.280 ⇒ 00:56:24.680
я говорил. Вот это массив чисел. Супер.
00:56:22.839 ⇒ 00:56:27.200
Кажется с первого взгляда, что даже
00:56:24.680 ⇒ 00:56:29.480
работает. Единственное, что мне не
00:56:27.200 ⇒ 00:56:31.720
понравилось,
00:56:29.480 ⇒ 00:56:34.079
что обработка зависла здесь статус.
00:56:31.720 ⇒ 00:56:37.039
Наверное, если я обновлю, он скажет, что
00:56:34.079 ⇒ 00:56:38.960
готово. Но вот сам он это не сделал.
00:56:37.039 ⇒ 00:56:43.880
Поэтому,
00:56:38.960 ⇒ 00:56:46.520
когда я загрузил документ, он появился в
00:56:43.880 ⇒ 00:56:49.200
нижней форме, и там было написано
00:56:46.520 ⇒ 00:56:51.760
обработка. Я проверил в базе данных.
00:56:49.200 ⇒ 00:56:54.480
Статус стал уже
00:56:51.760 ⇒ 00:56:56.720
ready, но в интерфейсе не отобразилось
00:56:54.480 ⇒ 00:56:58.640
до тех пор, пока я не обновил страницу.
00:56:56.720 ⇒ 00:57:03.240
Исправь это.
00:56:58.640 ⇒ 00:57:03.240
Ну, дадим ему сразу небольшое замечание.
00:57:05.039 ⇒ 00:57:09.440
Что-то меня Виспер плохо понял. Ну,
00:57:07.440 ⇒ 00:57:12.280
посмотрим, что получится. Вот здесь есть
00:57:09.440 ⇒ 00:57:14.480
кнопка помощник. Посмотрим. Задайте ваш
00:57:12.280 ⇒ 00:57:16.640
вопрос.
00:57:14.480 ⇒ 00:57:19.839
Пам-пам. Ну, я там загрузил файл
00:57:16.640 ⇒ 00:57:23.720
специфический про там
00:57:19.839 ⇒ 00:57:26.799
канвас фичу я разрабатывал НВАС. Что это
00:57:23.720 ⇒ 00:57:30.920
такое? Посмотрим, поймёт ли он, сможет
00:57:26.799 ⇒ 00:57:30.920
ли он достать информацию из файла.
00:57:32.319 ⇒ 00:57:36.640
Информация не найдена в загруженных
00:57:33.839 ⇒ 00:57:40.520
документах.
00:57:36.640 ⇒ 00:57:40.520
Плохо. Что-то не работает.
00:57:41.599 ⇒ 00:57:47.039
Ошибку он говорит по правил.
00:57:44.920 ⇒ 00:57:51.200
А
00:57:47.039 ⇒ 00:57:51.200
теперь будем разбираться с этой ошибкой.
00:57:52.440 ⇒ 00:57:56.960
Когда я задал вопрос, то получил вот
00:57:54.440 ⇒ 00:57:59.000
такой ответ. Хотя я уверен, что мой
00:57:56.960 ⇒ 00:58:01.559
вопрос содержится в документах
00:57:59.000 ⇒ 00:58:03.240
загруженных. Почему так происходит?
00:58:01.559 ⇒ 00:58:06.240
Давай проанализируем и попытаемся
00:58:03.240 ⇒ 00:58:06.240
исправить.
00:58:06.920 ⇒ 00:58:11.480
Вася, а у тебя в документах было что-то
00:58:08.839 ⇒ 00:58:13.000
промт? Мол, отвечай только на основе
00:58:11.480 ⇒ 00:58:15.520
полученных данных. ничего не
00:58:13.000 ⇒ 00:58:18.920
дофантазируй и так далее. Вот эта же
00:58:15.520 ⇒ 00:58:22.119
фраза, а вот эта дословная информация не
00:58:18.920 ⇒ 00:58:23.559
найдена. Она желмка почему-то её решила
00:58:22.119 ⇒ 00:58:27.240
сгенерить.
00:58:23.559 ⇒ 00:58:28.640
Давайте посмотрим. Клод. Я, допустим, я
00:58:27.240 ⇒ 00:58:31.119
я же ничего не делал, он же сам всё
00:58:28.640 ⇒ 00:58:32.920
делал. Поэтому давайте посмотрим, что
00:58:31.119 ⇒ 00:58:36.640
это.
00:58:32.920 ⇒ 00:58:40.680
Поиски. Вот.
00:58:36.640 ⇒ 00:58:42.680
Вот видишь, в коде есть этот эта строка
00:58:40.680 ⇒ 00:58:45.119
прямо она захардкожена.
00:58:42.680 ⇒ 00:58:46.720
То есть, если у нас, ну, это уже код
00:58:45.119 ⇒ 00:58:48.119
пошёл, мы как бы не хотим код смотреть,
00:58:46.720 ⇒ 00:58:50.119
но вот, в общем, по какой-то логике,
00:58:48.119 ⇒ 00:58:51.440
если мы там ничего не нашли,
00:58:50.119 ⇒ 00:58:52.799
соответственно, выдает информацию.
00:58:51.440 ⇒ 00:58:55.680
Почему мы ничего не нашли? Вот это
00:58:52.799 ⇒ 00:58:58.760
вопрос для дебаггинга, да? То есть вот
00:58:55.680 ⇒ 00:59:00.640
этот find top matches, он искал наиболее
00:58:58.760 ⇒ 00:59:03.280
релевантные кусочки,
00:59:00.640 ⇒ 00:59:05.200
но почему-то в итоге получился ноль, и
00:59:03.280 ⇒ 00:59:07.400
он нам так сказал, вот ответил, что
00:59:05.200 ⇒ 00:59:10.960
информации не найдена. А сам пром-то
00:59:07.400 ⇒ 00:59:15.240
написал для себя, чтобы
00:59:10.960 ⇒ 00:59:16.839
возьми там документы, которые нашлись.
00:59:15.240 ⇒ 00:59:18.880
Вопрос не предоставлен. Ну то есть
00:59:16.839 ⇒ 00:59:20.559
обработка ошибок, конечно, шикарная. А
00:59:18.880 ⇒ 00:59:22.240
вот
00:59:20.559 ⇒ 00:59:23.720
Угу.
00:59:22.240 ⇒ 00:59:25.880
Ну смотри, давай посмотрим. Если бы у
00:59:23.720 ⇒ 00:59:27.359
него были эти какие-то фрагменты, они бы
00:59:25.880 ⇒ 00:59:30.480
пошли дальше
00:59:27.359 ⇒ 00:59:32.720
и а
00:59:30.480 ⇒ 00:59:35.359
и они бы добавились в контекст. Вот топ
00:59:32.720 ⇒ 00:59:38.359
match маchс. Он бы взял тексты каждого
00:59:35.359 ⇒ 00:59:41.200
кусочка и добавил бы контекст.
00:59:38.359 ⇒ 00:59:44.319
Он взял бы вопрос, он взял бы контекст и
00:59:41.200 ⇒ 00:59:46.599
ещё историю чата и сгенерировал бы
00:59:44.319 ⇒ 00:59:47.920
ответ. Давай посмотрим, что вре. Вот ты
00:59:46.599 ⇒ 00:59:49.960
помощник, который отвечает на вопросы на
00:59:47.920 ⇒ 00:59:52.079
основе ставного контекста. Если
00:59:49.960 ⇒ 00:59:53.720
информации недостаточно,
00:59:52.079 ⇒ 00:59:55.280
так и скажи: “Отвечая на русском”. Чётко
00:59:53.720 ⇒ 00:59:59.000
и по существу. Ну, довольно простой
00:59:55.280 ⇒ 01:00:02.079
промт, его можно и поменять, но он в
00:59:59.000 ⇒ 01:00:05.039
себя ещё добавляет контекст.
01:00:02.079 ⇒ 01:00:07.960
Собственно, контекст документов. О, по
01:00:05.039 ⇒ 01:00:10.640
коду видно, что он в этом документе
01:00:07.960 ⇒ 01:00:12.200
пытается найти кусочки, абзацы и их
01:00:10.640 ⇒ 01:00:15.640
добавляет в контекст. Собственно, как
01:00:12.200 ⇒ 01:00:18.039
это и работает в
01:00:15.640 ⇒ 01:00:22.400
раге, да, мы
01:00:18.039 ⇒ 01:00:24.559
вот эти кусочки находим из базы данных
01:00:22.400 ⇒ 01:00:26.520
по запросу пользователя и вот эти
01:00:24.559 ⇒ 01:00:28.960
релевантные кусочки в виде текста уже
01:00:26.520 ⇒ 01:00:32.680
отдаём лэмке в виде контекста и просим
01:00:28.960 ⇒ 01:00:34.799
лэмку из вот из именно вот этих
01:00:32.680 ⇒ 01:00:36.920
документов, из этих кусочков дать нам
01:00:34.799 ⇒ 01:00:40.680
ответ. Это здесь видно по коду, что
01:00:36.920 ⇒ 01:00:43.640
правильно работает. Вот он снизил тшхолд
01:00:40.680 ⇒ 01:00:46.960
какой-то, говорит, что слишком строго.
01:00:43.640 ⇒ 01:00:46.960
То есть, видимо,
01:00:47.559 ⇒ 01:00:51.039
закрутил гайки, что типа только
01:00:49.400 ⇒ 01:00:53.920
суперрелевантные
01:00:51.039 ⇒ 01:00:56.240
фрагменты должны были подходить. Сейчас
01:00:53.920 ⇒ 01:00:58.200
он его снизил, говорит, что покажи мне
01:00:56.240 ⇒ 01:01:00.119
логи с терминала.
01:00:58.200 ⇒ 01:01:02.599
Я ему скажу: “Так, ты же сам запускал
01:01:00.119 ⇒ 01:01:06.520
терминал, у тебя есть логи у самого. Ты,
01:01:02.599 ⇒ 01:01:06.520
наверное, и сам сможешь их прочитать”.
01:01:12.000 ⇒ 01:01:19.520
Меня топливает.
01:01:15.640 ⇒ 01:01:19.520
Не, не нашёл, куда вставить.
01:01:26.359 ⇒ 01:01:32.359
Вот
01:01:28.559 ⇒ 01:01:34.319
пусть сам читает, а мы пока ему поможем.
01:01:32.359 ⇒ 01:01:37.079
Зададим ещё раз этот же вопрос, чтобы
01:01:34.319 ⇒ 01:01:40.680
логи какие-то. Он там добавил себеди
01:01:37.079 ⇒ 01:01:43.119
бага логов. И вот я снова занял
01:01:40.680 ⇒ 01:01:44.720
информацию силярити. Возможно
01:01:43.119 ⇒ 01:01:46.200
попробовать вопрос или добавить больше
01:01:44.720 ⇒ 01:01:49.599
контекста. Вот он нам какую-то уже новую
01:01:46.200 ⇒ 01:01:51.400
информацию сказал, что типа этот порог,
01:01:49.599 ⇒ 01:01:55.200
я думаю, надо снизить ещё сильнее.
01:01:51.400 ⇒ 01:01:55.200
Сейчас я ему это передам.
01:01:55.799 ⇒ 01:02:02.839
Попробую снизить ещё сильнее вот этот
01:01:58.480 ⇒ 01:02:02.839
порог, чтобы точно что-то находилось.
01:02:21.839 ⇒ 01:02:26.760
Так, посмотрим, что здесь. Документы.
01:02:27.680 ⇒ 01:02:31.440
Загрузить документы. Давайте
01:02:29.240 ⇒ 01:02:34.200
какой-нибудь ещё один документ добавим.
01:02:31.440 ⇒ 01:02:36.599
Ещё какой-то есть ди для моей рабочей
01:02:34.200 ⇒ 01:02:41.359
задачи какой-то.
01:02:36.599 ⇒ 01:02:43.680
Вот большой файлик тоже ему да скормим в
01:02:41.359 ⇒ 01:02:46.520
контекст, загрузим, посмотрим, починил
01:02:43.680 ⇒ 01:02:50.119
ли он реально вот этот статус.
01:02:46.520 ⇒ 01:02:50.119
Обработка. Обработка.
01:02:50.279 ⇒ 01:02:55.559
Готово. Он действительно починил.
01:02:53.720 ⇒ 01:02:58.200
Теперь вот у него пополнилась база. Уже
01:02:55.559 ⇒ 01:02:59.440
два документа.
01:02:58.200 ⇒ 01:03:01.240
Соответственно, здесь может быть там
01:02:59.440 ⇒ 01:03:04.359
какая-то ваша база знаний, это может
01:03:01.240 ⇒ 01:03:06.559
быть ваши заметки из обсидиана и такая,
01:03:04.359 ⇒ 01:03:09.000
если их там огромное количество, что в
01:03:06.559 ⇒ 01:03:13.039
контекст не влазит, то вот эта система
01:03:09.000 ⇒ 01:03:17.079
может тоже быть полезной.
01:03:13.039 ⇒ 01:03:17.079
Так, попробуем ещё раз.
01:03:20.760 ⇒ 01:03:23.760
Угу.
01:03:29.000 ⇒ 01:03:33.039
Вот он снизил порог до 0,2 и говорит,
01:03:31.400 ⇒ 01:03:34.559
что низкие семинарити ответы могут быть
01:03:33.039 ⇒ 01:03:36.279
неточными. Ну ничего, нас это
01:03:34.559 ⇒ 01:03:39.279
устраивает.
01:03:36.279 ⇒ 01:03:39.279
Обработка.
01:03:40.240 ⇒ 01:03:44.240
О, смотрите, канвас - это новая функция,
01:03:42.599 ⇒ 01:03:46.839
представлена в полреквесте. Она включает
01:03:44.240 ⇒ 01:03:49.160
в себя обширный редактор, который подат.
01:03:46.839 ⇒ 01:03:53.400
Короче, круто. Это прямо то, что было в
01:03:49.160 ⇒ 01:03:53.400
моём документе, который я загружал.
01:03:53.760 ⇒ 01:03:58.760
То есть он реально нашёл из документа
01:03:59.119 ⇒ 01:04:04.039
информацию, перевёл её и представил мне
01:04:01.440 ⇒ 01:04:05.920
в нужном виде.
01:04:04.039 ⇒ 01:04:09.799
А теперь вот я там добавил ещё один
01:04:05.920 ⇒ 01:04:12.799
документ, задам ему ещё вопрос: а как
01:04:09.799 ⇒ 01:04:12.799
работает?
01:04:16.240 ⇒ 01:04:18.799
Я просто знаю, что спрашиваю, потому что
01:04:17.599 ⇒ 01:04:21.799
я знаю, что там в том документе
01:04:18.799 ⇒ 01:04:21.799
написано.
01:04:22.279 ⇒ 01:04:30.400
В общем, там техническое описание фич,
01:04:27.440 ⇒ 01:04:33.400
и я ему эти вопросы по тому документам
01:04:30.400 ⇒ 01:04:33.400
задаю.
01:04:34.440 ⇒ 01:04:38.359
Доработка.
01:04:35.920 ⇒ 01:04:40.599
Слушай, а почему так, ну, с некоторой
01:04:38.359 ⇒ 01:04:42.920
задержкой генерится, да? То есть там на
01:04:40.599 ⇒ 01:04:45.400
чём теряется время? Эта модель думает
01:04:42.920 ⇒ 01:04:47.039
слишком долго или поиск долгий идёт. То
01:04:45.400 ⇒ 01:04:47.720
есть результат есть.
01:04:47.039 ⇒ 01:04:50.559
Угу.
01:04:47.720 ⇒ 01:04:53.920
Но там он прямо думает секунд 10.
01:04:50.559 ⇒ 01:04:56.200
Угу. Да. Ну это
01:04:53.920 ⇒ 01:04:59.000
хороший вопрос. На чём надо дебажить?
01:04:56.200 ⇒ 01:05:01.520
Давай у него и спросим. Сейчас генерация
01:04:59.000 ⇒ 01:05:04.319
ответов занимает как-то много времени,
01:05:01.520 ⇒ 01:05:06.960
секунд 8-10. Почему это так долго
01:05:04.319 ⇒ 01:05:09.559
происходит? Где теряется время? Можно ли
01:05:06.960 ⇒ 01:05:12.640
как-то ускорить отдачу ответа?
01:05:09.559 ⇒ 01:05:15.000
Пока он будет работать над этим, могу
01:05:12.640 ⇒ 01:05:17.920
сказать, что поиск чанков, вот эта
01:05:15.000 ⇒ 01:05:21.359
задача, а,
01:05:17.920 ⇒ 01:05:23.880
эмбединг запроса и нахождение в
01:05:21.359 ⇒ 01:05:26.799
векторной базе данных
01:05:23.880 ⇒ 01:05:28.559
наиблизких
01:05:26.799 ⇒ 01:05:30.760
наиболее похожих акторов, она довольно
01:05:28.559 ⇒ 01:05:33.359
быстрая, если мы используем специальную
01:05:30.760 ⇒ 01:05:36.559
тип базы данных, который хорошо работает
01:05:33.359 ⇒ 01:05:38.240
с SQL-запросами, которые
01:05:36.559 ⇒ 01:05:40.599
есть специальные плагины для базданных,
01:05:38.240 ⇒ 01:05:44.039
чтобы специальные вектора хранить. Это
01:05:40.599 ⇒ 01:05:47.839
как бы отдельная специфика.
01:05:44.039 ⇒ 01:05:49.160
И вообще это быстрая операция,
01:05:47.839 ⇒ 01:05:51.279
если использовать специальную баз
01:05:49.160 ⇒ 01:05:53.680
данных. Но мы здесь использовали
01:05:51.279 ⇒ 01:05:57.400
простейшую версию файбейза, поэтому,
01:05:53.680 ⇒ 01:06:01.559
возможно, там нахождение
01:05:57.400 ⇒ 01:06:03.680
вот этих векторов, оно чуть-чуть дольше
01:06:01.559 ⇒ 01:06:06.039
работать, потому что здесь не
01:06:03.680 ⇒ 01:06:07.720
предназначена для этого баз данных. Если
01:06:06.039 ⇒ 01:06:09.279
её чуть-чуть дотёнить, там плагин
01:06:07.720 ⇒ 01:06:11.400
поставить, она будет работать. Но,
01:06:09.279 ⇒ 01:06:12.599
видимо, в рамках MVP он этого не сделал,
01:06:11.400 ⇒ 01:06:14.079
поэтому, скорее всего, там время
01:06:12.599 ⇒ 01:06:16.720
теряется.
01:06:14.079 ⇒ 01:06:18.760
Ну, мне кажется, мне вот это моя самая
01:06:16.720 ⇒ 01:06:21.680
любимая фич, когда получился хороший
01:06:18.760 ⇒ 01:06:23.720
результат, дальше можно реверс
01:06:21.680 ⇒ 01:06:26.000
инженирить и спрашивать: “Как мы вообще
01:06:23.720 ⇒ 01:06:27.720
это сделали?” Да? То есть это работает.
01:06:26.000 ⇒ 01:06:30.160
Спросить: “А что, если мы поменяем
01:06:27.720 ⇒ 01:06:32.920
модели? А что, если мы будем имбедить
01:06:30.160 ⇒ 01:06:34.760
по-другому? А что, а где задержки? Как
01:06:32.920 ⇒ 01:06:37.400
можно ускорить? А как лучше подготовить
01:06:34.760 ⇒ 01:06:39.880
данные? Ну и на самом деле это learning
01:06:37.400 ⇒ 01:06:42.000
by doing самый настоящий, когда ты
01:06:39.880 ⇒ 01:06:43.960
сделал вот сейчас вот вот видно твой
01:06:42.000 ⇒ 01:06:46.240
проект и сейчас уже можно сильно
01:06:43.960 ⇒ 01:06:49.319
расслабиться и дальше уже заниматься
01:06:46.240 ⇒ 01:06:52.960
приятным тюнингом и изучением теории,
01:06:49.319 ⇒ 01:06:56.440
грубо говоря, почему это работает.
01:06:52.960 ⇒ 01:06:59.119
Да, это правда, это очень классная тема.
01:06:56.440 ⇒ 01:07:01.039
Мы реально видим, что клодко код
01:06:59.119 ⇒ 01:07:05.079
справился хорошо. Вот, буквально один
01:07:01.039 ⇒ 01:07:08.440
промт плюс пару, я ему сказал, ткнул
01:07:05.079 ⇒ 01:07:10.240
носом его недочёты. И вот буквально с
01:07:08.440 ⇒ 01:07:11.799
ваншота мы получили работающий рак
01:07:10.240 ⇒ 01:07:13.960
продукт, где мы загружаем документы.
01:07:11.799 ⇒ 01:07:15.920
Документы в базе данных. Это не просто
01:07:13.960 ⇒ 01:07:18.039
прототип в болте, это реальная база
01:07:15.920 ⇒ 01:07:21.079
данных, реальная авторизация.
01:07:18.039 ⇒ 01:07:22.359
Две страницы. Вот
01:07:21.079 ⇒ 01:07:24.039
сейчас ещё отдадим.
01:07:22.359 ⇒ 01:07:26.039
Давай ещё давай ещё после этого
01:07:24.039 ⇒ 01:07:28.960
посмотрим других. Интересно, какой у
01:07:26.039 ⇒ 01:07:30.559
них, например, вкус к интерфейсам,
01:07:28.960 ⇒ 01:07:33.119
как они,
01:07:30.559 ⇒ 01:07:36.039
э, решили расположить блоки, какая у них
01:07:33.119 ⇒ 01:07:37.200
там коммуникация в интерфейсах, как это
01:07:36.039 ⇒ 01:07:38.599
вообще работает.
01:07:37.200 ⇒ 01:07:40.400
Давай, мне тоже очень интересно. И,
01:07:38.599 ⇒ 01:07:42.880
кстати, Серёж, видишь, сейчас это было
01:07:40.400 ⇒ 01:07:45.720
довольно быстро. То есть вот я ему
01:07:42.880 ⇒ 01:07:47.440
сказал, то есть он подкрутил там что-то,
01:07:45.720 ⇒ 01:07:49.359
он использовал модель поглупее.
01:07:47.440 ⇒ 01:07:54.799
Смотри-ка, побыстрее модель использовал.
01:07:49.359 ⇒ 01:07:58.160
Да, прямо смотри, довольно быстро даёт.
01:07:54.799 ⇒ 01:07:58.799
Может быть, мне ещё вот он
01:07:58.160 ⇒ 01:08:00.880
довольно быстро
01:07:58.799 ⇒ 01:08:02.839
быстрее стало быстрее. Да, он модель
01:08:00.880 ⇒ 01:08:08.200
поменял.
01:08:02.839 ⇒ 01:08:11.359
Возможно, да. Вот так. Что круто. How is
01:08:08.200 ⇒ 01:08:12.559
doing this session? Просит нас оценить,
01:08:11.359 ⇒ 01:08:16.640
как будто бы знает, что мы его
01:08:12.559 ⇒ 01:08:18.279
оцениваем. Ну давайте скажем, что
01:08:16.640 ⇒ 01:08:20.239
не, ну я бы даже good поставил, на самом
01:08:18.279 ⇒ 01:08:23.199
деле.
01:08:20.239 ⇒ 01:08:25.960
Молодец, хорошо спрялся. Я прямо доволен
01:08:23.199 ⇒ 01:08:28.560
буквально с одного раза. Всё, закрываем
01:08:25.960 ⇒ 01:08:31.279
этот
01:08:28.560 ⇒ 01:08:33.000
вот последний этап. Как ты думаешь, надо
01:08:31.279 ⇒ 01:08:35.319
ли обновить
01:08:33.000 ⇒ 01:08:38.440
у тебя это называется agents MD или Clod
01:08:35.319 ⇒ 01:08:40.880
MD или, ну, вот вот ты перед закрытием
01:08:38.440 ⇒ 01:08:43.279
терминала и перед закрытием сессии
01:08:40.880 ⇒ 01:08:44.600
что-то хочется это сохранить как-то, да?
01:08:43.279 ⇒ 01:08:47.520
Что я не знаю.
01:08:44.600 ⇒ 01:08:49.880
А, да, отлично. Угу. пометь, что мы
01:08:47.520 ⇒ 01:08:51.359
выполнили все задачи,
01:08:49.880 ⇒ 01:08:53.920
что-то
01:08:51.359 ⇒ 01:08:56.799
сохранить в контекст то, что мы делали.
01:08:53.920 ⇒ 01:09:00.120
Это хороший поинт, что в целом это
01:08:56.799 ⇒ 01:09:01.480
важная часть разработки сейчас создавать
01:09:00.120 ⇒ 01:09:04.480
документацию после того, как что-то
01:09:01.480 ⇒ 01:09:06.239
сделал. Поэтому, потому что сейчас я
01:09:04.480 ⇒ 01:09:08.520
сделал фичу, придёт завтра другой
01:09:06.239 ⇒ 01:09:09.920
разработчик и он начнёт разбираться.
01:09:08.520 ⇒ 01:09:11.880
Вернее, другой разработчик, он тоже
01:09:09.920 ⇒ 01:09:13.799
будет использовать агента, и ему нужно
01:09:11.880 ⇒ 01:09:16.319
будет какой-то контекст. Он бы взял
01:09:13.799 ⇒ 01:09:19.359
какой-нибудь файлик. контекст этой
01:09:16.319 ⇒ 01:09:20.960
фичирмил бы проект агенту и агент бы уже
01:09:19.359 ⇒ 01:09:22.960
лучше понимал, что там было за фича, что
01:09:20.960 ⇒ 01:09:25.319
было сделано. И вот такой файлик нам
01:09:22.960 ⇒ 01:09:29.679
нужно где-то сохранить. Поэтому я всё
01:09:25.319 ⇒ 01:09:33.480
сейчас вам скажу: создай папку контекст
01:09:29.679 ⇒ 01:09:38.719
и положи туда файл MD, в котором ты
01:09:33.480 ⇒ 01:09:40.600
опишешь всё, что ты сейчас сделал.
01:09:38.719 ⇒ 01:09:43.600
расскажешь про функциональность этой
01:09:40.600 ⇒ 01:09:47.440
фечи, которую ты разработал,
01:09:43.600 ⇒ 01:09:47.440
такую техническую документацию.
01:09:49.799 ⇒ 01:09:53.719
Вот попросил его задокументировать то,
01:09:52.120 ⇒ 01:09:57.920
что он натворил, пока он это помнит,
01:09:53.719 ⇒ 01:09:59.560
пока у него в контексте осталось.
01:09:57.920 ⇒ 01:10:02.360
И, кстати, у меня здесь выводится,
01:09:59.560 ⇒ 01:10:05.040
сколько мы контекста проели, вот 64%
01:10:02.360 ⇒ 01:10:07.120
контекста окна. То есть в целом мини САС
01:10:05.040 ⇒ 01:10:10.040
продукт умещается
01:10:07.120 ⇒ 01:10:13.320
в контекстное окно в разработку, что
01:10:10.040 ⇒ 01:10:13.320
очень круто.
01:10:14.239 ⇒ 01:10:18.360
Вот попросили его создать.
01:10:22.400 ⇒ 01:10:25.960
Мне очень нравится, как у клод-кода вот
01:10:24.440 ⇒ 01:10:31.080
эти фразочки.
01:10:25.960 ⇒ 01:10:31.080
Да, это фантастика просто. Это офигенно.
01:10:31.280 ⇒ 01:10:38.360
Они понто что-то смешнявое придумывают.
01:10:34.520 ⇒ 01:10:41.080
Давай посмотрим кодекс и кно, например.
01:10:38.360 ⇒ 01:10:47.679
Давай, да. Ну точно так же буду говорить
01:10:41.080 ⇒ 01:10:47.679
ему: “Запусти проект в деф режиме”.
01:10:48.280 ⇒ 01:10:55.360
Тут, кстати, 90% контекст left, то есть
01:10:52.480 ⇒ 01:10:57.719
он сожрал всего 10% контекста. Ну
01:10:55.360 ⇒ 01:11:00.920
да, кстати, где-то ещё меньше съел. Вот
01:10:57.719 ⇒ 01:11:03.480
тоже хороший показатель. Интересно,
01:11:00.920 ⇒ 01:11:04.760
что за модель там? Сейчас же у Кодекса
01:11:03.480 ⇒ 01:11:09.159
вышла новая модель специальная
01:11:04.760 ⇒ 01:11:12.480
кодинговая GPT 5 по в общем какая-то
01:11:09.159 ⇒ 01:11:13.840
специальная более.
01:11:12.480 ⇒ 01:11:16.040
В общем, это всегда очень интересно
01:11:13.840 ⇒ 01:11:17.719
тестировать, менять модели. У меня 2 дня
01:11:16.040 ⇒ 01:11:21.400
назад был хакатон, в котором я сам
01:11:17.719 ⇒ 01:11:24.320
участвовал, и во время хакатона ээ лёг
01:11:21.400 ⇒ 01:11:26.280
сервер Антропика идкод вообще не
01:11:24.320 ⇒ 01:11:27.679
работал. Я запаниковал, пошёл в Кодекс,
01:11:26.280 ⇒ 01:11:31.920
но Кодекс тоже неплохо справился, на
01:11:27.679 ⇒ 01:11:34.880
самом деле. такой запасной вариант
01:11:31.920 ⇒ 01:11:36.560
не подвёл.
01:11:34.880 ⇒ 01:11:38.880
Также можно использовать разных агентов,
01:11:36.560 ⇒ 01:11:41.880
если там лимиты у каких-то у одного
01:11:38.880 ⇒ 01:11:41.880
закончились,
01:11:42.199 ⇒ 01:11:45.040
другой можно использовать. Так, я
01:11:43.679 ⇒ 01:11:46.560
вернулся в Квин, потому что он там всё
01:11:45.040 ⇒ 01:11:48.800
ещё у меня спрашивает разрешение.
01:11:46.560 ⇒ 01:11:51.400
Слушайте,
01:11:48.800 ⇒ 01:11:53.800
ну, мне кажется, что этот выбывает онкод
01:11:51.400 ⇒ 01:11:56.440
у нас сегодня. Можно, конечно, ему дать
01:11:53.800 ⇒ 01:11:58.400
второй шанс как-нибудь, но на сегодня он
01:11:56.440 ⇒ 01:12:01.840
так вот с первого раза не дал нам
01:11:58.400 ⇒ 01:12:04.679
результат. Квин всё ещё
01:12:01.840 ⇒ 01:12:07.679
в гонке. Что-то он там опять какие-то
01:12:04.679 ⇒ 01:12:11.199
зависимости трогает. Зачем? Удалил
01:12:07.679 ⇒ 01:12:13.280
сервер ТСФА за В общем, что-то он
01:12:11.199 ⇒ 01:12:16.440
куда-то погнал, мне кажется. Вот же уже.
01:12:13.280 ⇒ 01:12:19.239
Но не будем делать поспешных выводов.
01:12:16.440 ⇒ 01:12:22.239
А он нас спрашивает, разрешит ли запуск
01:12:19.239 ⇒ 01:12:22.239
команды?
01:12:23.520 ⇒ 01:12:30.000
Я ему разрешу.
01:12:26.800 ⇒ 01:12:32.880
То всё же запущен адрес.
01:12:30.000 ⇒ 01:12:37.960
Интересно даже мне какой-то адрес с моим
01:12:32.880 ⇒ 01:12:37.960
айпишником дал. Посмотрим.
01:12:43.520 ⇒ 01:12:47.880
Так, видим, что тот же самый
01:12:46.239 ⇒ 01:12:50.880
проектниться
01:12:47.880 ⇒ 01:12:50.880
можно
01:12:51.280 ⇒ 01:12:54.280
адликались,
01:13:01.910 ⇒ 01:13:07.000
[музыка]
01:13:03.159 ⇒ 01:13:12.199
да,нились. Вот точно также он расположил
01:13:07.000 ⇒ 01:13:12.199
по адресу documents наш проект.
01:13:14.600 ⇒ 01:13:20.320
Смотрим. Пабам.
01:13:18.239 ⇒ 01:13:25.639
Ну, в целом, так как у меня проект уже
01:13:20.320 ⇒ 01:13:28.719
содержит библиотеку юая от SHCEN и
01:13:25.639 ⇒ 01:13:30.880
стилевое описание, поэтому они выглядят
01:13:28.719 ⇒ 01:13:33.199
очень похожим образом,
01:13:30.880 ⇒ 01:13:35.840
да, вообще не похожи. Нет,
01:13:33.199 ⇒ 01:13:38.280
сильно хуже вообще какая-то.
01:13:35.840 ⇒ 01:13:40.080
А, ну как будто болванковая, да, штука,
01:13:38.280 ⇒ 01:13:42.440
потому что там у тебя в контексте было,
01:13:40.080 ⇒ 01:13:44.639
чтовин можно использовать, но и пару
01:13:42.440 ⇒ 01:13:46.400
классов можно было бы поставить, чтобы
01:13:44.639 ⇒ 01:13:48.199
было более приятно. Ну, типа кнопку
01:13:46.400 ⇒ 01:13:50.360
сделать кнопкой.
01:13:48.199 ⇒ 01:13:55.560
Угу. Ну ладно, да. Ну, давай посмотрим
01:13:50.360 ⇒ 01:13:55.560
на функциональность. Загружаем документ.
01:13:58.880 ⇒ 01:14:01.880
грузовица.
01:14:02.840 ⇒ 01:14:09.719
грузилось. Готово. Прикольно. Сразу
01:14:06.120 ⇒ 01:14:11.920
остался статус перейти к ассистенту.
01:14:09.719 ⇒ 01:14:16.320
Видите, ваш вопрос,
01:14:11.920 ⇒ 01:14:18.920
что такое опять же
01:14:16.320 ⇒ 01:14:21.360
О, прикольно, здесь отработал по
01:14:18.920 ⇒ 01:14:23.639
entтеру. Там такого не было. Мне очень
01:14:21.360 ⇒ 01:14:25.960
приятно, когда я нажал Enter, он сразу
01:14:23.639 ⇒ 01:14:30.480
раз информации не найдена. Скорее всего,
01:14:25.960 ⇒ 01:14:32.199
такая же проблема. Так, мы уже знаем,
01:14:30.480 ⇒ 01:14:33.639
когда я задал вопрос, то получил ответ.
01:14:32.199 ⇒ 01:14:36.760
Информация не найдена. Скорее всего,
01:14:33.639 ⇒ 01:14:39.159
там, а, порог
01:14:36.760 ⇒ 01:14:41.040
слишком высоко задрангты.
01:14:39.159 ⇒ 01:14:43.360
Снись его, чтобы точно находились
01:14:41.040 ⇒ 01:14:44.560
какие-нибудь фрагменты. Вот это та же
01:14:43.360 ⇒ 01:14:48.000
самая проблема, которая видимо была в
01:14:44.560 ⇒ 01:14:48.000
предыдущей версии.
01:14:48.719 ⇒ 01:14:53.040
Вот попробуем
01:14:53.639 ⇒ 01:14:57.960
его об этом попросить.
01:14:56.120 ⇒ 01:14:59.840
Так, ну, видно, что работа с базой
01:14:57.960 ⇒ 01:15:02.159
выполнена хорошо. То есть файлик
01:14:59.840 ⇒ 01:15:05.639
сохранился в базу,
01:15:02.159 ⇒ 01:15:08.320
есть его список. А
01:15:05.639 ⇒ 01:15:12.280
получается, база у нас одна и та же.
01:15:08.320 ⇒ 01:15:12.280
Интересно, куда он её положил?
01:15:16.080 ⇒ 01:15:22.440
Users, появилась ещё таблица users.
01:15:19.800 ⇒ 01:15:25.320
Ага, он сделал интересно. Он, то есть,
01:15:22.440 ⇒ 01:15:27.440
э,
01:15:25.320 ⇒ 01:15:30.679
по-разному они оформили структуру баз
01:15:27.440 ⇒ 01:15:34.920
данданных. Аэ,
01:15:30.679 ⇒ 01:15:38.960
через clotд создал документы, таблицу
01:15:34.920 ⇒ 01:15:40.679
прямо в корне, адек
01:15:38.960 ⇒ 01:15:42.280
решил, что документы должны принадлежать
01:15:40.679 ⇒ 01:15:45.719
пользователю. То есть он создал таблицу
01:15:42.280 ⇒ 01:15:47.280
users, и уже у юзера есть документы. То
01:15:45.719 ⇒ 01:15:51.159
есть, если мы два разных пользователя
01:15:47.280 ⇒ 01:15:53.320
зайдём, то у каждого будет своё решение,
01:15:51.159 ⇒ 01:15:56.400
да? То есть у каждого будут свои
01:15:53.320 ⇒ 01:15:58.000
документы и свои чанки, что в целом
01:15:56.400 ⇒ 01:16:00.320
имеет место быть. Но это такой вопрос
01:15:58.000 ⇒ 01:16:02.880
спорный, потому что если мы хотим
01:16:00.320 ⇒ 01:16:04.880
сделать общую базу и расшарить её, то,
01:16:02.880 ⇒ 01:16:06.400
возможно, надо было делать по-другому.
01:16:04.880 ⇒ 01:16:09.880
Но это вот интересный момент, как
01:16:06.400 ⇒ 01:16:13.159
проектировать базу данных на старте. все
01:16:09.880 ⇒ 01:16:14.920
эти связи, что
01:16:13.159 ⇒ 01:16:17.560
кто что может видеть, права доступа. Вот
01:16:14.920 ⇒ 01:16:20.000
эти моменты лучше описывать на старте,
01:16:17.560 ⇒ 01:16:21.920
как когда мы начинаем, чтобы получить
01:16:20.000 ⇒ 01:16:24.080
желаемый результат. Здесь мы видим
01:16:21.920 ⇒ 01:16:27.000
абсолютно два разных подхода, хоть и
01:16:24.080 ⇒ 01:16:29.719
рабочие, но
01:16:27.000 ⇒ 01:16:32.040
а а давай попробуем ещё один запустить,
01:16:29.719 ⇒ 01:16:34.440
чтобы визуально посмотреть, как у какого
01:16:32.040 ⇒ 01:16:35.639
агента какой вкус, и просто хочется
01:16:34.440 ⇒ 01:16:38.120
оставить немножко времени на
01:16:35.639 ⇒ 01:16:39.960
вопросы-ответы. Или напишите в чате, что
01:16:38.120 ⇒ 01:16:43.159
вы хотите спросить. Может быть, вопросы
01:16:39.960 ⇒ 01:16:44.840
будут повторяться, и мы пачкой на них
01:16:43.159 ⇒ 01:16:47.840
ответим.
01:16:44.840 ⇒ 01:16:47.840
Угу.
01:16:48.679 ⇒ 01:16:54.120
Масны. Ну, скорее всего, если я ещё пару
01:16:51.000 ⇒ 01:16:58.199
трассы сделаю, он снова заработает.
01:16:54.120 ⇒ 01:17:01.560
А, но в целом тоже почти с первого раза.
01:16:58.199 ⇒ 01:17:03.400
Вот всегда есть приятный приятный бонус,
01:17:01.560 ⇒ 01:17:05.960
когда работаешь терминалом, попросить
01:17:03.400 ⇒ 01:17:08.360
его, например, выводи всё в логи, он
01:17:05.960 ⇒ 01:17:10.600
запускает серверы, там что-то не
01:17:08.360 ⇒ 01:17:12.480
работает, и он сам же эти логи читает,
01:17:10.600 ⇒ 01:17:14.520
сам же правит. И
01:17:12.480 ⇒ 01:17:17.440
в этом смысле он может сам себя
01:17:14.520 ⇒ 01:17:19.719
улучшать. И, ну, как минимум, можно эти
01:17:17.440 ⇒ 01:17:21.560
логи или скриншоты
01:17:19.719 ⇒ 01:17:24.920
или ответы
01:17:21.560 ⇒ 01:17:27.560
отправлять ему с вопросами. А вот
01:17:24.920 ⇒ 01:17:29.159
главное эти логи получать.
01:17:27.560 ⇒ 01:17:32.239
Да, если просишь его внутри себя
01:17:29.159 ⇒ 01:17:34.639
запускать, то он имеет
01:17:32.239 ⇒ 01:17:37.040
право внутри себя запускать эти команды,
01:17:34.639 ⇒ 01:17:40.120
да, и видит вот эти логи прямо внутри
01:17:37.040 ⇒ 01:17:42.840
себя и в целом и читает. Ему не надо их
01:17:40.120 ⇒ 01:17:45.520
копировать, вставлять.
01:17:42.840 ⇒ 01:17:48.280
Вот попросили его запустить. Это сейчас
01:17:45.520 ⇒ 01:17:50.199
будет Gemй. Кажется, что
01:17:48.280 ⇒ 01:17:51.880
Угу.
01:17:50.199 ⇒ 01:17:54.639
Open CД вышел из игры, потому что
01:17:51.880 ⇒ 01:17:56.000
последний раз мы его видели в 6:49
01:17:54.639 ⇒ 01:17:57.840
полчаса назад. тех пор.
01:17:56.000 ⇒ 01:18:02.120
А, а попробуй ему написать, например,
01:17:57.840 ⇒ 01:18:02.120
там: “Продожай, он вообще живой”.
01:18:09.040 ⇒ 01:18:11.679
Может быть, там токен, не знаю. Ну, в
01:18:10.400 ⇒ 01:18:13.040
общем, мне не нравится, что это миниму
01:18:11.679 ⇒ 01:18:14.280
он так это
01:18:13.040 ⇒ 01:18:16.960
он под сомнением живой.
01:18:14.280 ⇒ 01:18:19.520
Ты жив и и на ответ он мне это какой-то
01:18:16.960 ⇒ 01:18:22.520
код продолжил выплёвывать и глянь, и
01:18:19.520 ⇒ 01:18:25.400
пошёл дальше. Его надо было разбудить
01:18:22.520 ⇒ 01:18:29.360
буквально.
01:18:25.400 ⇒ 01:18:32.040
Слушай, ну не, ну он это какой-то
01:18:29.360 ⇒ 01:18:35.360
странный разработчик, который которому
01:18:32.040 ⇒ 01:18:37.719
нужен менеджер с палкой его пинать
01:18:35.360 ⇒ 01:18:40.600
спрашивать Джифр. Ну да, часто в жизни
01:18:37.719 ⇒ 01:18:42.360
такое бывает.
01:18:40.600 ⇒ 01:18:46.560
Скорее всего мы не увидим его
01:18:42.360 ⇒ 01:18:50.840
результата. Он просрочил дедлайны.
01:18:46.560 ⇒ 01:18:53.199
А тем временем Квин честно работает и
01:18:50.840 ⇒ 01:18:56.199
даже уже
01:18:53.199 ⇒ 01:19:01.000
люди к концу. Посмотрим на ДМА. Тем
01:18:56.199 ⇒ 01:19:01.000
временем, что он запустился? Нет,
01:19:01.719 ⇒ 01:19:05.520
я же тебя просил запустить.
01:19:05.600 ⇒ 01:19:12.120
Подожди, только он только
01:19:09.480 ⇒ 01:19:14.360
3 пть. Он он ещё вообще не запустился
01:19:12.120 ⇒ 01:19:15.880
или он ещё даже не закончил разработку,
01:19:14.360 ⇒ 01:19:17.800
насколько я вижу.
01:19:15.880 ⇒ 01:19:20.480
Вот последнее, что он мне выдал, это
01:19:17.800 ⇒ 01:19:26.120
какой-то код он продолжает писать. И что
01:19:20.480 ⇒ 01:19:28.320
он на пункте 35 было в последний раз
01:19:26.120 ⇒ 01:19:31.560
тоже, значит, он не дошёл до конца, как
01:19:28.320 ⇒ 01:19:31.560
я просил.
01:19:34.719 ⇒ 01:19:41.480
То есть тут напрашивается такой вывод,
01:19:36.520 ⇒ 01:19:43.360
что с не топовыми инструментами либо
01:19:41.480 ⇒ 01:19:46.120
можно вообще не дойти до конца, вот как
01:19:43.360 ⇒ 01:19:49.080
к Вен, либо, может быть, сильно
01:19:46.120 ⇒ 01:19:51.840
зависнуть.
01:19:49.080 ⇒ 01:19:53.600
Ну вот условно какой-нибудь из этих CLI
01:19:51.840 ⇒ 01:19:56.280
инструментов был бы бесплатный. То есть
01:19:53.600 ⇒ 01:19:59.120
мы бы просто разменяли время нашего
01:19:56.280 ⇒ 01:20:02.199
мучения на получение результата, вместо
01:19:59.120 ⇒ 01:20:04.800
того, чтобы использовать э там какие-то
01:20:02.199 ⇒ 01:20:07.800
токены, дешёвые или дорогие.
01:20:04.800 ⇒ 01:20:07.800
Угу.
01:20:07.920 ⇒ 01:20:12.560
Да, тем временем я попросил создать
01:20:10.000 ⇒ 01:20:15.440
документ в папке контекст. Вот он,
01:20:12.560 ⇒ 01:20:18.520
MDфайл. Сейчас можно посмотреть. Вот
01:20:15.440 ⇒ 01:20:20.199
создал папку контекст и этот документ с
01:20:18.520 ⇒ 01:20:22.600
документацией. Вот, собственно, гляньте,
01:20:20.199 ⇒ 01:20:24.960
как красиво. Архитектура. нарисовал даже
01:20:22.600 ⇒ 01:20:27.480
какой-то график, что как работает. То
01:20:24.960 ⇒ 01:20:29.600
есть мы вот здесь вот зашли на страницу,
01:20:27.480 ⇒ 01:20:32.520
разделили начанкинг, заимбедили,
01:20:29.600 ⇒ 01:20:35.920
положили stor на странице ассистента
01:20:32.520 ⇒ 01:20:37.880
спросили, замбедили вопрос, нашли пять
01:20:35.920 ⇒ 01:20:41.080
наиболее похожих чанков, отправили в
01:20:37.880 ⇒ 01:20:42.679
GPT4 mini и получили ответ. Рассказал,
01:20:41.080 ⇒ 01:20:45.280
какая файловая структура, рассказал
01:20:42.679 ⇒ 01:20:48.520
какая структура базы данных. И прямо
01:20:45.280 ⇒ 01:20:50.040
такой подробный вот документации,
01:20:48.520 ⇒ 01:20:54.239
который, собственно, можно и
01:20:50.040 ⇒ 01:20:57.000
использовать для теста нашей же системы.
01:20:54.239 ⇒ 01:20:58.600
Перейдём к документам, то как раз таки,
01:20:57.000 ⇒ 01:21:02.639
а, ну, он, кстати, не сделал Drнроop,
01:20:58.600 ⇒ 01:21:02.639
поэтому придётся руками выбирать.
01:21:10.320 ⇒ 01:21:17.159
вот и можем по нашей же фиче и работать.
01:21:17.719 ⇒ 01:21:25.840
Загрузил, но он тут не будет работать,
01:21:19.960 ⇒ 01:21:25.840
да? Мы помним, что он так и не завёлся.
01:21:25.920 ⇒ 01:21:29.600
Порог снижен, но он так и не завёлся.
01:21:27.639 ⇒ 01:21:31.480
Скорее всего, надо дебажить, но сейчас
01:21:29.600 ⇒ 01:21:35.040
всё же это неважно.
01:21:31.480 ⇒ 01:21:40.840
Так, а что-то там про квоту, про квоту
01:21:35.040 ⇒ 01:21:43.440
limit for 2.5 Pro. Мы уперлись с квото
01:21:40.840 ⇒ 01:21:48.880
вот так вот. Но G9 у меня был бесплатный
01:21:43.440 ⇒ 01:21:52.000
и благо, что он сделал почти до конца.
01:21:48.880 ⇒ 01:21:55.120
Кстати, про бесплатность у тебя кодекс в
01:21:52.000 ⇒ 01:21:58.400
подписке или клауды в подписке? То есть
01:21:55.120 ⇒ 01:22:01.000
Клауда по-другому спрошу, что обычная
01:21:58.400 ⇒ 01:22:02.400
история, когда включен CL инструмент в
01:22:01.000 ⇒ 01:22:04.679
твою обычную там двадцати
01:22:02.400 ⇒ 01:22:06.280
двадцатипятибаксовую подписку. И там вот
01:22:04.679 ⇒ 01:22:09.159
можно, как сейчас в примере GNI,
01:22:06.280 ⇒ 01:22:12.800
упереться в конец сессии, да, типа, мол,
01:22:09.159 ⇒ 01:22:15.520
продолжите там через 5, 6, 10 часов. А,
01:22:12.800 ⇒ 01:22:18.000
а вот а клод у тебя бесконечный был,
01:22:15.520 ⇒ 01:22:21.120
правильно? Он у тебя про версии?
01:22:18.000 ⇒ 01:22:23.719
Да, у меня Cloud даже макс версии, то
01:22:21.120 ⇒ 01:22:25.199
есть за 200 баксов, который вообще
01:22:23.719 ⇒ 01:22:29.560
безлимитный, потому что я его активно
01:22:25.199 ⇒ 01:22:31.719
использую и мне это выгоднее.
01:22:29.560 ⇒ 01:22:33.880
То есть мы тут не знаем, на самом деле,
01:22:31.719 ⇒ 01:22:36.239
упёрлись ли бы мы в обычной там типа
01:22:33.880 ⇒ 01:22:37.920
плюс версии число токенов.
01:22:36.239 ⇒ 01:22:40.639
Нет, не упёрлись бы, потому что мы видим
01:22:37.920 ⇒ 01:22:40.960
здесь контекст 69 там. А,
01:22:40.639 ⇒ 01:22:42.800
да,
01:22:40.960 ⇒ 01:22:45.440
сколько там? Ну, под сколько, да, в
01:22:42.800 ⇒ 01:22:48.639
общем, мы видели, что мы влезли в окно.
01:22:45.440 ⇒ 01:22:48.639
Это немного.
01:22:48.719 ⇒ 01:22:53.600
Такую задачу мы бы успели сделать на
01:22:50.760 ⇒ 01:22:55.600
обычной версии за 15 баксов.
01:22:53.600 ⇒ 01:22:57.960
У Кодекса, который тоже в целом
01:22:55.600 ⇒ 01:23:01.080
справился, у меня подписка тоже обычная
01:22:57.960 ⇒ 01:23:02.760
за там 20 баксов.
01:23:01.080 ⇒ 01:23:05.320
В рамках неё тоже получилось полностью
01:23:02.760 ⇒ 01:23:07.960
сделать, не упереться влеты и всего 10%
01:23:05.320 ⇒ 01:23:10.480
8% съесть от
01:23:07.960 ⇒ 01:23:12.960
контекстного окна. То есть в целом
01:23:10.480 ⇒ 01:23:14.560
довольно дешёвая получилась операция. Он
01:23:12.960 ⇒ 01:23:16.679
знал, что делать. У него была хорошая
01:23:14.560 ⇒ 01:23:18.520
инструкция, и он делал только только то,
01:23:16.679 ⇒ 01:23:20.199
что нужно.
01:23:18.520 ⇒ 01:23:22.679
По маленькой задачке выполнял. Это тоже
01:23:20.199 ⇒ 01:23:25.199
помогает экономить контекст.
01:23:22.679 ⇒ 01:23:26.320
Вот, к сожалению, GMI придётся списать
01:23:25.199 ⇒ 01:23:28.520
со счетов
01:23:26.320 ⇒ 01:23:32.199
из-за дисквалификации, из-за нехватки
01:23:28.520 ⇒ 01:23:36.000
кредитов. А, извиняюсь, но не раскошелся
01:23:32.199 ⇒ 01:23:38.800
на подписку от Гугла.
01:23:36.000 ⇒ 01:23:43.560
Получилось, что получилось. Open CД
01:23:38.800 ⇒ 01:23:43.560
говорит, что я всё закончил. Неужели?
01:23:43.760 ⇒ 01:23:50.960
А ну давай тогда запусти тогда npm rdef
01:23:47.159 ⇒ 01:23:50.960
на порту 3.0003.
01:23:52.320 ⇒ 01:23:55.800
Я просто хочу все сразу запустить, чтобы
01:23:54.080 ⇒ 01:24:00.480
они не конфликтовали. Вот у каждого
01:23:55.800 ⇒ 01:24:02.719
версии есть порт. Могли сразу
01:24:00.480 ⇒ 01:24:06.719
попробовать. Вот запустил. Давайте
01:24:02.719 ⇒ 01:24:10.560
посмотрим, вдруг всё-таки код Ой, вдруг
01:24:06.719 ⇒ 01:24:15.239
Open Cд справился хорошо с версией
01:24:10.560 ⇒ 01:24:16.880
модели Грока, мало ли.
01:24:15.239 ⇒ 01:24:18.920
Знает
01:24:16.880 ⇒ 01:24:20.560
Кин
01:24:18.920 ⇒ 01:24:23.840
спрашивает,
01:24:20.560 ⇒ 01:24:27.360
да, может быть даже к не дойдет. О’кей.
01:24:23.840 ⇒ 01:24:27.360
А залогинимся.
01:24:31.600 ⇒ 01:24:37.080
О. Круто. MS docums.
01:24:34.920 ⇒ 01:24:38.719
О, смотрите.
01:24:37.080 ⇒ 01:24:42.159
А тем временем Open sourourсная
01:24:38.719 ⇒ 01:24:46.719
бесплатная модель доехала до конца. Не
01:24:42.159 ⇒ 01:24:48.840
потратил я ни копейки денег. А-а,
01:24:46.719 ⇒ 01:24:50.560
правда, один раз её пришлось разбудить,
01:24:48.840 ⇒ 01:24:51.560
но вот смотрите, даже есть навигация.
01:24:50.560 ⇒ 01:24:53.080
Ситично, вообще симпатичная
01:24:51.560 ⇒ 01:24:56.440
навигация.
01:24:53.080 ⇒ 01:24:56.440
Вот есть асистент.
01:24:56.719 ⇒ 01:25:03.719
Если если вы с нами следили, может быть,
01:25:00.960 ⇒ 01:25:05.360
напишите, какая ваша решение самое
01:25:03.719 ⇒ 01:25:08.040
больше всего понравилось, хотя бы
01:25:05.360 ⇒ 01:25:10.639
визуально у нас был первый Gemнай,
01:25:08.040 ⇒ 01:25:12.080
второй у нас был Кто у нас был второй?
01:25:10.639 ⇒ 01:25:14.600
Кодекс,
01:25:12.080 ⇒ 01:25:17.560
да? Первый у нас был Крокод.
01:25:14.600 ⇒ 01:25:19.199
Второй у нас был кодекс. Вот это сейчас
01:25:17.560 ⇒ 01:25:22.760
кодекс завёлся.
01:25:19.199 ⇒ 01:25:25.920
А кодекс был вот этот вариант такой не
01:25:22.760 ⇒ 01:25:28.320
очень красивый. А это Open CД,
01:25:25.920 ⇒ 01:25:30.400
бесплатный openсорсный
01:25:28.320 ⇒ 01:25:32.639
агент, в котором можно платные модели
01:25:30.400 ⇒ 01:25:34.760
использовать через токены, но базово вот
01:25:32.639 ⇒ 01:25:36.800
на гроке бесплатно. Я на бесплатной
01:25:34.760 ⇒ 01:25:38.480
подписке, не подписке, просто на
01:25:36.800 ⇒ 01:25:40.119
бесплатной версии сделал, не потратив ни
01:25:38.480 ⇒ 01:25:43.239
копейки.
01:25:40.119 ⇒ 01:25:45.440
Вас нас ещё просят показать квен. А я бы
01:25:43.239 ⇒ 01:25:48.760
тут, ну, я смотрю на время, на самом
01:25:45.440 ⇒ 01:25:51.719
деле, чтобы мы оставили не сильно
01:25:48.760 ⇒ 01:25:53.000
задерживались, смотрели, а, и успели на
01:25:51.719 ⇒ 01:25:54.960
какие-то вопросы ответить. просто
01:25:53.000 ⇒ 01:25:57.679
визуально. То есть, мне кажется, мы все
01:25:54.960 ⇒ 01:26:00.239
поверили уже, что, а, коннекшн с
01:25:57.679 ⇒ 01:26:02.280
Файрбейсом реализован, эмбединги
01:26:00.239 ⇒ 01:26:05.600
реализованы, что эта задача у тебя была
01:26:02.280 ⇒ 01:26:07.199
хорошо описана и поэтому не вызвала
01:26:05.600 ⇒ 01:26:08.760
проблем и у Фаербейса хватает
01:26:07.199 ⇒ 01:26:11.400
документации.
01:26:08.760 ⇒ 01:26:13.480
С этим вопросов нет. Интересно чисто
01:26:11.400 ⇒ 01:26:16.880
визуально look andфield посмотреть, как
01:26:13.480 ⇒ 01:26:19.960
это работает. Э потому что у агентов
01:26:16.880 ⇒ 01:26:22.280
есть свои какие-то предпочтения, видимо,
01:26:19.960 ⇒ 01:26:25.119
по интерфейсам.
01:26:22.280 ⇒ 01:26:28.960
Ну и сравним, сравним и проголосуем. Я
01:26:25.119 ⇒ 01:26:30.600
думаю, что А второй вариант можно, не
01:26:28.960 ⇒ 01:26:34.119
знаю, хотя нет, может быть, он кому-то
01:26:30.600 ⇒ 01:26:37.320
понравится. То есть тут cloudкод, а вот
01:26:34.119 ⇒ 01:26:41.199
это третья и четвёртая модели, вернее,
01:26:37.320 ⇒ 01:26:41.199
агентов сравнить бы.
01:26:42.400 ⇒ 01:26:43.960
Это он.
01:26:43.560 ⇒ 01:26:46.000
Это он,
01:26:43.960 ⇒ 01:26:47.600
это OpenC. Это Open CД, да.
01:26:46.000 ⇒ 01:26:49.840
Open CД,
01:26:47.600 ⇒ 01:26:51.560
да. Посмотрим вот upлоadдинг. Но мне
01:26:49.840 ⇒ 01:26:52.920
нравится в целом стиль, процессинг,
01:26:51.560 ⇒ 01:26:55.119
симпатично вообще.
01:26:52.920 ⇒ 01:26:57.239
Не не уверен, будет ли он работать, но с
01:26:55.119 ⇒ 01:26:58.920
точки Вот он не работает, по крайней
01:26:57.239 ⇒ 01:27:01.400
мере, с первого раза. То есть документ
01:26:58.920 ⇒ 01:27:06.480
он не сохранил куда-то сюда. Вот
01:27:01.400 ⇒ 01:27:06.480
ассистент, давайте спросим. А
01:27:09.719 ⇒ 01:27:15.679
question.
01:27:12.239 ⇒ 01:27:18.239
Ну то есть понятно, да, какие-то ошибки
01:27:15.679 ⇒ 01:27:19.920
непонятно какие. Надо его ещё дебажить.
01:27:18.239 ⇒ 01:27:22.920
Но интерфейс был неплохой с первого
01:27:19.920 ⇒ 01:27:26.480
раза. То есть функционально, между
01:27:22.920 ⇒ 01:27:27.920
прочим, кажется, что
01:27:26.480 ⇒ 01:27:29.520
этот был лучше, потому что он хотя бы в
01:27:27.920 ⇒ 01:27:31.520
базу данных всё сохранил, начанки
01:27:29.520 ⇒ 01:27:33.800
разбил.
01:27:31.520 ⇒ 01:27:35.440
Ну, клод тоже всё сделал.
01:27:33.800 ⇒ 01:27:36.880
А клод вообще красавчик, да?
01:27:35.440 ⇒ 01:27:39.360
То есть теперь можно сказать: “Возьми
01:27:36.880 ⇒ 01:27:42.440
интерфейс вот отсюда и накати его.
01:27:39.360 ⇒ 01:27:44.760
Оставь функциональность только используй
01:27:42.440 ⇒ 01:27:48.400
HTML вот из этого,
01:27:44.760 ⇒ 01:27:49.719
да? То есть вообще не не зря напрягали
01:27:48.400 ⇒ 01:27:52.000
вот этого
01:27:49.719 ⇒ 01:27:54.159
агента, потому что у него получилось
01:27:52.000 ⇒ 01:27:56.280
его, не знаю, такой промежуточный вывод
01:27:54.159 ⇒ 01:27:59.639
от Балды, что его можно напрягать делать
01:27:56.280 ⇒ 01:28:02.159
интерфейсы, да, если у него такой вкус.
01:27:59.639 ⇒ 01:28:04.960
Угу. Ну, я в целом думаю, что можно и
01:28:02.159 ⇒ 01:28:08.480
его помучить ещё чуть-чуть. Там просто
01:28:04.960 ⇒ 01:28:11.960
модель у Онкода можно выбрать модель. И
01:28:08.480 ⇒ 01:28:12.280
сейчас там стоила бесплатная от Грока.
01:28:11.960 ⇒ 01:28:14.480
Угу.
01:28:12.280 ⇒ 01:28:16.600
М, она не самая лучшая. Там есть, на
01:28:14.480 ⇒ 01:28:19.560
самом деле, хорошие модели сейчас
01:28:16.600 ⇒ 01:28:23.159
мощные. Они не сравнятся всё равно в нею
01:28:19.560 ⇒ 01:28:24.440
с клоуд кодом, на мой взгляд, но как
01:28:23.159 ⇒ 01:28:28.040
минимум чуть лучше результат можно
01:28:24.440 ⇒ 01:28:29.000
выжимать за меньшие деньги из Open CД
01:28:28.040 ⇒ 01:28:31.040
Словойного.
01:28:29.000 ⇒ 01:28:33.520
Это это та же идея, которая в прошлый
01:28:31.040 ⇒ 01:28:36.480
раз была, когда ты писал PD с более
01:28:33.520 ⇒ 01:28:38.719
мощной моделью, а программировала более,
01:28:36.480 ⇒ 01:28:41.760
ну, менее когнитивная модель. Да, тоже
01:28:38.719 ⇒ 01:28:44.600
классный подход. вые какие-то моменты,
01:28:41.760 ⇒ 01:28:46.719
например, дебаг, исправление ошибок,
01:28:44.600 ⇒ 01:28:48.480
чтение логов, вообще разобраться, что
01:28:46.719 ⇒ 01:28:51.840
именно не работает, можно подключать
01:28:48.480 ⇒ 01:28:55.920
более такую суровую модель, и их
01:28:51.840 ⇒ 01:28:55.920
сочетание сработает хорошо.
01:28:56.800 ⇒ 01:29:01.400
Да, всё так.
01:28:59.480 ⇒ 01:29:04.280
Кстати, было заявлено у нас ещё плой на
01:29:01.400 ⇒ 01:29:06.880
Versell, но тут даже в целом можно не
01:29:04.280 ⇒ 01:29:09.880
особо останавливаться.
01:29:06.880 ⇒ 01:29:11.639
Ну или давайте это быстро сделаем.
01:29:09.880 ⇒ 01:29:15.000
У нас есть
01:29:11.639 ⇒ 01:29:18.920
тот же самый агент. Я, так как я
01:29:15.000 ⇒ 01:29:20.560
склонировал репозиторий себе, я хочу его
01:29:18.920 ⇒ 01:29:24.320
создать как новый. Давайте сейчас быстро
01:29:20.560 ⇒ 01:29:27.880
создам. То есть это же я не хочу портить
01:29:24.320 ⇒ 01:29:31.239
berпate в него комитить. Я хочу создать
01:29:27.880 ⇒ 01:29:37.639
новый репозиторий себе, э, во-первых,
01:29:31.239 ⇒ 01:29:37.639
свой аккаунт и там рак, ээ,
01:29:39.880 ⇒ 01:29:44.719
просто рак. О’кей.
01:29:42.199 ⇒ 01:29:47.360
public create repository
01:29:44.719 ⇒ 01:29:51.199
содим
01:29:47.360 ⇒ 01:29:53.000
скопируем сюда описание
01:29:51.199 ⇒ 01:29:56.840
и
01:29:53.000 ⇒ 01:29:58.920
отвяжись от текущего гита и закомить
01:29:56.840 ⇒ 01:30:02.800
запуш все изменения вот в новой
01:29:58.920 ⇒ 01:30:02.800
репозитории, который я создал.
01:30:03.480 ⇒ 01:30:09.560
Вот. Ну, даю задачу всё залить мне в
01:30:06.639 ⇒ 01:30:13.880
новые чистенький репозиторий.
01:30:09.560 ⇒ 01:30:13.880
типа мой победитель, который работает.
01:30:13.960 ⇒ 01:30:17.600
Тем временем откроюell.
01:30:18.480 ⇒ 01:30:23.880
Так, я делал это на
01:30:21.960 ⇒ 01:30:25.560
nextjs. Это, собственно, то, что
01:30:23.880 ⇒ 01:30:30.280
разработали Verscell. И всё это сделано
01:30:25.560 ⇒ 01:30:33.360
для того, чтобы они, ой, не тот VCEL,
01:30:30.280 ⇒ 01:30:33.360
чтобы пользовались их
01:30:35.480 ⇒ 01:30:42.280
хостингом для деплоя.
01:30:39.199 ⇒ 01:30:44.400
Вот. Ну что тут у нас?
01:30:42.280 ⇒ 01:30:47.119
Creations deployment. Вот так выглядит
01:30:44.400 ⇒ 01:30:53.080
их сайт.
01:30:47.119 ⇒ 01:30:53.080
Он его здесь не был. Так вотмен.
01:30:53.679 ⇒ 01:30:57.520
Угу. Угу.
01:31:00.639 ⇒ 01:31:03.639
Agent.
01:31:06.520 ⇒ 01:31:11.800
А вот это
01:31:09.760 ⇒ 01:31:14.440
нашёл.
01:31:11.800 ⇒ 01:31:16.639
У меня авторизован мой GitHub аккаунт в
01:31:14.440 ⇒ 01:31:20.080
их интерфейсе.
01:31:16.639 ⇒ 01:31:23.440
Вот поэтому он может подтянуть.
01:31:20.080 ⇒ 01:31:24.639
Всё обновим. Запушился ли он?
01:31:23.440 ⇒ 01:31:27.560
А он меня спрашивает, можно ли ему
01:31:24.639 ⇒ 01:31:30.040
запушить. Да, я ему разрешаю всё это
01:31:27.560 ⇒ 01:31:33.639
делать.
01:31:30.040 ⇒ 01:31:37.280
Я разрешаю ему добавлять
01:31:33.639 ⇒ 01:31:41.920
и разрешаю комметить.
01:31:37.280 ⇒ 01:31:44.920
И решаю всё делать.
01:31:41.920 ⇒ 01:31:44.920
Решаю
01:31:46.199 ⇒ 01:31:49.199
решаю.
01:31:54.880 ⇒ 01:32:00.840
Контек
01:31:56.880 ⇒ 01:32:04.440
где-то он там Ghub заблокировал файли
01:32:00.840 ⇒ 01:32:04.440
секреты. Опа,
01:32:04.480 ⇒ 01:32:09.280
видите, поймал. То есть не дал нам
01:32:07.639 ⇒ 01:32:11.360
закомментировать мой публичный ключ.
01:32:09.280 ⇒ 01:32:15.840
Странно почему-то.
01:32:11.360 ⇒ 01:32:17.880
А EN потому что Gitignor, наверное,
01:32:15.840 ⇒ 01:32:21.440
содержит файл
01:32:17.880 ⇒ 01:32:24.159
с точкой. Ну неважно. А в итоге всё
01:32:21.440 ⇒ 01:32:28.600
о’кей. GitHub нас спас.
01:32:24.159 ⇒ 01:32:28.600
Мы удалили севамен.
01:32:28.719 ⇒ 01:32:33.560
Ну да, всё равно не пускает. Ну пусть
01:32:30.719 ⇒ 01:32:35.040
ещё подумает.
01:32:33.560 ⇒ 01:32:36.600
В общем, как бы это выглядело, можем
01:32:35.040 ⇒ 01:32:39.000
задеплоить другой проект. Пока неважно.
01:32:36.600 ⇒ 01:32:43.480
Вот он старте.
01:32:39.000 ⇒ 01:32:47.000
А просто выбираю свой проект Zхаubба
01:32:43.480 ⇒ 01:32:50.080
Next JS как framework
01:32:47.000 ⇒ 01:32:53.840
и просто жму. Всё. Вот две кнопки для
01:32:50.080 ⇒ 01:32:53.840
того, чтобы сайт появился.
01:32:59.199 ⇒ 01:33:02.960
Сейчас он за пару минут его задеплот. И
01:33:00.880 ⇒ 01:33:07.760
единственное, что останется,
01:33:02.960 ⇒ 01:33:12.880
вот эти envirймен ключи, которые у нас
01:33:07.760 ⇒ 01:33:15.760
переменные из Файбейза, из PНА и ключ,
01:33:12.880 ⇒ 01:33:16.960
их надо будет отсюда скопировать. Здесь
01:33:15.760 ⇒ 01:33:19.679
мы их использовали для локальной
01:33:16.960 ⇒ 01:33:22.639
разработки, но чтобы проект заработал,
01:33:19.679 ⇒ 01:33:24.920
мы должны положить их, э, вот сюда в
01:33:22.639 ⇒ 01:33:28.880
инваймене. Вот, собственно, таким
01:33:24.920 ⇒ 01:33:31.280
образом. Берём отсюда значение ключ. Так
01:33:28.880 ⇒ 01:33:33.960
как он de point не даёт мне, но суть в
01:33:31.280 ⇒ 01:33:37.719
том, чтобы наполнить все наши GitHub,
01:33:33.960 ⇒ 01:33:41.239
ой, все наши секретные ключи
01:33:37.719 ⇒ 01:33:41.239
вот в этом окошке.
01:33:42.639 ⇒ 01:33:48.320
Вот он ключ не нашёл, поэтому и
01:33:44.239 ⇒ 01:33:51.600
ругается. В общем-то, берём,
01:33:48.320 ⇒ 01:33:53.760
добавляем value
01:33:51.600 ⇒ 01:33:56.560
value.
01:33:53.760 ⇒ 01:33:58.560
Ну там так далее, не буду время тратить
01:33:56.560 ⇒ 01:34:00.679
и так далее. Добавляю все переменные и
01:33:58.560 ⇒ 01:34:05.560
нажму плой. И всё будет хорошо. Он нам
01:34:00.679 ⇒ 01:34:08.360
даст ссылку на проект. А там, скорее
01:34:05.560 ⇒ 01:34:10.560
всего, будет какая-то какой-то сайт типа
01:34:08.360 ⇒ 01:34:12.679
там блаблабла.
01:34:10.560 ⇒ 01:34:16.520
Но мы можем потом подключить к нему наш
01:34:12.679 ⇒ 01:34:20.159
домен, купить какое-нибудь красивое имя,
01:34:16.520 ⇒ 01:34:23.239
поменять DNS записи и появится на нашем
01:34:20.159 ⇒ 01:34:27.520
домене наш продукт
01:34:23.239 ⇒ 01:34:30.880
в режиме продакш. Если коротко, то так.
01:34:27.520 ⇒ 01:34:33.119
Да, спасибо, Вась. Да, э, я предлагаю
01:34:30.880 ⇒ 01:34:36.560
закругляться, если у вас есть вопросы,
01:34:33.119 ⇒ 01:34:39.119
есть последние шансы их задать. А у нас
01:34:36.560 ⇒ 01:34:40.840
ещё была заявлена глава про развитие.
01:34:39.119 ⇒ 01:34:43.320
Можно взять это, подумать и в чате
01:34:40.840 ⇒ 01:34:46.119
решить, но мне кажется очевидным этот
01:34:43.320 ⇒ 01:34:47.639
движок использовать как ээнд для
01:34:46.119 ⇒ 01:34:49.920
какого-нибудь чатбота. То есть не
01:34:47.639 ⇒ 01:34:53.800
использовать его как сайт, а дописать
01:34:49.920 ⇒ 01:34:56.560
туда опишку и прикрутить к телеграму,
01:34:53.800 ⇒ 01:35:00.199
например, или прикрутить к слаку или к
01:34:56.560 ⇒ 01:35:03.800
чему угодно, потому что а когда система
01:35:00.199 ⇒ 01:35:07.360
вот это ядро работает, да, а его можно
01:35:03.800 ⇒ 01:35:09.159
дальше переиспользовать, было бы здорово
01:35:07.360 ⇒ 01:35:11.760
этим пользоваться. То есть, условно,
01:35:09.159 ⇒ 01:35:14.480
администратор туда вносит доки, следит
01:35:11.760 ⇒ 01:35:17.960
за их актуальностью,
01:35:14.480 ⇒ 01:35:22.000
эмбидирует, заводит юзеров, а все ходят
01:35:17.960 ⇒ 01:35:24.560
и пользуются этим аа из каких-то других
01:35:22.000 ⇒ 01:35:26.760
интерфейсов.
01:35:24.560 ⇒ 01:35:28.080
Ещё как идея, можно взять обсидиан базы
01:35:26.760 ⇒ 01:35:29.600
данных. Я же так правильно понимаю, что
01:35:28.080 ⇒ 01:35:31.600
там в обсидиане файле хранятся где-то
01:35:29.600 ⇒ 01:35:33.480
файлой системе, может быть, даже на
01:35:31.600 ⇒ 01:35:36.080
дропбоксе условно, да, сделать
01:35:33.480 ⇒ 01:35:38.560
интеграцию с дропбоксом и все файлы из
01:35:36.080 ⇒ 01:35:40.080
обсидиана эмбедить. чтобы у вас в
01:35:38.560 ⇒ 01:35:42.000
Телеграме был доступ к вашей базе
01:35:40.080 ⇒ 01:35:43.520
обсидиана напрямую. Возможно, такие
01:35:42.000 ⇒ 01:35:44.119
плагины уже есть, но можно сделать
01:35:43.520 ⇒ 01:35:46.920
своего.
01:35:44.119 ⇒ 01:35:48.560
Да-дада. Можно дёргать по таймеру или,
01:35:46.920 ⇒ 01:35:52.119
например,
01:35:48.560 ⇒ 01:35:54.400
можно это в приложении сказать, да,
01:35:52.119 ⇒ 01:35:57.280
чтобы она ходила в drбокс, чтобы сервер
01:35:54.400 ⇒ 01:35:59.719
дёргалбокс там напрямую. Потому что у
01:35:57.280 ⇒ 01:36:01.920
нас, если мы задеплоили приложение в
01:35:59.719 ⇒ 01:36:04.480
облако, по сути, верцеловское, теперь
01:36:01.920 ⇒ 01:36:06.560
облако с облаком могут общаться, минуяшу
01:36:04.480 ⇒ 01:36:09.280
разработку. Только надо им сказать, как
01:36:06.560 ⇒ 01:36:09.280
это делать.
01:36:09.679 ⇒ 01:36:17.600
Вот. И заново вопрос. Дада. Сорри. Угу.
01:36:14.480 ⇒ 01:36:19.800
А я просто начал отвечать на вопрос. Ещё
01:36:17.600 ⇒ 01:36:22.600
вижу вопрос в чате, например, вот чем
01:36:19.800 ⇒ 01:36:24.960
отличается бединг от такинизации?
01:36:22.600 ⇒ 01:36:27.840
А могу быстренько ответить, если ещё
01:36:24.960 ⇒ 01:36:31.440
актуально. Был давно.
01:36:27.840 ⇒ 01:36:33.679
Абединг - это перевод текста в численные
01:36:31.440 ⇒ 01:36:36.320
значения, вот в массив цифр. А
01:36:33.679 ⇒ 01:36:40.199
токинизация находит из текста какие-то
01:36:36.320 ⇒ 01:36:44.560
основные главные слова, корни слов, и
01:36:40.199 ⇒ 01:36:47.000
делает уменьшенное уменьшенную строку
01:36:44.560 ⇒ 01:36:50.080
содержащих содержащий смысла. То есть
01:36:47.000 ⇒ 01:36:51.360
убирает всякие, наверное, там глаголы,
01:36:50.080 ⇒ 01:36:54.800
убирает
01:36:51.360 ⇒ 01:36:57.239
ненужные части текста, оставляет только
01:36:54.800 ⇒ 01:36:59.280
корни смысловых значений. Получается
01:36:57.239 ⇒ 01:37:02.840
уменьшенная строка, которая приводит
01:36:59.280 ⇒ 01:37:02.840
ближе нас к смыслу.
01:37:06.840 ⇒ 01:37:09.880
Так, друзья,
01:37:08.880 ⇒ 01:37:10.600
а
01:37:09.880 ⇒ 01:37:12.239
да, давай.
01:37:10.600 ⇒ 01:37:14.520
Как, как, как ставятся агенты? Вот
01:37:12.239 ⇒ 01:37:16.760
спрашивают Руслан.
01:37:14.520 ⇒ 01:37:18.800
Я
01:37:16.760 ⇒ 01:37:22.320
Серёжа уже скинул ссылки на всех
01:37:18.800 ⇒ 01:37:24.800
агентов. Там под Linux, ну, под каждую
01:37:22.320 ⇒ 01:37:27.000
систему своя команда. Просто скопируйте,
01:37:24.800 ⇒ 01:37:28.800
вставьте в терминал. в одну команду, он
01:37:27.000 ⇒ 01:37:32.199
установится. Дальше попросит
01:37:28.800 ⇒ 01:37:35.360
авторизации, скорее всего, нажа, он
01:37:32.199 ⇒ 01:37:38.000
откроет веб интерфейс авторизации.
01:37:35.360 ⇒ 01:37:39.360
Авторизуйтесь и всё, агентом можно
01:37:38.000 ⇒ 01:37:40.239
начинать пользоваться. То есть довольно
01:37:39.360 ⇒ 01:37:42.560
просто команда.
01:37:40.239 ⇒ 01:37:44.560
Тут ещё тут ещё можно, если это звучит
01:37:42.560 ⇒ 01:37:47.239
страшная инструкция, там документация и
01:37:44.560 ⇒ 01:37:48.760
так далее, я так делаю. Я открываю клод
01:37:47.239 ⇒ 01:37:51.119
и говорю, беру эту страницу с
01:37:48.760 ⇒ 01:37:52.880
документацией и говорю: “Я на Маке, я
01:37:51.119 ⇒ 01:37:54.320
умею пользоваться терминалом. Он у меня
01:37:52.880 ⇒ 01:37:56.639
открыт прямо сейчас. У меня есть
01:37:54.320 ⇒ 01:37:59.400
такая-то инструкция. Я хочу запустить
01:37:56.639 ⇒ 01:38:01.920
клод-код. Вот, посмотри, расскажи мне,
01:37:59.400 ⇒ 01:38:04.199
пожалуйста, по шагам, чего делать. Это
01:38:01.920 ⇒ 01:38:07.199
то же самое, что Вася сказал. Просто на
01:38:04.199 ⇒ 01:38:09.760
человеческом языке получится прямо э
01:38:07.199 ⇒ 01:38:11.639
такая детализация до нужного нам уровня,
01:38:09.760 ⇒ 01:38:13.599
потому что вызвать терминал, например,
01:38:11.639 ⇒ 01:38:16.000
это тоже может быть проблемой, да? Я вот
01:38:13.599 ⇒ 01:38:17.639
не скидываю это со счетов, а может быть
01:38:16.000 ⇒ 01:38:19.960
открываем терминал и видим, что он
01:38:17.639 ⇒ 01:38:21.520
открывается вот в таком окошечке и там,
01:38:19.960 ⇒ 01:38:23.960
значит, текст
01:38:21.520 ⇒ 01:38:25.480
девятым пунктом. И как бы мне просто
01:38:23.960 ⇒ 01:38:28.080
неудобно с этим работать. Я даже не
01:38:25.480 ⇒ 01:38:30.080
понимаю, устал у меня клод-код или нет.
01:38:28.080 ⇒ 01:38:32.320
И хороший вариант документацию
01:38:30.080 ⇒ 01:38:34.599
скармливать лэмки и с ней параллельно
01:38:32.320 ⇒ 01:38:37.639
говорить о том, что происходит. И в
01:38:34.599 ⇒ 01:38:40.760
целом тут Вася прав, что ставятся они
01:38:37.639 ⇒ 01:38:45.159
очень просто, а на все системы, где есть
01:38:40.760 ⇒ 01:38:45.159
терминал, а он есть везде.
01:38:49.239 ⇒ 01:38:55.920
Вот.
01:38:51.199 ⇒ 01:38:58.800
Давайте это будет up
01:38:55.920 ⇒ 01:39:01.239
какая-нибудь команда там на поставить
01:38:58.800 ⇒ 01:39:03.440
ноду ставить, а потом пакет поставить
01:39:01.239 ⇒ 01:39:05.360
клодовский и всё.
01:39:03.440 ⇒ 01:39:07.960
Вот есть ещё pпитон версия, но она, не
01:39:05.360 ⇒ 01:39:11.199
знаю, у меня заводится гораздо реже. То
01:39:07.960 ⇒ 01:39:14.159
есть лмка ответит прямо с копированием
01:39:11.199 ⇒ 01:39:16.960
кода. Я всё хочу наконец всех нас
01:39:14.159 ⇒ 01:39:19.119
отпустить в пятницу вечером. А-а,
01:39:16.960 ⇒ 01:39:21.239
отдельно сказать, что это, кажется, был
01:39:19.119 ⇒ 01:39:23.960
последний наш воркшоп-семинар,
01:39:21.239 ⇒ 01:39:28.040
мастер-класс всей большой лабы, что тоже
01:39:23.960 ⇒ 01:39:30.920
хочется отметить. У нас остаётся только
01:39:28.040 ⇒ 01:39:33.440
демодень, в который было бы классно,
01:39:30.920 ⇒ 01:39:36.360
если бы вы принесли свои наработки,
01:39:33.440 ⇒ 01:39:38.920
лучшие проекты, открытия,
01:39:36.360 ⇒ 01:39:40.920
не знаю, поделки, ээ, какие-то
01:39:38.920 ⇒ 01:39:43.679
ПТ-проекты весёлые или, наоборот,
01:39:40.920 ⇒ 01:39:45.440
серьёзные, важные, не знаю,
01:39:43.679 ⇒ 01:39:46.960
проработанные.
01:39:45.440 ⇒ 01:39:49.320
или,
01:39:46.960 ⇒ 01:39:52.280
не знаю, смешные. Всё, всё, всё годится,
01:39:49.320 ⇒ 01:39:54.880
потому что, ну, мне, как преподу, важно
01:39:52.280 ⇒ 01:39:57.040
изменение поведение отслеживать, что вы
01:39:54.880 ⇒ 01:39:58.840
не умели, а умеете. Ну, то есть не то,
01:39:57.040 ⇒ 01:40:01.840
что вы знали, а теперь вы не знали, а
01:39:58.840 ⇒ 01:40:04.119
теперь знаете про имбе. Это, ну,
01:40:01.840 ⇒ 01:40:07.440
неплохо. Но то, что вы их используете и
01:40:04.119 ⇒ 01:40:09.960
то, что вы их потрогали руками и вы
01:40:07.440 ⇒ 01:40:12.199
смогли их применить, то, чего они
01:40:09.960 ⇒ 01:40:13.920
применяли, вот это самое крутое. Так что
01:40:12.199 ⇒ 01:40:15.639
приходите похвалиться, получить
01:40:13.920 ⇒ 01:40:19.320
поддержки.
01:40:15.639 ⇒ 01:40:21.040
и порадоваться всем вместе, что там у
01:40:19.320 ⇒ 01:40:22.800
нас получилось.
01:40:21.040 ⇒ 01:40:25.000
Я ещё вставлю 5 коп от себя. Да,
01:40:22.800 ⇒ 01:40:28.040
во-первых, спасибо. Круто, интенсивно,
01:40:25.000 ⇒ 01:40:30.000
классно, классный финал. А я ещё раз
01:40:28.040 ⇒ 01:40:31.920
приглашаю всех на демо, ещё раз
01:40:30.000 ⇒ 01:40:33.639
проговорю, что я скинул там пару слотов,
01:40:31.920 ⇒ 01:40:36.000
если кто-то хочет лично поговорить и
01:40:33.639 ⇒ 01:40:38.760
рассказать, как ему лаба. Спасибо. Видел
01:40:36.000 ⇒ 01:40:40.760
тех, кто зарегался. И ещё замотивирую
01:40:38.760 ⇒ 01:40:43.320
выступить на демо с каким-то кейсом.
01:40:40.760 ⇒ 01:40:44.560
Если вы прямо сделаете в формате как бы
01:40:43.320 ⇒ 01:40:46.920
нашей заявленной предложенной
01:40:44.560 ⇒ 01:40:50.040
презентации, мы дадим вам там условно
01:40:46.920 ⇒ 01:40:52.840
бесплатное там 80% скидки на вот наш
01:40:50.040 ⇒ 01:40:54.840
новый программу сопровождения ADVance,
01:40:52.840 ⇒ 01:40:57.639
которую мы планируем тоже озвучить. То,
01:40:54.840 ⇒ 01:41:00.239
что мы проговаривали про э месяц такой
01:40:57.639 ⇒ 01:41:02.360
дополнительной работы и так помесячно.
01:41:00.239 ⇒ 01:41:05.000
Вот мы хотим её запустить, мы её опишем
01:41:02.360 ⇒ 01:41:07.280
и озвучим завтра. Вот просто мотивирую
01:41:05.000 ⇒ 01:41:09.119
тех выступить на демоднее, что это для
01:41:07.280 ⇒ 01:41:11.880
вас возможность первый месяц получить
01:41:09.119 ⇒ 01:41:13.560
около бесплатно. Спасибо и до
01:41:11.880 ⇒ 01:41:16.520
понедельника.
01:41:13.560 ⇒ 01:41:19.520
Спасибо, Вася. Спасибо вам всем.
01:41:16.520 ⇒ 01:41:19.520
Увидимся.
01:41:21.599 ⇒ 01:41:24.599
Спасибо.