Собрали в одном месте самые важные ссылкии сделали Тренажер IT-инцидентов для DevOps/SRE
Хочу поделится своим опытом создания RAG-системы, где мультиязычная модель E5, классификатор на LLM для обработки отрицаний и реранкер Jina работают в связке. А также неочевидные нюансы работы с синонимами и структурой знаний.Моя основная профессия — ПМ в ИТ. Плотно занялся LLM год назад, можно сказать, что я «молодой специалист».
Retrieval-Augmented Generation (RAG) чаще всего рассматривается в контексте вопросно-ответных систем и чат-ботов поверх базы знаний. Большинство публикаций и руководств по RAG посвящено схеме «вопрос – ответ с опорой на документы». Однако внутренняя механика RAG – семантический поиск в сочетании с генерацией ответа на основе найденного – хорошо ложится и на другую задачу, которую традиционно решают иными методами: на рекомендации.
Любой инструмент для «понимания кода», которым я пользовался, рано или поздно упирался в одну из двух стен. Первая — цикл «grep → открыть → прочитать → перейти по импорту → снова grep». Работает, но медленно, и у него нет ни малейшего представления о том, что process_order, найденный в services.py — это тот самый process_order, который вызывается из api.py, а не однофамилец из tests/. Когда этим занимается LLM-агент, он ещё и сжигает на этом тонну токенов.
Перенесли тулинг с pip на uv и ~90 дней пожили с этим в бигтехе. Скорость честная. Остальное - причина, по которой существует эта статья. Миграция вскрывает неочевидные изменения поведения. Пять мест из прода, каждое с ошибкой и фиксом.
Фреймворк для простого создания интерфейсов командной строки.. Скачать можно по ссылке: https://pypi.python.org/pypi/click/
Утилита позволяющая измерить процент покрытия тестами. Скачать можно по ссылке: https://pypi.python.org/pypi/coverage/
Давайте ещё раз поговорим о SOLID. Если ваша работа хоть как-то связана с разработкой программного обеспечения или вы просто интересуетесь программированием, вы наверняка слышали этот печально известный акроним. Ему уже посвящены бесчисленные статьи, публикации в блогах и обучающие видео.
А теперь о том, что происходило в последнее время на других ресурсах.
Согласие на обработку персональных данных в Django-проекте часто начинается с одного BooleanField. Но затем оказывается, что недостаточно помнить только факт нажатия на чекбокс: пользователь мог видеть другую редакцию документа, отозвать согласие, выбрать лишь часть категорий файлов cookie, а администратору может понадобиться журнал действий и выгрузка в CSV. Я сделал для этого два полностью независимых Django-пакета с открытым исходным кодом:
Автоматическая генерация структурированных академических конспектов из аудиозаписей лекций по точным и естественным наукам затруднена для локальных малых языковых моделей (small language models, SLM). Транскрипт лекции продолжительностью ≈1,5 ч составляет около 15–20 тыс. токенов и формально умещается в контекстное окно современных локальных SLM, однако при обработке такого контекста single-call SLM систематически деградируют: теряют фрагменты из середины последовательности, не удерживают структуру и галлюцинируют термины и формулы.
Это первая из двух статей о CancelledError — сигнале отмены задачи. В ней мы остановимся на стандартном asyncio. Узнаем, что на самом деле представляет собой CancelledError, с точки зрения event‑loop. Разберёмся, как работает счётчик отмены (cancel/uncancel), на котором построены TaskGroup и asyncio.timeout. Наконец, обсудим проблемы, которые возникают на практике, в первую очередь связанные с asyncio.shield.
Как узнать, что внутри .exe, собранного через Nuitka? DeNuitkanizator — инструмент с открытым кодом для анализа таких файлов. Извлекает строки, модули, хэши, информацию о защите и многое другое за один запуск.
Подготовка модели Yolo для запуска на базе Hailo чипа для Raspberry Pi 5 AI HAT+. Если есть интерес к легким аппаратным решениям в области ИИ, то добро пожаловать. В статье я затрагиваю вопрос подготовки модели детекции к работе на компактной малинке.
В этой статье мы хотели бы рассказать о наших самых актуальных разработках в области нейросетевых подходов к решению задачи кредитного скоринга физических лиц. Ранее мы уже писали на эту тему, но последняя статья предыдущего цикла датирована 2023 годом. За это время мы смогли значительно продвинуться в исследовании способов решения данной задачи.
Тридцать зелёных юнит‑тестов ещё не означают, что код готов к продакшену. Баги часто прячутся в данных, которые никто не догадался проверить вручную: пустых строках, дубликатах, редком Unicode и неожиданных последовательностях операций. Разбираемся, как Hypothesis генерирует такие случаи, проверяет свойства вместо отдельных примеров и сводит падение к минимальному контрпримеру.
«Контейнер для DI — это лишний оверхед, передай зависимость руками и не выдумывай». Я тоже так считал, пока не замерил: наивный контейнер резолвил типичный сервис-граф примерно в 200 раз медленнее ручной сборки.Рассказываю, как тремя шагами — кэш плана, удаление проверки, которая всё равно не срабатывает, и компиляция графа в одну плоскую функцию — довёл резолв с 52.9 до 0.40 мкс/оп, почти как руками.
В первой части я ускорил большой интеграционный pytest-сьют с получаса до полутора минут за счёт инфраструктурных правок. Во второй проверяю следующий очевидный слой оптимизации — pytest-xdist.Результат оказался не магическим, но полезным: -n auto дал ещё ×3.4 локально и около ×2.7 в CI. В статье показываю, почему xdist не заменяет дешёвый setup, а только домножает его; как разводить БД и Redis по воркерам; где упираются соединения Postgres; и почему память Docker VM и тюнинг Postgres не сдвинули потолок.
Помните, не так давно мы говорили с вами о том, что общего у вина и ИТ? На платформе «Своё вино» мы с редакцией обычно говорим о терруарах, стилях и винтажах, но в этот раз попробуем применить ту же оптику к языкам программирования. Попробуем угадать язык по пяти строкам кода и заодно понять, по каким «ароматам» и «танинам» наш мозг так быстро их различает. Дегустируйте код
Catlantean 3D — это хобби-проект, который я неспешно пишу в своё свободное время уже больше года. В следующем году я планирую выпустить его в Steam.Я хочу создать завершённый, готовый к выпуску шутер от первого лица при помощи методик, характерных для начала 90-х, при этом позволив себе роскошь пользования современным компилятором и слоем абстракций платформы.