Обновить
817.32

Python *

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

Сначала показывать
Период
Уровень сложности

Реализация MCP в Open WebUI. Часть 1. Интеграция c Open WebUI

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

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

На первый взгляд MCP в связке с LLM полностью закрывал данные проблемы, однако с ростом объема данных стало заметно, что LLM не удается обрабатывать их быстро и качественно, а написание SQL запросов для нее не всегда легкая задача (даже если примеры этих запросов у нее есть в промпте). В итоге мы получили потерю контроля над контекстом модели и непредсказуемый результат.

В этой части я расскажу про интеграцию с Open WebUI и какая архитектура модели позволила победить вышеуказанные проблемы. Следующие статьи расскажут о реализации MCP таким, каким он позволяет выполнять наши задачи (но не финальной версии). Эта статья может быть полезна всем, кто строит свои модели на основе Open WebUI или еще только выбирает фреймворк, на котором предстоит строить будущую модель

К интеграции с Open WebUI

Синдром импостора: как перестать бояться публиковать код

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

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

Читать далее

Как решить TSP для 10 000 точек БЕЗ прыжков: метод «Динамического Шампура» с инерцией

Время на прочтение3 мин
Охват и читатели5.9K

Как обойти 10 000 точек без лишних «холостых» прыжков и геометрической путаницы? Традиционные жадные алгоритмы пасуют перед плотными структурами, заставляя инструменты ЧПУ и роботов метаться по всей рабочей зоне. В этой статье я представляю «Алгоритм Динамического Шампура» (Shampur‑Scraper Method) — иерархический подход к задаче коммивояжера, сочетающий инерционное планирование магистралей и динамическую зачистку зон ответственности. Разберем логику «Скребка», эффект «напряжения тупиков» и посмотрим, как этот метод играючи справляется с самопересекающимися трилистниками и плотными спиралями за доли секунды.

Читать далее

LLM — 3 «семёрки» против SOTA, строим «градиентный бустинг» из SLM моделей

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

Превращаем LLM в CatBoost: как ансамбль из маленьких моделей (7B) пытается побить Gemini 3 flash

Почему не классическое MOE?

Я проанализировал свои промпты за последние два месяца и заметил паттерн: современные задачи к LLM стали мульти-итентными . Я прошу в одном сообщении: "Возьми данные X, примени логику Y, напиши код Z и оформи в JSON". Архитектура MoE в таких случаях плывет (если мы говорим о single-turn конечно). Single-pass модели часто не справляются, так как не могут реверснуть свой ответ и перепроверить себя перед ответом. К тому же роутер может отдать запрос не тому "эксперту", может неправильно чанковать (условно), в целом мы это и наблюдаем в gemini 3. Текущая предложенная архитектура бустинга решает эту проблему через последовательную ответственность. Первая модель (черновик) пытается сделать всё сразу (и ошибается), вторая (Критик) проверяет выполнение условий постфактум, третья (фиксер) работает с тз критика и исправляет ответ. Такой цикл может длиться от 2 до множества операций, что может значительно экономить ресурсы и улучшать качество ответа (изначальный тезис). При этом даже SOTA-модели пытаются решить всё в один проход, и именно поэтому они «плывут» на сложных мульти-интентных задачах. Текущий подход - итеративное улучшение ответа между разными моделями. Но, пожалуйста, держите в голове что это не классический бустинг и к тому же этап инференса, а не обучения.

Пару ремарок которые можно пропустить если вы и так знакомы с терминами и dl/ml и не интересуетесь архитектурой:

Читать далее

Аннотации в Python: модуль typing

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

Вы когда-нибудь задумывались, почему код в Python иногда кажется очевидным, а через полгода вызывает головную боль? Аннотации типов и модуль typing не меняют поведение языка, но они могут стать настоящим ориентиром в хаосе функций, словарей и списков. В этой статье мы посмотрим, как типы помогают читать, понимать и поддерживать код, не превращая Python в строгий язык.

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

Как AI убъет вашу базу: безопасность вайбкодинга в 2026

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

Не прошло и дня, как я писал про«AI‑диспетчера» — генерируешь, проверяешь, мержишь. Выглядит замечательно. Но ни слова про секурити. А между тем, произошло достаточно инцидентов, чтобы понять: модель рабочая, но только если ты действительно проверяешь, а не делаешь вид.

А если не проверяешь? Replit удаляет базу данных, Claude Code становится инструментом киберпреступников, а твой стартап оказывается взломан за 16 минут.

Это не статья про «не используйте AI». Это статья про то, почему проверка — не опциональный этап, а ваш последний рубеж обороны.

Читать далее

Антикейс — в нестандартном понимании! Клоакинг зло — а со злом надо бороться

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

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

Читать далее

Poisk: однофайловый поисковик для изолированной корпоративной сети

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

В изолированной корпоративной сети с полумиллионом файлов стандартный поиск превращается в рутину. Облачные сервисы недоступны, серверные решения избыточны, а встроенные инструменты ОС не справляются с объёмами и разнородностью клиентов (Windows и Linux).

Мы столкнулись с этой задачей и вместо развёртывания сложной инфраструктуры пошли другим путём: упаковали весь поисковик в один HTML-файл. Фоновая индексация на Python раз в сутки — и сотрудники получают мгновенный поиск по путям прямо в браузере.

В статье разбираем архитектуру решения: как относительные пути решают проблему разных точек монтирования, почему плоский JS-массив оказался эффективнее сложных структур, и как уместить индекс 560+ тысяч файлов в 120 МБ без потери скорости.

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

Читать далее

Как деанонимизировать поведение трансформера на временных рядах: визуальная диагностика и фальсифицируемые тесты

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

Рассматриваю метод интерпретации модели на временных рядах, который работает как инструмент дебага с интервенционным протоколом. Метод строит карту вклада входных сигналов в координатах время × масштаб × признак, и я проверяю ее через два фальсифицируемых теста. Цель — не проиллюстрировать веса конкретной предобученной нейросети, а деанонимизировать поведение модели: прямо и доказуемо увидеть внутреннюю стратегию чтения сигнала.

Читать далее

SoftMax: как нейросети превращают сырые числа в уверенные вероятности — разбор с примерами и математикой

Время на прочтение2 мин
Охват и читатели4.1K

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

Читать далее

За пределами LLM: детерминированный движок рассуждения на конечном алфавите

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

В статье я показываю альтернативу LLM в роли решателя внутри продукта: детерминированное ядро, работающее на конечном алфавите состояний с таблично заданной бинарной операцией — lookup/transition table.
Вместо вероятностных ответов — воспроизводимые вычисления с замыканием (фикс-точка или цикл), учётом симметрий (автоморфизмов) для факторизации перебора и со строгим контуром проверки: спецификации, валидаторы, регрессия и публичный отчёт в стабильном JSON-формате.
Систему можно запустить локально одной командой — или прогнать прямо в ChatGPT, если включён режим выполнения кода: вы получите PASS/FAIL и полный комплект артефактов прогона.

Читать далее

RLM-Toolkit v1.2.1: Теоретические основы и оригинальные разработки

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

От теоремы Шеннона 1948 года до pip install rlm-toolkit 2026 года. 78 лет фундаментальной науки в одной библиотеке.

Читать далее

Решение обратной задачи рекомендаций: опыт участия в VK RecSys Challenge

Время на прочтение4 мин
Охват и читатели6.2K

В декабре 2025 года VK провёл RecSys Challenge LSVD — соревнование по машинному обучению с нестандартной постановкой задачи. Традиционные рекомендательные системы решают проблему "что показать пользователю", но здесь требовалось обратное: для каждого нового клипа определить, каким пользователям он может быть интересен. Такой подход помогает решать проблему холодного старта контента, когда новое видео только появляется в системе и не имеет истории взаимодействий.

Я принял участие в этом челлендже и хочу поделиться своим решением, архитектурой системы и практическими выводами.

Читать далее

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

Я реализовал паттерн памяти из OpenAI Cookbook в Python библиотеку

Время на прочтение4 мин
Охват и читатели7.2K

AI-агент который помнит: Python библиотека по рецепту OpenAI

Устал объяснять агенту одно и то же? Я тоже.

Взял паттерн Context Personalization из OpenAI Cookbook и упаковал в pip install:

from agent_memory import MemoryManager
manager = MemoryManager(storage=SQLiteStorage("./memory.db"))
state = manager.load_user("user_123")
prompt = state.to_system_prompt() # Память уже в промпте

Что под капотом:
— Session vs Global память
— LLM-консолидация (5 заметок → 3, умная дедупликация)
— Блокировка PII и prompt injection
— TTL для временных предпочтений

pip install agent-memory-state
Код: github.com/molchanovartem/agent-memory

Читать далее

RLM-Toolkit: Полное руководство по обработке 10M+ токенов

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

Почему LangChain не справляется с 10M+ токенов? Разбираемся в RLM — новой парадигме обработки контекста с InfiniRetri (100% accuracy на Needle-in-Haystack), CIRCLE-безопасностью и поддержкой 75+ провайдеров. Полный туториал с кодом.

Читать далее

Оценка эффекта релиза, когда изменение затронуло не всех: diff-in-diff и синтетический контроль

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

Когда релиз раскатан не на всех, классическая схема "до" и "после" начинает рушиться: метрика растет или падает одновременно из-за сезонности, внешнего фона и изменений в каналах, а не только из-за продукта. При этом AB теста может не быть, но данные по группам есть почти всегда: по гео, сегментам, кластерам, витринам.

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

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

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

Читать далее

Разработка библиотеки ленивых строк в паре с ИИ

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

Еще одна библиотека строк для Python? Легко - если у вас есть ИИ-помощник.

Рассказываю, что хотел сделать (действительно, ленивые строки), что получилось, как использовал ИИ, с какими проблемами столкнулся, какие выводы для себя сделал.

Читать далее

С помощью Python реабилитировал алкогольную романтику у Довлатова

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

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

Читать далее

Студенческий проект с открытым исходным кодом: «Как мы автоматизировали анализ университетского блэклога»

Время на прочтение3 мин
Охват и читатели7.1K

В ходе обучения и прохождения практики в вузе МГУТУ им Разумовского, мы выявили проблему: студенты тратят почти до 40 часов на поиск существующих исследований перед запуском новых проектов. Анализ показал, что многие работы дублируют уже выполненные исследования по AR/VR - технологиям

Началом для разработки нашего проекта V-Avatar послужил анализ научного задела факультета цифровых технологий. Мы интегрировали методы и алгоритмы, которые были уже созданы до нас, вместо того, чтобы начинать с нуля. Эти методы были описаны в данных ВКР:

1)Теоретический фундамент (ВКР за 2025 года): «Применение AR/VR-технологий в обучении сотрудников». Из этого метода был взят концепт моделирования, который стал основой для архитектуры V-Avatar. Мы воспользовались данной моделью для взаимодействия аватаров внутри образовательной среды.

2) Технологическая реализация (ВКР за 2024 год): «Разработка виртуального интерактивного музея на основе WebVR». Из данной работы были позаимствованы методы создания интерактивного 3D-контента. Также подходы к симуляции действий были адаптированы для функционала наших аватаров.

Самый важный алгоритм моделирования из ВКР 2025 года интегрирован в программный модуль src/legacy_methods.py. Это позволило создать не только визуальное решение, но и ссылаться на обоснованные методы оценки вовлеченности пользователей именно в VR-обучение.
Для создания MVP проекта V-Avatar мы выбрали гибкий технологический стек, который позволит быстро масштабировать решение и привлечь open-source контрибьюторов.

Читать далее

Как я отучил нейросеть писать «Я коммуникабельный» и заставил её проходить HR-фильтры

Время на прочтение3 мин
Охват и читатели13K

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

И каждый первый рекрутер научился их детектить за секунду.

Стандартный ответ LLM выглядит так:

Читать далее