Как изменять API-запросы на лету, не трогая код сайта | 16 мая 2024 года, 13:40

Опубликовал новую статью на своем hybrismart. Вот представьте, у вас есть сайт (frontend + backend) и они обмениваются запросами, и вы хотите на лету поменять запрос — параметры или даже JSON, который отправляется в запросе или возвращается с сервера в браузер, причем без вмешательства в код сайта. Теоретически сайт может быть даже не ваш 🙂 Причины могут быть разные — протестить какую-то концепцию прежде чем просить программистов ее нормально реализовать, заменить реальный ответ шаблонным, включить отладку каким-то debug-параметром, сымитировать ошибочный/невалидный ответ API, убрать какие-то заголовки или наоборот поставить. Вот для всего этого нормального бесплатного решения «из коробки» нет. Пришлось делать самому. В статье анализ и код, который можно использовать.

https://hybrismart.com/2024/05/16/how-to-inject-custom-logic-to-intercept-and-modify-api-requests-and-responses-without-touching-frontend-backend-code/

How to Inject Custom Logic to Intercept and Modify API Requests and Responses Without Touching Frontend/Backend Code

Мониторинг бизнес-параметров в интернет-магазине: новая статья на Hybrismart.com | 12 мая 2024 года, 15:35

Опубликовал новую статью на Hybrismart.com. Она про построение системы мониторинга бизнес-параметров интернет-магазина. Число заказов, выполнение SLA бизнес-процессов, контроль за рождаемостью новых элементов в БД и т.д. Приходите читать

https://hybrismart.com/2024/05/12/tracking-and-visualizing-real-time-operational-metrics-in-e-commerce/

Tracking and Visualizing Real-Time Operational Metrics in E-commerce

Превращаем mp3 в ноты с Sheet Sage: впечатления и результаты | 09 мая 2024 года, 21:47

Поигрался немного с конвертацией mp3-музыки в ноты. Sheet Sage называется. Скармливаешь ему youtube-ссылку, он выдает PDF с нотами и midi. Результат не то чтобы хорош, но выше моих ожиданий. Тут два видео — одно с оригинальной дорожкой, другое — как звучит midi (я чуть поменял дефолтные инструменты) и тут же ноты.

как звучит:

LLAMA 3 в действии: как я анализировал книгу о Маске на ноутбуке | 05 мая 2024 года, 19:03

Экспериментирую с LLAMA 3 от Facebook. Есть ее модификация llama3-gradient:8b-instruct-1048k-q6_K, у которой контекстное окно в 1М токенов (это где-то 2 мегабайта). Есть и больше. Я скармливаю туда всю книжку про Элона Маска (рекомендую, кстати!) и она выдает неплохой саммари — причем быстро выдает, вот любой текст со скриншота генерится где-то за 40-60 секунд. При этом это еще относительно слабая модель (8B), у фейсбука есть 70B. Но тут главная фишка, что все это работает локально на ноутбуке. Не нужно платить за API, работает довольно быстро, скрипт маленький, помещается на экране.

Пока все-таки есть некоторые шероховатости — например, на прямые вопросы по тексту (вопросы, на которые я точно знаю ответы), система не всегда уверенно дает ответы. Когда отправляешь текст сильно меньше, то все работает.

Про мою кросс-публикацию блогов | 03 мая 2024 года, 18:46

Доработал механизм кросс-публикации на русскоязычный и англоязычный блоги. Во-первых, я разобрался, как сгруппировать посты по темам, присвоить им теги, и отнести к категории. Плюс это еще делается на лету для новых постов. Я попозже напишу на hybrismart статью, но смысл в том, что сначала создаются openAI векторы для всех постов, потом через KMeans они разбиваются на 50 групп и сортируются по дальности от центра, затем берутся первые посты (так, чтобы не выходило за рамки N Кб), и скрипт спрашивает openai, по какой теме этот кластер постов. В итоге у меня получается 50 тем, из которых я выбираю, скажем, Арт или Книги, и затем уже вытаскиваю все посты, близкие к теме арта или книг, опять же отсортированные по дальности от темы. Выходит не очень точно, особенно для постов, в которых мало текста. Поэтому каждый пост скармливается LLAMA3 8B локальной, на ноуте, и та решает, правда ли он в этой теме или нет. В целом, тоже с редкими ошибками, но из 2000 найденных скриптом по близости он оставил 600 по теме арта, и в целом неплохо.

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

Я уже раскидал посты на темы art, books, science. В целом, все автоматизировано, можно легко 10 новых тем еще сделать. Буду потихоньку делать. Пока теги только на beinginamerica, на raufaliev.com буду делать позже.

Кроме этого, если в посте есть ENG в скобках, то он на англоязычный сайт кидает кусок после ENG, а на русскоязычный — кусок после ENG below в скобках. Удобно, когда я сразу пишу пост на двух языках.

Заголовок у меня для архива делался через LLAMA3 8B, но openAI все-таки мощнее, но дороже. Для новых постов уже используется openAI GPT-4.

LLAMA3, да и OpenAI GPT-4, не очень хороши в придумывании заголовков текстам, которые слишком малы и неинформативны, и гонит иногда всякую пургу. Можете почитать и улыбнуться.

#TechStories

15 апреля 2024 года, 16:05

Опубликовал новую статью на Hybrismart — про delta detection в механизмах импорта данных и поисковой индексации. Только за счет него удалось смягчить тупизну систем выше по течению и в десять раз ускорить обновление данных

https://hybrismart.com/2024/04/15/delta-detection-and-incremental-updates-in-the-integration-processes-reducing-unnecessary-writes-to-the-database/

https://hybrismart.com/2024/04/15/delta-detection-and-incremental-updates-in-the-integration-processes-reducing-unnecessary-writes-to-the-database/

06 апреля 2024 года, 10:21

Написал подробную статью об одном интересном опыте на одном из проектов. Мне нужно было разобрать логику большого эксель файла — там несколько сотен довольно сложных формул, и работал он так: менеджер вводил с десяток параметров на одной вкладке, и все остальные были готовы для печати сметы для клиента. Там довольно сложная специфика и сложные товары, с массой особенностей типа с таким-то товаров должен идти такой-то сервис, а вот тут нужно умножать на два если там четыре. Никто у клиента до конца это не понимал, оно просто работало больше десяти лет, и все эти десять лет люди по чуть-чуть подправляли там логику, в пределах своего понимания. Документации не было, но даже если бы была, она бы только мешала, потому что сделанное потом по документации наверняка бы не билось с тем, что выдает Excel, и избежать реинженеринга все равно не удалось бы.

Я тогда поломал голову, как сделать этот реинжиниринг возможным в конечное время, исчисляемое единицами недель, и придумал решение, основанное на функциональном программировании на Groovy.

Публикую подробный разбор решения и репозиторий с кодом. Код пришлось написать с нуля для статьи, как и придумать эксель для демонстрации (в сотни раз проще того).

https://hybrismart.com/2024/04/06/how-i-reverse-engineered-huge-excel-file-full-of-complex-formulas/

https://hybrismart.com/2024/04/06/how-i-reverse-engineered-huge-excel-file-full-of-complex-formulas/

26 сентября 2023 года, 10:09

Зацените как мой поиск работает, по 14000 страниц пока.

Запрос может быть на любом языке.

Например, на русском “За небольшими растениями и высокими деревьями возле пруда, лес раскрывает высокие башни из светлой древесины, гладкоствольные деревья и темное, насыщенное дерево.”

Он выдает английский оригинал

“…Beyond the bushes and the mighty , crowding cedars around the lake , the forest opened — feathered spires of balsa , clean- trunked locust and mahogany…”

02 сентября 2022 года, 18:08

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

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

С экономической точки зрения проще было выбросить кресло и купить новое б/у. Подушки обошлись в ~70 долларов, включая ткань, поролон, нитки, молнию и около 6 часов на работу – это с учётом часов 20 перед этим на всякое разное другое, чтобы с подушками уже не ошибаться и с первого раза сделать более-менее правильно.

30 августа 2021 года, 16:23

Напечатал на 3D-принтере держатель для бутылки. Ее обычное место занято велозамком, да и такое положение гораздо более удобное: легко брать и легко класть обратно. А на место, где обычно крепится бутылка я планирую треугольную велосумку. Инженерное счастье – когда что-то придумал, и вот оно, работает. Первые 30 км уже откатало