ITипичные аспекты Артёма
356 subscribers
11 photos
3 videos
1 file
7 links
Robotics->python backend->computer vision->RnD team->GenAI->Lead универсал

И вот мы здесь
Download Telegram
Начало

Продолжу описывать процесс работы длиной в (предыдущую) неделю,мысли подходы в формате:
* Затраченное время
* Какие изменения вносил
* Какие выводы сделаны/инсайты получены


пнд-втр, 10+14=24ч.
- Загружен проект, проведена первичная оценка имеющейся кодбазы. У меня есть целый гуглдокумент на 9 страниц с говной, где я выписывал как на ревью все проблемы исходника.
Мы хотели во имя науки скормить его в таком виде ИИ чтоб он составил себе подробное ТЗ и по нему прошёлся, закрыв дыры
Эксперимент признан неудачным

Сводка самых критичных моментов:
- отсутствие БД(!), консистентного хранилища состояния.
- Фронт на сырых HTML шаблонах
- ЯндексS3 как единственное хранилище файлов (я не планировал использовать внешнее S3)
- Также наблюдалось огромное количество дыр в безопасности и производительности: по моим подсчётам, оно не должно было вытягивать больше 2-3 человек одновременно
- Модели кэшировались очень частично и вызывали зависания на несколько минут из-за подгрузки гигабайтов весов каждый первый запуск
- В некоторых кейсах происходили очень неявные критические баги. К примеру, если первая задача в систему не была с флагом на разделение спикеров, то ни одна последующая эту функцию запустить уже не сможет


Я очень недооценил на старте сырость исходника.
Вместе с тем, и это очень важно, Оно работало! Легаси кодбаза уже выступала в роли технического концепта желаемого функционала, а значит все ответы и фичи, хоть и реализованные криво уже были в ней, и моей задачей стал перепил структуры и организации кодбазы


Инсайты

- Я долго пытался понять, с какого бока приступить, это было очень сложной задачей - найти точку входа для изменений на легаси в 2-3к строк. Начал с фронта, философски отнесясь к бэкенду как к чёрной коробке с публичным контрактом, и потом уже переходить к бэку

- Фронт перепилился в TS+Vite приложение на удивление спокойно. Я, как совсем не фронтендер, не догадываюсь, какие ужасы там творились. Оно и к лучшему.
Самый важный инсайт - если позаботиться о хороших подробных описаниях-промптах и приложить референсы - ИИ может осилить даже объёмные структурные изменения.

- Хорошо показал себя метод, где сначала ИИ переписывает всё в один более большой файл и потом уже разбивает на несколько маленьких отдельной цепочкой рефакторинг промпт-задач

- Бэк представлял собой зрелище, не самое страшное в моей практике, но опасное ввиду неявно заложеннных бомб

ИИ плохо справляется с уменьшением сложности/вложенности кода и не всегда понимает проблему асинхронности, организации IO/Heavy задач.
Фокус на локальном решении текущей мелкой проблемы осложняет использование общих абстракций, моделей. Это должно фокусироваться отдельно через Rules, промпты.

Ненужная вложенность кода (функция обращается к функции которая обращается к функции и на каждом этапе размазан какой-то минимум важного кода) - характерная особенность ИИ стиля

- Очень приятный момент, можно спокойно писать "форму с логином" или "таймер в главном окне рядом с окном загрузки" - ИИ прекрасно оцифровывает и меняет нужные компоненты

- Курсор очень хорош в поиске и анализе кода. Можно спокойно спрашивать за незнакомый код и получать качественные вменяемые ответы

- Нужно следить за обезличенностью речи и не давать ему понять, что ты не согласен с решением/говнишься. ИИ тут же начинает всё срочно переделывать.

Никогда не спрашивайте ИИ напрямую, почему оно что-либо сделало, оно засчитает это за предъяву

- Курсору можно относительно доверять в аспекте консистентности изменений, в большинстве случаев он ничего не забудет поменять. Впечатляет, что я забываю менять какие-то импорты или куски логики в соседних файлах чаще чем ИИ

- Под конец вторника оно всё ещё было ужасно, никак не хотело заводиться, а я это очень нервно воспринимаю. На 14ом часу работу едва ли не в кровавые слёзы. Эффективнее по нервам, качеству и скорее всего по времени был бы подход - начать делать полностью с нуля, подкидывая исходники как референс для ИИ вдохновения
15👍11🔥2❤‍🔥1
Предыдущее тут
3/5 пост =)

Среда-Четверг, 10+11=21ч
Был получен минимальный рабочий сценарий с файлами. Весь день посвящён структурированию бэка, разделению логики web бэкенда и аналитического бэкенда на разные сервисы, devops активностям, закладыванию моделей БД. Затянуты Mongo - основная БД, Minio - локальный S3 и Redis как БД коммуникации и шеринга состояний между сервисами

Моей ошибкой, унёсшей ~4 часа времени стала попытка сделать по-быстрому локальное хранилище вместо S3. ИИ запутался в папках и роутинг раздачи файликов не взлетел.
Нужно было сразу брать minio и на лету перепиливать S3 на S3 по сути. Пришлось отбросить/вырезать некоторое количество кода. Слава Git

Переработал LLM суммаризацию. Основная работа заключалась в вынесении конфига и ограждению курсора от попыток сменить схему SO с рабочей на нерабочую. В исходной кодбазе с неё всё было хорошо

На конец дня реорганизованный минимальный пайплайн работал на более стабильных и понятных основах, полностью собирался и обновлялся в докере. от легаси кода бэка и фронта осталось в лучшем случае 20%

Инсайты
- ИИ имеет свойство плодить кривые конфиги в разных местах. Это должно подвергаться контролю за счёт Rules, темплейтов проекта

- Нельзя вайбкодить сложную задачу. (вайбкод - не вдумываясь принимать изменения ИИ). С каждой следующей итерацией и уточнением, особенно если что-то не получается, ИИ заходит всё дальше в дебри и пишет всё более локальноориентированный структурно хреновый код
И это как будто бы базовое правило coding with AI. Ты должен вмешаться, проанализировать и выбрать корректный подход прежде чем ИИ затронет слишком многое. Возможно принять решение запустить всё с самого начала.

- Генеративный подход - когда создаёшь новый код над старым, в разы менее затратен с ИИ чем обратный, где нужно рефакторить/убирать излишки старого. Для меня, как человека, проще работать с существующим на изученной кодбазе

- ИИ затрагивает широкий набор изменений в рамках своей работы, часто работаешь над 2-3 параллельными задачами/направлениями изменений. Это осложняет классическую историю ведения гита. Очень важно регулярно уделять внимание регрессу и делать отсечки, которые пойдут коммитом в гит.
В курсоре можно откатываться на чекпоинты чатиков, но это не всегда работает и неудобно.
Уверенность, что я могу надёжно откатиться на рабочую версию - залог спокойной работы

Как итог, считаю, что мастхэв должен быть шаблон проекта, адаптированный под ИИ, где уже организована и тщательно описана желаемая организация проекта:
* Конфиги и их место
* Лучшие практики инфры вплоть до шаблонов докеров,
* Заложены примеры привычных схем, ролей, моделей.
* Подключены на уровне низкоуровневых адаптеров человекописные базовые внешние модули типа БД, web-сессий, сокетов и т.д.
* Продумана и заложена механика проброса зависимостей и централизованной инициализации модулей.
* Оно позволяет вносить изменения уже отсраиваясь от лучших практик, более точечно

ИИ склонен тупо херачить глобальные объекты и начинает творить лютую дичь как только ловит от этого сложности


На конец четверга, четвёртый физический день работы, уже проходили все базовые сценарии проекта, завязанные непосредственно на ЛК и обработку звуковых файлов. UI принял околофинальные очертания, вырисовалась более стройная организация и инфраструктурная обвязка. Проект билдился в докер и запускался на сервере
11🔥4👍2👎1🤝1
Отвлекаясь от длиннопостов

Как понять, что справляешься как лид бодрой RnD команды?

Если отлучаешься на пару недель и больше - ни у кого ничего не горит и не подгорает. Активности команды не начинают падать на пол.

С лёгким напрягом начинаю планировать двухнедельный августовский отпуск. Предыдущие однонедельные эксперименты отсутствия себя проходили почти успешно. Если не считать того, что список дел наобсудить и вгрузиться после возращения в понедельник возрастал до неприличных размеров

В понедельник же происходит самый ответственный виклик, где надо собрать всю оперативную инфу и соединить всех со всеми.
Легко догадаться, какой день недели стал моим самым нелюбимым. Вот так люди и становятся суеверными.
4👍4🔥2😁1🤯1
4/5 пост, дальше только выводы
предыдущее

Пятница, 12ч
Realtime транскрипт, правки, сущности, баги, рефакторинг

Я надеялся в пятницу уже получить полностью рабочую сборку, но оставалось слишком много дел по работе системы, google extension ещё и не был начат.
Зафиксировал опоздание в день.

По привычке закопался в алгоритм и протокол realtime транскрибации - как копить буфер, корректировать транскрипт на лету. Закопаться нормально при классической разработке, но непозволительно в условиях интенсива. Стало ещё одной моей крупной ошибкой, стоившей 6 часов. Но хотя бы отловил пару проблем в процессе.

Инсайты
- На примере realtime протокола, ИИ не может алгоритмический код без очень точного описания.
Напутать индексацию пакета, поставить условие сброса кэша туда, куда его ставить НЕЛЬЗЯ, забыть, как используются счётчики. Ещё засунуть открытый сокет в хранилище сокетов сессий и получить обсёр в моменте, когда фронт отсоединяется первым от "активной" сессии... Напомню, что чем больше ты его поправляешь тем хуже становится код.
По итогу всю эту часть я делал ручками. Вдумчиво и внимательно.

- ИИ в общем случае очень плохо пишет схемы данных без очень конкретного аналитического описания. Легче продумать самому, а ИИ уже отдать на интеграцию.
Это в целом хорошая гигиеническая практика - Писать HLD и примерную схему данных до начала разработки.


Суббота, 8 часов
Гугл расширение, минификсы и завершение этапа проекта

Абсолютно новый для меня зверь. Без ИИ я такое расширение написать физически бы не смог. Поработал скорее как аналитик - где в первую очередь нужно описать и донести, что ты хочешь, подсобрать ожидания и хотелки хотя бы у себя в голове.

Так как осталось время, запилил допфичу по шерингу транскриптов наподобии гугл доков.
ИИ умудрился сломаться на несложном расширении модели БД, но с полпинка починился и адекватно написал миграцию.

Инсайты
- Структурированное МиниТЗ с просьбой составить план изменения, а потом ему следовать - хороший способ брать в выполнение сложные фичи

- ИИ владеет хорошей базой знаний по технологиям. Если перед реализацией в коде обсудить-посёрчить через него варианты, это может дать качественное решение

- Эмодзи в логах это на удивление прекрасно, если их не становится слишком много. Надо взять себе в боевые практики. С визуально-цветовыми ассоциациями проще выхватывать нужные моменты в общем потоке


На этом жизнеспособном этапе я закрыл активную разработку и все основные задачи интенсива. Дальше оставалось подведение итогов и горделивая беготня с демонстрациями во всех инстанциях.
Спустя неделю тестов на людях в гугл расширении обнаружилась критичнейшая вещь, очень подло и бесследно дропавшая запись спустя 20-40мин от начала.
ИИ по косвенным репортам и логам не справился - также пришлось погружаться самому. Теперь я знаю и умею вытворять с хромиум браузером гораздо больше интересных вещей.

П.с. извиняюсь за качество демок. Изначально они предназначались для околорабочих чатиков. NDAшу как могу.
🔥8🤔31
Синк о том, как нормально развернуть prod с участием меня, кубера, переменного количества видеокарт, Ray, VLLM, нейросетей разного масштаба, двух дальнеродственных проектов, которые шерят ресурсы.

Итак, у нас есть:
- Ray фреймворк предполагает резервирование видеокарт под собой и в общем случае является ключом к их эффективному использованию
- Мы не уверены до конца, насколько он подружился с нашим кубером
- Видеокарты в общем случае резервируются, но нужно понимать подо что и насколько
- Первые 4 видеокарты резервируются легко и надёжно. Остальные - дольше и не так надёжно
- Под задачи проектов по моей оценке хорошо бы иметь в доступе 6-8 от нагрузки
- Дальнеродственные проекты хотелось бы разместить на том же кластере, но изолированно инфраструктурно
- Мне уже жаль бедного девопса, перед которым встанет задача это всё прикрепить к текущему CI/CD

Задачи такого рода отношу к комплексно-неприятным ибо прямого понятного решения не предвидится, начинаешь закапываться в трейдоффы, а конечное предложение в любом случае пожрёт ресурсы команды с неясной перспективой.
Когда-нибудь я точно смогу делать это рутинно, а пока - та ещё головоломка получается.

Пришли к тому, что для расширения видеокарт нужно эффективно занять существующие, а на существующие влезает примерно половина комфортно желаемой конфигурации системы.
Looks like предстоит интересный эксперимент по плотному утрамбовыванию всего и вся в минимальное количество H100. В целом, не самая ненужная метрика.

Как же не хватает под рукой какого-то крайне сеньорного сеньора, который бы пришёл и всё порешал, пока я внимал его мудрости.
3🔥2
Пост 5/5, финалочка
Предыдущий

Наконец-то время подвести черту всей затее

Общий итог:


Первое и самое важное -порядочно освежил коднавыки и страты работы на форсаже.

Изначально без ИИ я бы оценил эквивалентный проект с нуля в 4 недели + фронтенд (ибо я не могу во фронтенд, но примерно заложил бы 2-3 недели). + финальная интеграция и пусконаладка (пусть 1 неделя) В сумме 8 недель
Для дальнейшего развития текущих наработок я бы заложил + пару недель рефакторинга (в итоге даст 4.5 недели на ИИ разработку, если не форсажить по 65 часов в неделю, как я)
В итоге получается ускорение на 43.75%, если очень грубо посчитать

Все намеченные изначально фичи и даже чуть больше были выполнены с опозданием в день относительно плана.
Проект вполне живой. Крутится, показывается, функционирует. Вокруг него уже задумчиво ходит пара продактов и тыкают палкой. Баги появляются, ловятся и фиксятся в основном незначительные/связанные с проблемами личного сервера

Сложно подобрать метрику качества для такой кодбазы, но в целом имеем ~3к строк вполне прогнозируемого кода (кроме, опять же, фронтенда, я хз как там)
Основным стандартам качества оно соответствует ~70%. Что значит ~ за 2 итерации ревью можно довести до вполне качественного кода.

Существенные проблемы/компромиссы:
* Сильно не хватает универсальности и некоторой доли абстракций. Условная замена Minio на какой-либо внешний S3 вероятна, но потребует переписывания многих вещей
* Масштабирование воркеров практически необходимо в будущем, но я не могу дать гарантий его бесшовной работы сейчас. Чует моё сердечко, что-то там перемудрили мы с Курсором.
* Оставлено некоторое количество проблем/компромиссов, которые не были бы допущены при изначально человеческом подходе.
* Избыточность и неравномерность логов, наличие артефактов в коде - любой другой разработчик кроме меня вынужден будет немного пострадать при онбординге
* Где-то в районе google extension есть большой простор для багов т.к. оно выступает в роли клиентской части и зависит от браузеров пользователей
* Через какое-то время вскрылся существенный баг между плеером и minio - как он подгружает большие аудио

Пока свободную версию щупать здесь https://speechcoreai.com/
6👍3🔥3
proxy_selenium.py
10 KB
Понадобилось мне кое-что автоматизированно нагуглить, а случился внезапный закоп.

Не очень понимаю, почему и как, но в селениумный хром драйвер аномально сложно пропихнуть авторизованную проксю.
Оно жалуется, что не может захавать из-за авторизации
chrome_options.add_argument(f'--proxy-server=https://{proxy.username}:{proxy.password}@{proxy.ip}:{proxy.port}')


А если её пропихнуть без авторизации, то закономерно же отлетает уже сама прокся, запрашивая basicauth.
Не первое откопанное решение, но ставшее первым рабочим, оказалось с оригинальным применением гугл расширения: оно запускает только бэкграунд, вешает listeners на любые авторизационные окна и пытается их заполнять.

Есть мнение, что хватило бы инит скрипта авторизации т.к. дальше бы прокся закешировала свои кредсы, но тогда бы не получилось такого забавного хака.

Раз появившись в предыдущей моей затее, google extensions начинают меня преследовать. Так и порождаются специализации.
3👍2🥰2
Да! Вот оно!
Я тайно молился чтобы идеальный момент использования этого мемаса настал

----
Перезалив. Когда-нибудь я перестану путать канал со своими сохраненками и удалять что не надо😅
😁8🤣4👍1🤯1
Финансовый Motivation и развивающие вектора

У меня есть ещё канал для своих - Артём и жизненные коллизии. И эти "жизненные коллизии" - идеальное определение идеям, ещё не разложенным в голове и не сформированным в чёткие суждения. Ща будет такая.
Мыслей у меня набирается на порядочный монолог, попробую сфокусировать.


Глобальный вопрос - как, кому и насколько распределять повышения зп в команде, когда есть такая возможность?
А ещё попутно ответить на следующие вопросы воображаемого члена команды:
- Как работает подъём зп?
- Почему мне подняли на X, а соседнему челу на 2X?
- Я получаю M, что мне нужно сделать чтобы получать N?
- Я не хочу играть в эти игры, можно мне просто работать как нормальный человек?

Сразу уточню, что вопрос не касается бигтеха с его устоявшимся жабогадюкингом: матрицами компетенций, ИПР, КПИ, независимыми аттестациями... что там ещё есть?
Часть из этого, важно отметить, может работать вполне хорошо и качественно даже на мой нетолерантный вкус. Но чаще являет собой необходимый на масштабе компромисс с неприятным послевкусием.

Ещё важный момент, сама такая возможность - иметь устойчивый процесс пересмотра зп - это успех и команды, и всего бизнеса. Ну и залог стабильного перфоманса со сроком целеполагания на годы. Такое присутствует далеко не всегда, но давайте пофантазируем, как может выглядеть процесс, на мой взгляд, здоровый и сравнительно этичный

От чего я оттолкнулся?
- Любые качественно-количественные KPI приводят к активному задрачиванию оных и отвлекают людей от профильной работы
- Методы сбора ОС и взаимооценки могут быть хорошо поставлены и поддерживаться где-то между размерами уровня "кто этот человек?" и "я не могу не похвалить моего братана Васю"
- Грейдирование требует, собственно, поставленного грейдирования + предоставления возможностей по этому грейдированию подниматься.
- Личностная оценка руководителем - субъективна, непрозрачна и хакается совместными походами в бар
- Стабильность и прогнозируемость процесса должна присутствовать чтобы и лид и сотруники могли заниматься своими делами, не устраивая подобие экзаменационной сессии в рандомные моменты времени
- Отсутствие перегрузки формальностями - хорошо задокументированная коммуникация, тем более по таким чувствительным вещам - вполне понятное и нужное зло, стоит следить за тем чтобы оно было в необходимых объёмах, не вылезало сверх меры.

По итогу таковых размышлений я породил следующий флоу (WIP):
1) Безусловная индексация зп на некоторый минимальный процент раз в год при выполнении рабочих обязанностей в рамках ожиданий.
Исключением здесь может быть ощутимый недоперформ и серия факапов.
Некоторая уверенность в завтрашнем дне и показатель здоровья вашего работодателя

2) Раз в полгода проводится совместная сессия между сотрудником и лидом/рабочей группой по повышке, где формируются достижения сотрудника на основе активности за эти полгода: рабочих задачах, объёму ответственности, участии в развитии команды/юнита.
Тут, разумеется, есть гадкий момент, что много нас, а апельсин один. И кто-то, несмотря на то, что он молодец, орёл и тащил - может остаться не удовлетворён. Не могу пока предложить ничего лучше открытости к диалогу и чудес дипломатии

3) Сотруднику предлагается вариант самостоятельно(или с помощью) выбрать и взять на себя цели, коррелирующие с целями команды/бизнеса/мотивацией в профессиональном развитии.

Важным моментом вижу то, что любая дополнительная нагрузка и обязательства - опциональны и в первую очередь средство более прогнозируемо управлять своим ростом. Должно быть в форме превентивного соглашения. Вместе с тем, иногда может быть сложно сказать, где ты будешь особенно молодец на полгода вперёд. Должна быть опция вкладываться в рабочие обязанности, органически иметь больше ответственности и возможностей проявиться.

Повышение, отличное от индексационного, в любом случае предполагает какой-то объём нерядовых активностей и мне ввиду своего собственного экспириенса видится важным дать возможность сотруднику выбирать, как и в какой форме он хочет этого достичь.
🔥6👍3🤔31
Эпоха шантажа LLMок уходит
а я остаюсь

https://papers.ssrn.com/sol3/papers.cfm?abstract_id=5375404

Если верить вот этой папире, то все ухищрения с попытками дополнительно мотивировать модель сделать особенно хорошо - больше не актуальны.
Не то чтобы подобный промптинг и раньше входил в обязательные бест практики продакшн решений, но как некоторый забавный феномен в своё время был интересен. Регулярно сподвигал меня спонтанно пообещать модели миллион-другой долларов или описать, насколько это важно мне или моей больной тётушке.

Привычка обещать деньги джунам в рандомные моменты времени уже никуда не денется, но будет происходить с полным осознанием бесполезности сего действа

Прогресс безжалостен. Будь я на месте главного обучатора LLM этого мира, оставил бы подход с шантажом как минимум пасхалкой
🔥10
Современные тренды на агентные системы непроизвольно флешбекают меня к боту из Counter Strike, которого кто-то назвал ToJIpa_AgenToB_SmiToB


Давненько сидит мечта сделать гуглёж-систему, которая бы в ответ на все разнообразие моих вопросов документально формировала обоснованные результаты.

Я видел много поделок уровня
спарсить гугл -> достать данные -> закинуть в LLM, оно как-нибудь пожрёт

Частенько им не хватает некоторой общей глубины контекста и хорошо такое ну максимум для сводки (что уже и реализовал тот же гугл). И параллельно я вижу работу Cursor над кодбазой, где он умудряется сделать общую выборку, общую выборку над первой выборкой, 4-5 погружений и вполне качественный существенный ответ. И это всё за минут 5 пассивно-заинтересованного пожирания поп-корна

К примеру, мой актуальный сиюминутный запрос "Найди мастеров, которые изготавливают ножи в Нови-Саде или Белграде, подготовь отчёт со ссылками на примеры ассортимента и цены на охотничьи ножи небольшого размера". Для меня эта история на пару часиков засесть-посравнивать у кого что есть. Я не уверен, но как будто бы достаточно агентная система, способная поставить себе DoD и валидировать его завершённость в процессе копания вполне могла бы что-то такое взять, сэкономить добрый часик моего времени

В связи с этим вопросы во вселенную:
1) Кто чем таким пользуется для продвинутого гугления?
2) Есть ли что-то достаточно готовое чтобы принести денежку и оно решит все мои проблемы или только делать самому?
И ещё я сильно страдаю, что не могу уследить за развитием всех интересных мне технологий. Вот вы знали, что pymongo получил свою асинхронную версию? И по непроверенным данным даже делает класический motor. Я узнал мельком пару недель назад. Во было бы круто, если бы кто-нибудь отслеживал подобные классные штуки из чейнджлогов и релизов, складывал в удобном мне виде.
Быстрый гуглёж показал, что есть пара людей, которые делают подобное на основе гитхаба, но оно немного сыро и не универсально
И ещёёё чтоб выжимку из актуальных обсуждений/issues проекта скидывал с какой-то периодичностью

В идеале, чтоб я аки mr President за чашечкой утреннего кофе узнавал ситуацию о новостях технического мира из заботливо подготовленных отчётиков. Эдакая индивидуально формируемая новостная лента
Как же приятно забыть о пандасе, какой-либо очистке данных и просто в два запроса получать красивые html отчётики с уже родными вырвиглазными палитрами.
Вот она, истинная эффективность. Я бы морально самоубился в процессе обработки аж 72 записей средствами, требующими самостоятельного написания кода
👏3
Немного практических вечерних изысканий!

Сразу по мотивам предыдущих постов я отправился почекать, как в случае коллектора чейнджлогов оно может выглядеть на деле.

Тем более что идея с индивидуальными инфопотоками/новостными лентами является моей вынашиваемой идеей на миллион ещё года с 23го. Это буквально вопиющее безобразие, когда в бытность дикого переизбытка контента самое умное, что фильтрует мне информацию - это лента гугла перед сном и лента ютуба по не самым сложным критериям

Итак, у меня есть классическая задача с поиском данных известного домена но неизвестной формы. <Знаем что искать, но не уверены, в каком виде>. Несложными махинациями уровня "большинство опенсорса берётся с гитхаба у которого понятная структура" и некоторыми трейтами универсальности её можно свести к задаче парсинга, но давайте попытаемся прикрутить сюда LLM. Без LLM не так продвинуто будет.

В идеальном случае я хочу вкидывать название технологий (или покемонов, чтобы ИИ не расслаблялся), а мне в ответ откидывалась выкладка с инфой о текущей версии технологии, ссылками, откуда можно достать информацию об апдейтах. Ну и заводилась таска на регулярный чек новых версий
👍3🤯1
Если исходить из идеи сделать дёшево и сердито, то можно накопать такие вещи:

- У OpenAI web api появилось подозрительно недавно и доступно по не менее подозрительно конским ценам
- Perplexity был почти хорош, но ошибся с актуальной версией на нескольких тестовых запросах что породило некоторые вопросы, как и в каком виде он хавает контекст из web поиска. У меня взыграла мания контроля и желание сделать всё на своём.
- https://serper.dev/ в процессе отметил, что вот эта штука для парсинга может являться интересным решением, но не удовлетворился, что оно упрощает только один запрос из цепочки.
- https://www.firecrawl.dev/playground вот эта штука выглядит перспективнее нежели просто кормить LLM текстовым содержанием страницы или, не дай бог, DOM. И в принципе выводит на любопытный вопрос: Как передавать модельке веб контент, если немалая часть его информативности ориентирована на человека и зашита в визуальной разметке.
Скрины и тулзы для скролла? Скрины + разметка для всего контента? Размеченный DOM как здесь?

Как итог: Накидал MCPшку, дарующую модельке возможность гуглить и возможность чекать контент сайта. Определённо стоит поиграться с форматом возвращаемой информации.

П.с. Не уверен, что кого-то в наши дни впечатлит web search tool calling сниппет, но могу причесать-выкинуть куда-нибудь в паблик
👍5🔥4🤔1🤯1
Кто как, а я в отпуске ( • ⩊ • )

Ничего невероятного и требующего моего срочного мнения в мире вроде не происходит, так что вкину сюда рандомную мысль и пойду дальше делать тортики, гулять по Сербии, проходить игрулечки - заниматься прочими традиционно отпускными вещами

Рандомная мысля:
Как получилось, что я не фулстек - почему бэк со всеми его архитектурками, конкурентностью, блокировками и ресурсиками - это моё, а вот учить модельки или визуал пилить - не моё?

С силой, подаренной мне курсором, волей-неволей начал сталкиваться с фронтендовскими штуками. Это до абсурдности забавно, насколько по разному ощущается процесс работы. В серверном коде специфика многих проблем и примерные пути их решения уровня "туда копать" +-ясны с беглого взгляда. Причём не всегда понимаешь,откуда, вроде даже опыта подобного не было. Назовём это ощущение Особой Бэкендерской Интуицией.

Когда дело доходит до проблем кода "напротив", буквально управления какой-нибудь шторкой или отправки пакетов с данными - в голове возникает неприятная пустота, внутренняя лампочка интуиции гаснет, а в ИИшку начинает лететь серия вопросов уровня "Проанализируй и объясни. / Как оно так работает? / Предложи способ реализовать...". А без ИИ бы оно вообще превращалось в мозголомные эксперименты длиною в часы.

Ответом на изначальный вопрос будет, собственно, присутствие ОБИ в практике. Без неё кодинг из хобби, продуктивно совмещённого с работой, превращается в пинание чего-то мучительно неповоротливого. Возможно память играет со мной дурную шутку, но сейчас мне кажется, ОБИ было со мной околовсегда, как некоторое природное свойство. Хотя воспоминания о бессонных ночах за ДАКАКОНОДОЛЖНОРАБОТАТЬТО могут говорить об обратном. Вполне допускаю, что в процессе упорного пинания фронтенда можно обрести и ОФИ до кучи, но мотивации относительно школьно-студенческих времён уже поубавилось
🔥6