Telegram Web
Как недооценить на порядок тривиальную задачу

Есть небольшая кодовая база; в ней много вызовов LLM. Хочется гонять интеграционные тесты быстро, не ждать ответа от медленной (да и не самой дешевой) апишки. Решение напрашивается: давайте закэшируем ответы (VCR testing)! Это же должно делаться буквально одним кэширующим декоратором поверх уже существующего LLM клиента, не так ли?

Оказывается, не совсем, ведь:
- клиент инициализируется в куче мест, нужно сделать синглтон;
- клиент инициализируется со слегка разными параметрами, нужно привести к общему знаменателю и проверить, что нет регрессий;
- два одинаковых запроса к LLM могут вернуть разные ответы, в т.ч., например, один валидный и один невалидный примерно в одно и то же время.
- клиент вызывается конкурентно и асинхронно, нужен лок;
- запрос содержит сложные иерархические слаботипизированные структуры, вычисление ключа кэширования нетривиально;
- эквивалентные запросы могут осуществляться по-разному (например, через именованные и неименованные параметры);
- часть запроса формируется из логов, а потому может содержать случайные элементы (например, айдишки или таймстемпы), которые нужно подчищать;
- такой VCR кэш устаревает с каждым минимальным изменением в логике того, как мы работаем с контекстом - нужно обеспечить простой и понятный developer experience, как этим пользоваться, как обновить, и в каких случаях это уместно.
- разрастается логика: оказывается трех режимов (не использовать / обновить кэш / проиграть из кэша), не хватает - например, в дебаге полезно иметь гибрид, который и переиспользует старые записи, и может сходить в апишку. А вот для тестов это харам, cache miss должен явно ронять тест.

Но разве кого-то волнует, насколько я недооценил сложность изначально, когда тесты такие быстрые?.. 🚀
👍33🔥12🗿93
Недавно собрал на коленке Reddit Research - максимально простую вариацию на тему deep research, но с фокусом только на реддит (лично у меня это довольно частый сценарий использования и в обычном поиске, и в AI-ассистентах).

Очевидно, он уступает по качеству deep research от крупных вендоров, но вполне подойдет тем, кто зачем-то хочет гонять все локально, или сделать форк и контролировать какие-то мелочи. Ну и для неопытным разработчикам LLM-приложений может пригодиться для вдохновения - кода мало, и большая его часть - свистелки для терминала.
🔥9813👍7😁1
Примерно раз в год на меня накатывает настроение поковыряться в железках, хотя объективной потребности в этом нет, и приходится ее придумывать.

В этот раз идеально совпали дождливые выходные и приехавший ко мне Argon EON Pi NAS.

В итоге:
- стряхнул пыль с raspberry, собрал старые диски по всей квартире (получилось 17 с небольшим терабайт) и запихал все в новый корпус. EON классный, все работает, выглядит изящно, всем рекомендую, отличный подарок умеренным нердам.
- поставил openmediavault, долго плевался от того, какой это инвазивный отстой, и полчаса удалял метастазы;
- засетапил там samba и подключил TimeMachine бэкапы (да, так можно!);
- наконец-то засетапил подаренный jetson (как всегда с nvidia, это оказалась слегка нетривиальная задача - нужно замыкать пины, перепрошивать, переписывать конфиги для sdkmanager…). qwen3:8b выдает 7 токенов в секунду, как будто мне это хоть когда-то понадобится;
- связал все это в одну сеть через tailscale, раскидал по углам, умиротворенно слушаю, как шуршат старые HDD.

Делитесь в комментариях, кто держит дома всякие микроканплюктеры и главное - зачем.
🔥36😁21👍3
Не так давно широко разошелся твит про то, что агентский AI будет массово требовать скиллы, похожие на игру в starcraft.

Метафора прикольная и, конечно, греющая душу (пусть в старкрафте я нуб, но свои сотни часов в warcraft 3 и age of empires отыграл). Но если обобщать опыт вайбкодинга, то метафора неточная, и Dungeon Keeper или Tropico будут ближе. В классических RTS много микроконтроля: закайтить, отвести раненого юнита, минимизировать урон от AoE; именно микроконтроль отличал казуалов от продвинутых.

Но вся суть работы с агентами в том, что человек не должен микроменеджить. Продуктивный AI-кодинг требует выстроить такую систему, в которой агент будет эффективно работать, с минимальной вероятностью наделает херни, а если вдруг и начнет творить дичь, у этого не будет серьезных последствий. Не нужно быстрее всех нажимать tab или enter, нужно писать непротиворечивые инструкции, гранулярно декомпозировать, сетапить тесты/линтеры/валидаторы - иными словами, предпочитать непрямой контроль, потому что он лучше скейлится.
👍6115💯6
Формально у меня сегодня последний день в Neon, потому что я оказался среди поглощенных кирпичным заводом, на котором - пока столь же формально - начинаю работать завтра.

Поэтому символично, что сегодня успели зарелизить app.build - продукт, над которым мы небольшой командой работали с февраля. Это just another end2end генератор CRUD веб-приложений от промпта до деплоя.

Он полностью опенсорсный (можно покопаться в истории и увидеть все мои коммиты в стиле “maybe fix a lot of things”), работает как CLI и обычно генерит скорее работающие приложения. Можно сгенерить на наших серверах, можно развернуть у себя (все равно понадобится gemini и claude API, но можете прислать PR с поддержкой любимого LLM-провайдера). Шероховатостей еще много, но уже скорее работает, чем нет, так что пробуйте и присылайте баг-репорты!
🔥123🍾2213👍7👏1
Когда-то давно я нахваливал Streamlit, в свое время наделал на нем пару десятков приложений, и пересадил на него кучу коллег. Но настало время двигаться дальше, и потому сегодня хочу порекомендовать читателям NiceGUI.

Вкатиться в NiceGUI немного сложнее, чем в Streamlit: невозможно просто прокатиться мордой по клавиатуре и получить работающее приложение. Но если повозиться чуть больше, то результат получается сильно более зрелым:
- настоящие отдельные фронтенд (Vue/Quasar + Tailwind) и бэкенд (Fastapi), в которые можно провалиться для доработки (а можно и не вникать и оставаться в высокоуровневом python коде);
- вебсокеты вместо перезапуска всего приложения на каждый чих;
- нормальная поддержка нескольких параллельных пользователей благодаря нескольким гранулярным видам хранения стейта вместо одного st.session_state;
- к этому можно писать тесты!

Вайбкодить на NiceGUI сложнее, чем на стримлите, но мы над этим работаем 👀

Этот пост не имеет никакого отношения к тому, что Streamlit уже давно часть Snowflake, а я сейчас работаю в Databricks.
😁74🔥22👍74🥴2🤣2
У меня есть кореша и немного даже собутыльники, которые когда-то стояли у истоков Vochi, успешно продали их Пинтересту, и вот сейчас они запустили новую компанию про genAI и музыку. По этому поводу они ищут толкового deep learning инженера, который умеет не только склеивать апишки, но еще помнит, как пользоваться пайторчем, умеет читать статьи и привносить какую-то новизну поверх - иными словами, повидал некоторое дерьмо может запилить что-то нетривиальное.

Я не стану перечислять все эти штуки про уникальные задачи, клевый офис в Варшаве и большой GPU кластер; скажу только, что ребята толковые и, думаю, что по деньгам с хорошим человеком договориться смогут.
🔥48👍138😁4👏2💩1
Сегодня я узнал, что если придти на митап Snowflake❄️ в футболке Databricks🧱, то примерно через час к тебе вежливо подойдут специально обученные люди и попросят уйти
🤣308💅25😁20🔥114😢4🦄3🤩1
Написал лонгрид о том, как мы делали app.build, какие дизайн-решения принимали и немного о будущих планах.

Рекомендую тем, кто делает агентские системы, и особенно - близкие к кодогенерации.
👍59🔥188
По мотивам этого поста, запилил бота @ScratchAuthorEgoBot, который умеет почесывать эго авторам телеграм-каналов.

На вход - название канала, на выходе - один из трех видов LLM-based анализа автора (личный/профессиональный/насмешка) по его поста.

Под капотом Rust/Gemini/Neon, и даже прикрутил микроплатежи ⭐️ (первый запрос бесплатно). Больше всего провозился с экранированием и форматированием, потому что telegram API и его markdown довольно особенные.

Через недельку выложу исходники и расскажу, сколько звезд намайнил!

UPD: Уткнулся в лимиты телеграма, все аккаунты, используемые для парсинга, были забанены :(

UPD2: Медленно оживаем, но возможны долгое ожидание и потерянные запросы.

UPD3: В целом все снова работает
6🥰41👍19🔥125
Я обещал написать про бота, и добрался только сейчас, потому что этот пет проект вырвался из клетки и чуть меня не сожрал. Было интересно, неожиданный end-to-end опыт от идеи до багфиксов на проде за жалкие три дня.

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

Во-первых, парсить телеграм-каналы через bot API нельзя, и потому я парсил через телеграм-клиент, используя собственный основной аккаунт. Когда набежала толпа пользователей, я быстро попал в софт бан, и начал искать обходные пути. Рынок серых аккаунтов оказался недружелюбным, да и банились они примерно за 10 минут, даже если купить премиум и не наглеть с частотой запросов. Даже удивительно: спам-боты в комментариях прекрасно живут, а довольно безобидное чтение каналов оказалось жестко ограничено. В итоге помог рабоче-крестьянский подход - скрапить веб-версию.

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

В-третьих, к слове о базе данных, я впервые всерьез попробовал Neon (ссылка накинет 5 баксов на аккаунт) для своего проекта и остался очень доволен - все просто работало безо всякой возни, причем на обычном бесплатном аккаунте, это сэкономило мне кучу времени и сил. Всем рекомендую, коллегам респект!

В-четвертых, я впервые что-то сделал end-to-end на расте, и моя жизнь не будет прежней. Писать на нем руками, конечно, сложнее и дольше (skill issue, признаю), чем на каком-нибудь питоне, но если 90+% кода написано агентом, то эта проблема в целом уходит. Зато качество изменилось всерьез: если что-то компилировалось без ворнингов, то оно обычно просто работало. В питоне пришлось бы потратить на порядок больше усилий на тестирование и бесконечные фиксы. Короче, думаю, что всерьез перейду на Rust для одноразовых проектов на выброс. Отдельный кайф наблюдать, как что-то помещается в <40 мегабайт памяти.

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

Статистика: 7500+ юзеров, 200+ плательщиков. Заработано в звездах на ~10% больше, чем потрачено на Gemini API (то есть если бы это был настоящий бизнес, экономика бы едва сошлась; не будь лимитов и платных фичей - я бы наверняка офигел от затрат). Какой-то моментум есть, можно попробовать пилить новые фичи и вообще развивать эту штуку. Для самых любопытных выложил исходники - с нуля я бы сейчас делал слегка иначе (например, надо было использовать каналы, с самого начала делать персистентность для in flight тасков), ну да как есть.
❤‍🔥84🔥4225👍11🍓2
Продолжаю подрабатывать копирайтером: Six Principles for Production AI Agents.

Этот пост слегка пересекается с предыдущим, но я старался сделать его максимально универсальным, независимым от конкретного домена и вообще сделать так, чтобы эти принципы оставались валидными еще хотя бы год.
👍3711🔥5
Новость от знакомых фаундеров, которые переобулись в инвесторов: новый фонд Tetrad.vc 📔. Основатели не так давно сами набивали стартаперские синяки — от первых билдов до выхода на глобальные рынки (ZERO10, Wayvee, Sensemitter). Теперь запускают свой фонд и инвестируют на ранних стадиях (pre-seed / seed). Фокус на AI search, agentic AI, гейминг и consumer tech, но в целом открыты к другим нишам.

Молодой фонд с небольшой командой, поэтому достучаться до них проще, чем до крупных именитых VC. Обещают помогать с продуктом, стратегией и прочим, а не только насыпать банальный кэш.

В общем, если вы пилите стартап ранней стадии (а я точно знаю, что среди подписчиков таких немало), присылайте питч или просто познакомьтесь: [email protected]
136👍7
Так как пена релиза GPT 5 улеглась, а потом начались и обратные разговоры, что AI hit the wall, можно поиграть в визионера и поговорить о светлом будущем. Думаю, что партия умеренного оптимизма побеждает в своих прогнозах.

Для начала разметим спектр отношений к AI:
- с одной стороны неолуддиты и скептики, утверждающие про пузырь, стохастических попугаев, умный автокомплит, не умеющие считать r в strawberry и все такое;
- с другой стороны адепты AGI к 2027 и прочие свидетели сверхинтеллекта на видеокартах, туда же паникеры из секты, призывающей бомбить датацентры, пока этот мифический AGI не пойдет максимизировать скрепки и пожирать всех человеков. 

Как типичный центрист (слизняк без мнения), считаю, что обе крайности заблуждаются. Окей, судя по последним инкрементальным релизам от всех крупных вендоров, LLM перешли к этапу мелких улучшений. Давайте для модели представим, что фундаментальных улучшений больше не будет, а все талантливые ресерчеры наконец-то уйдут из корпораций пасти гусей. И что?

1. То, как агенты сейчас применяются в software, уже сильно повысило продуктивность. Не только в кодогенерации, но и в смежном: тут и UX-прототипы, и анализ логов, и дебаггинг. Там еще много сырого, и проникновение невысоко за пределами пузыря, но по вайбам - это повышение продуктивности на десятки процентов.

2. Аналогично агенты должны будут проникнуть и во все остальные white collar индустрии. То, что я видел одним глазом за пределами чисто софтверного мира, скорее подтверждает. Для этого надо будет написать очень много софта, устроить миллионы демок, сотни тыщ пилотных проектов и десятки тысяч интеграций, неизбежны миллиарды откатов и тыщи увольнений.

3. Хотя опенсорс модели все еще отстают от sota решений, они уже в целом юзабельные. Anecdotal: на внутреннем бенчмарке я вполне вижу 80% качества за 20% денег опенроутеру (вместо 100% антропику), старик Парето бы порадовался. Даже если вдруг у топ вендоров случится картельный сговор, госрегуляции и железный занавес, на существующих open weights технологиях можно делать полезное.

4. Если волшебное улучшение foundation моделей закончится, нам, простым работягам, будет еще лучше - надо делать умный domain-specific scaffolding и закидывать тест-тайм компьютом, желательно не совсем брутфорсом.

Иными словами: 🐂 bullish на тему вертикальных стартапов в сложных индустриях, интеграторов и инфраструктуры, 🐻 bearish на тему обещаний AGI за $7T, неолуддитов и API врапперов по подписке.
7👍8413💯11😁4👏2🤔2
What makes Claude Code so damn good (and how to recreate that magic in your agent)

Рекомендую почитать любителям везде воткнуть мультиагентный граф, сверху накинуть векторный RAG и удивляться, почему все не очень работает.
❤‍🔥37👍13👌4🔥21
Когда я осваивал ML, много зависал на Kaggle. Было увлекательно, хотя иногда и унизительно - вроде бы думаешь, что понимаешь что-то, а потом твой скор застревает в нижней половине таблицы, и ты понимаешь, где твое место. В итоге чему-то научился, мастера намайнил, перед пацанами стало не стыдно, и даже в поиске работы пару раз пригодилось.

Но не кагглом единым. Сегодня у нас реклама соревнования от HFT-фонда Wunder Fund. Они захостили свое соревнование, нужно предсказать следующее состояние рынка по набору анонимизированных фичей. В отличие от реальной жизни, долго разбираться с природой данных не получится, придется больше фокусироваться на моделях, что многие любят. Данных маловато, но для кого-то и это плюс - можно поучаствовать без личного кластера.

Как в меру ответственный блогер, я и сам сделал сабмит, попал в топ-50 вообще безо всякого ML, так что бейзлайн как будто не очень сложный. Платформа сделана качественно (в отличие от многих наколеночных соревнований за пределами Kaggle), документация понятная; в общем, если вы еще не настолько дед, чтобы не участвовать в соревнованиях, то посмотрите!

$13600 призового фонда, 15 сентября - 1 декабря, регистрация открыта.
1👍30🔥12💩65🌭1
Cześć, warszawiacy! 🧜‍♀️🇵🇱

Объявление для польских подписчиков: 15 октября буду выступать на AI agents митапе в Варшаве (в основном пересказывать свои старые посты). Вход стоит каких-то денег, но организаторы обещали мне несколько билетов.

Думаю, что среди подписчиков есть желающие, но не знаю, сколько. Принимать решения мне тоже лень. Поэтому план для желающих такой:
- нужно заполнить нехитрую форму до вечера понедельника;
- если желающих будет до трех человек, организаторы просто вышлют вам билеты;
- если желающих будет больше, то после закрытия формы я попрошу некую LLM выбрать тех, кто больше всего достоин халявных билетов, основываясь на ответах в поле "Why do you want to attend?"

Лотерея, которую мы вы заслужили 🎰
10👍39😁12❤‍🔥4🙈32💊2
2025/10/16 02:43:09
Back to Top
HTML Embed Code: