Обновить
512K+

Python *

Высокоуровневый язык программирования

430,87
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

KiSinWi — AutoML-платформа с микросервисной архитектурой и мультиагентными воркфлоу

Уровень сложностиСредний
Время на прочтение26 мин
Охват и читатели7.7K

AutoML обычно отвечает на вопрос «что победило», а хотелось бы ещё знать «почему». Поэтому я собрал платформу, где обучение нейросетей ведут LLM-агенты. Они спорят об архитектуре, собирают конфиг и запускают обучение, и каждый их шаг виден прямо в интерфейсе.

Коротко расскажу, как устроена платформа и агенты. Особый акцент в статье сделан на получаемые результаты бенчмарков на 5 стандартных датасетах и действиями мастера ноутбуков из Kaggle.

Читать дальше

Как превратить один VPS в платформу для деплоя нескольких проектов без боли и Kubernetes

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели7.9K

Как держать несколько проектов на одном VPS так, чтобы каждый работал на своём домене с HTTPS, а все порты были закрыты снаружи — без Kubernetes и ручных конфигов Nginx. Nginx Proxy Manager, Docker-сети и три реальных проекта на практике.

Читать далее

Локальный RAG без магии: sources, timings, request_id и отказ от генерации

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели9K

Хотел разобраться где заканчивается простой вызов локальной LLM и начинается backend система.

Сначала всё выглядело просто: frontend отправляет вопрос, FastAPI принимает POST /ask, backend вызывает локальную модель через Ollama и возвращает ответ. Но стало понятно: для помощника по документации этого мало. Модель отвечает, но непонятно на какие документы она опирается, какие фрагменты попали в prompt, сколько времени занял каждый этап и что делать, если индекс устарел.

В статье показываю не "как вообще устроен RAG", а путь от простого вызова локальной LLM к небольшому backend/RAG-проекту с API контрактом, request_id, логированием, sources, timings, rebuild index, negative tests и честными ограничениями.

От LLM вызова к RAG системе

Фильтры в Apache Superset. Кросс-фильтрация

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели5.9K

Сегодня разберемся, что такое кросс-фильтрация в Apache Superset и какую неожиданную опасность она может нести.

Читать далее

Как желание написать простой CRUD привело к созданию целой видеоплатформы

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели13K

От CRUD на FastAPI до видеоплатформы: история одного pet-проекта

История о том, как учебный CRUD-проект на FastAPI постепенно превратился в стенд с микросервисами, мониторингом, Kubernetes.

Читать далее

Инженер попросил нейросеть помочь с кодом…

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели17K

Я инженер - технолог. Время от времени мне бывает нужно что то посчитать,  обычно хватает excel. Недавно возникла довольно интересная задача (можно сказать вызов) для которой возможностей excel, либо моих навыков в нём оказалось недостаточно. Нужно было откалибровать стенд введя в его математику 4 калибровочных коэффициента подобрав их значения так, чтобы десяток протоколов измерений сошелся к общему знаменателю. Десять разных значений для каждого коэффициента давало 10000 комбинаций помноженное на 10 протоколов которые нужно было пересчитать....

Читать далее

AI — Ассистент для торговли с крипто-биржами

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели9.7K

Семь месяцев назад я каждый день наблюдал, как BTC летит вверх, ETH разворачивается, SOL вроде зажимается в боковике. На каждой паре — свои таймфреймы, разные ситуации, разная логика монет. Она сводила меня с ума. Я постоянно переключался между монетами и искал годную точку входа по монетам, а бывало такое: вошёл в позицию, и цена начинает движение против точки входа, начинаешь нервничать и выходить из позиции, или, наоборот, сидишь и держишь её, а потом ликвидация. Невозможно сидеть и смотреть, анализировать за десятью монетами, слишком сложно.

Подумал, а почему бы не сделать так, чтобы система сама мне говорила «смотри, какая монета, и обрати внимание на точки входа»? Но не торговала за меня, всё-таки недоверие было, не хотел полностью убирать себя из процесса, а просто уведомляла монеты, которые, по её расчётам, выглядят интересно.

Первая версия была базовая и простая. Просто скрипт, который считывал RSI и EMA на Python и раз в час слал мне в Telegram текст типа «RSI BTCUSDT–34 — вероятно перепродан». Скрипт был бесполезный, но я догадался, что направление верное и можно реализовать продукт помощнее, нужно было только изучить, как работает рынок, почитать литературу, статьи.

Затем я добавил MACD, Bollinger. ATR: понял, что надо разделять режимы волатильности. Начал изучать ML, меня порадовала находка, книга автора Marcos López de Prado «Финансовое машинное обучение», о методах, которые использовал описанных в ней, ниже статьи есть описание. Получился продукт, и он мне принёс пользу. Теперь объясню, как это устроено внутри.

Читать далее

MLE-bench: золото взято, а доказательства остались в /tmp

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели8.1K

В апреле мой агент смог перешагнуть золотой порог на MLE-bench в агентских соревнованиях Berkeley RDI, а когда я решил показать «тот самый код, который взял золото» — понял, что не уверен, существует ли он вообще.

Хабр, привет! Меня зовут Георгий, и в своей первой статье на площадке я решил разобраться, что же происходило на самом деле. Цифровой детектив: с чем я преодолел планку, где этот результат теперь (спойлер: нигде) и сколько смысла в этом «золоте». Это история о том, как я расследовал собственную «победу»

Читать далее

RAG на кончиках пальцев

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели9.6K

Хочу поделится своим опытом создания RAG-системы, где мультиязычная модель E5, классификатор на LLM для обработки отрицаний и реранкер Jina работают в связке. А также неочевидные нюансы работы с синонимами и структурой знаний.

Моя основная профессия — ПМ в ИТ. Плотно занялся LLM год назад, можно сказать, что я «молодой специалист».

Читать далее

Пишем CFD solver для симуляции потока воздуха (часть 1)

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели7.4K

Недавно передо мной встала задача расчетной гидро-газо динамики, надо было посчитать сопротивление воздуха, форму огибающего потока, все то, что требовалось, чтобы посчитать траекторию летящего тела. В этой статье я подробно написал и объяснил, как создать CFD solver.

Читать далее

Как я смог запустить суперапп и что это на самом деле

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели7.6K

Разработка супераппа в одиночку. Рассказываю, как за 8 месяцев я создал платформу на связке Django и Vanilla JS, какие критические уязвимости контроля доступа (IDOR) обнаружил в WebSockets и как решил их на уровне асинхронного бэкенда.

Читать далее

Гайд по безопасности вайб-кодинга: что сделать, чтобы не слить данные в прод

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели9.4K

Статья призвана не испортить праздник вайбкодинга, а сделать так, чтобы этот праздник не закончился публичным позором и потерями. Написана по мотивам проблем которые я доставил себе и своим работодателям. Я сливал ssh ключи, ловил датамайнера через торчащий наружу редис, огребал от атаки в npm пакете и много чего еще.

Осторожно заглянуть

Crashprobe: как я заделал критическую уязвимость в версии 0.4.1

Уровень сложностиПростой
Время на прочтение1 мин
Охват и читатели7.1K

Привет, Хабр! Недавно я опубликовал статью про свою библиотеку - crashprobe, которая перехватывает ошибки в синхронном коде Python и потоках, а затем генерирует о них красивый HTML или TXT отчёт.

Статья получила хорошие результаты, а читатели помогли сделать библиотеку лучше и безопаснее. Так внимательный читатель @vldmrmlkv обратил внимание на критическую уязвимость в безопасности версии 0.4.0.

Читать далее

Ближайшие события

graphlens: превращаем репозиторий в типизированный граф — Python, TypeScript, Go и Rust в одной модели

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели13K

Любой инструмент для «понимания кода», которым я пользовался, рано или поздно упирался в одну из двух стен.

Первая — цикл «grep → открыть → прочитать → перейти по импорту → снова grep». Работает, но медленно, и у него нет ни малейшего представления о том, что process_order, найденный в services.py — это тот самый process_order, который вызывается из api.py, а не однофамилец из tests/. Когда этим занимается LLM-агент, он ещё и сжигает на этом тонну токенов.

Вторая стена — моноязычность. Инструмент прекрасно понимает Python, но слепнет в ту секунду, когда фронтенд на TypeScript дёргает ручку FastAPI на Python. Реальные системы полиглотны. Инструменты вокруг них — обычно нет.

graphlens — это open-source фреймворк (MIT), который спроектирован так, чтобы обойти обе стены. Он парсит исходный проект, нормализует его структуру в общий граф-IR и отдаёт этот граф вам — делайте с ним что хотите: анализ зависимостей, навигацию, поиск мёртвого кода или подачу точных ответов LLM-агенту вместо вываливания файлов в контекст.

Читать далее

RAG не только для вопросов и ответов: почему он естественно подходит для рекомендаций

Уровень сложностиСложный
Время на прочтение11 мин
Охват и читатели12K

Retrieval-Augmented Generation (RAG) чаще всего рассматривается в контексте вопросно-ответных систем и чат-ботов поверх базы знаний. Большинство публикаций и руководств по RAG посвящено схеме «вопрос – ответ с опорой на документы». Однако внутренняя механика RAG – семантический поиск в сочетании с генерацией ответа на основе найденного – хорошо ложится и на другую задачу, которую традиционно решают иными методами: на рекомендации.

Цель настоящей статьи – показать, что RAG представляет собой недоиспользованный, но обоснованный инструмент для рекомендательных систем, и разобрать, на каких именно ограничениях классических рекомендателей он выигрывает и где проходят его границы. В качестве сквозного примера рассматривается рекомендательная система книг по запросу в свободной форме. При этом основным предметом рассмотрения является сам подход, а не конкретная реализация.

Читать далее

Аудит алгоритмов: как реализация Boyer-Moore с 190K звёзд на GitHub оказалась brute-force

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели29K

Проверил реализацию Boyer-Moore в TheAlgorithms/Python (190K+ звёзд). Оказалось, что сдвиг bad character записывается в переменную for-цикла, что в Python не имеет эффекта. Алгоритм выдаёт правильные результаты, но работает как brute-force O(nm) вместо O(n/m). Плюс ещё две находки: бесконечный цикл в типичных реализациях full BM и ошибка в оригинальной статье 1977 года, которую исправили только в 1980-м.

Читать далее

Инвертируем зависимости одного FastAPI-эндпоинта

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели11K

Давайте ещё раз поговорим о SOLID. Если ваша работа хоть как-то связана с разработкой программного обеспечения или вы просто интересуетесь программированием, вы наверняка слышали этот печально известный акроним. Ему уже посвящены бесчисленные статьи, публикации в блогах и обучающие видео. Возможно, это одна из самых обсуждаемых аббревиатур в мире разработки. Но в этой статье я хочу подробнее остановиться на последней по порядку, но не по значимости букве – D, которая обозначает принцип инверсии зависимостей (Dependency Inversion PrincipleDIP).

Почему этот принцип важен для написания поддерживаемого кода? Важен ли он вообще? Зачем всё это нужно? Для ответа на эти вопросы давайте попробуем инвертировать зависимости в одном эндпоинтe FastAPI.

Читать далее

Антивирус не помог? Threatbit Simple Scanner находит то, что он пропускает

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели15K

Антивирус почистил ваш компьютер, но присутствуют ограничения? Тогда вам стоит попробовать Threatbit Simple Scanner. Данная утилита open-source под лицензией MIT и очищает компьютер от последствий вредоносного ПО. Он имеет большой функционал: от чистки автозагрузки до сброса Winsock, файла Hosts и DNS-кэша.

Читать далее

Как отладить подключение бота к бирже за час, а не за трое суток

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели13K

🕹️ Подключение бота к бирже за час, а не неделю

Подключение торгового бота к бирже обычно отлаживается так: пишешь адаптер, запускаешь live и ждёшь торгового сигнала, чтобы поймать баг — а сигнала может не быть сутками. А в алготрейдинге мы делаем именно так.

Статья содержит руководство, как оптимизировать временные затраты на отладку интеграции в биржу

Читать далее

Django-согласия и cookies под 152-ФЗ: версии документов, аудит и экспорт вместо одного чекбокса

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели9.1K

Согласие на обработку персональных данных в Django-проекте часто начинается с одного BooleanField. Но затем оказывается, что недостаточно помнить только факт нажатия на чекбокс: пользователь мог видеть другую редакцию документа, отозвать согласие, выбрать лишь часть категорий файлов cookie, а администратору может понадобиться журнал действий и выгрузка в CSV.

Я сделал для этого два полностью независимых Django-пакета с открытым исходным кодом: django-consent-152fz для юридически значимых согласий и django-cookies-152fz для политики файлов cookie, категорий, подключённых сервисов и окна выбора. В статье покажу реальную модель данных, минимальное подключение и то, как устроены редакции, журнал событий и выгрузка данных.

Читать далее