Как мы сделали AI code review через Ollama без облака?

Как запустить AI code review по git diff на своей машине через Ollama - без облака и API-ключей? Установка, конфиг и пример отчёта.

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

Как запустить AI code review по git diff на своей машине через Ollama - без облака и API-ключей? Установка, конфиг и пример отчёта.

ASR-системы в проде - это тяжёлые, специализированные решения под конкретные сценарии. Но что делать, если нужен универсальный инструмент, который умеет распознать длинное аудио, диаризовать спикеров, обработать пачку файлов и при этом не требует целого GPU кластера?
В этой серии статей я разбираю, как собрать «швейцарский ножик» для распознавания речи на базе Whisper: выбрать модель, победить галлюцинации, стабилизировать обработку длинных аудио и выжать максимум из обычной видеокарты.
Первая часть - про выбор ASR, оптимизацию инференса и практические грабли, с которыми сталкиваешься, когда пытаешься превратить open-source модель в рабочий инструмент.

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

Если вы пишете бэкенд на Python или только собираетесь вкатиться в эту тему, вы точно слышали про FastAPI. Он обещает скорость NodeJS, автодокументацию из коробки и строгую типизацию. Звучит круто, но для новичка любая новая технология выглядит пугающе.
В этом гайде я хочу взять вас за руку и провести по всем базовым концепциям фреймворка. Мы напишем свой первый API-сервис с нуля, разберем частые ошибки новичков с асинхронностью и поймем, как писать чистый код с помощью APIRouter. Спойлер: баз данных и сложных ORM сегодня не будет, сосредоточимся на чистом понимании магии FastAPI.

Привет, Хабр! (И тебе, страдалец, который три недели смотрит на мёртвого бота в Битриксе. И тебе, админ, который уже устал объяснять руководству, почему «оно перестало работать». И тебе, безопасник, который узнал, что данные компании летают через какой-то curator.pro и чуть не уронил кружку.)
Помните мою прошлую статью про разработку Битрикс-бота? Ту самую, где я рассказывал, как документация врала, облака смеялись, а трафик зачем-то летел через сторонние сервера? Так вот - продолжение банкета.
Спойлер: стало хуже. Но мы справились.

Клиент пришёл за AI-чатботом для поддержки — 200 обращений в день, четыре оператора, вечная текучка. Мы прочитали 500 тикетов глазами и обнаружили: 68% закрываются обычным API-вызовом, ещё 14% — формой-визардом. А вот AI понадобился совсем для другого — кластеризация жалоб выявила бракованную партию товаров до того, как проблема стала массовой.

Сколько раз вы пытались открыть в Excel файл на пару миллионов строк и смотрели на зависший белый экран под звук взлетающего кулера? А сколько раз писали трехэтажные циклы for в чистом Python, чтобы просто сгруппировать данные и посчитать среднее?
Pandas — это Excel на максималках и швейцарский нож любого разработчика и аналитика. В этой статье я собрал абсолютную выжимку: 10 главных шагов для работы с таблицами. Разберем вечную путаницу между loc и iloc, правильную очистку от пропусков, группировки и джойны (merge).

🏆 1 место на хакатоне без работающего кода? Легко!
Мы заняли 3 место с рабочим сервисом. Победители показали картинки и получили премию Мэра. Мы проверили их GitHub: там пусто.
Внутри расследование:
Ссылки на код победителей (alert() вместо API).
Разбор метрик (SMAPE 79%).
Как связи решают всё.
Читайте, как выигрывают не технологии, а подрядчики. 👇

Всем привет! Я пытаюсь реализовать свою систему анализа металлов и сплавов. Занимаюсь своим проектом уже год. В составе системы уже около 15 модулей. И хочу представить один из них. Если кому-то интересно или есть изображения, которые нужно измерить, верифицировать с другими системами я только - за.
Немного теории из мира металловедения, который чем-то схож с миром биологии. Главное различие мира металлов, пластиков и других материалов, что это неживая материя.
Определение чугуна
Чугун представляет собой сплав железа с углеродом, где содержание углерода превышает 2,14% (обычно от 2,5% до 4,5%). Благодаря своей жидкотекучести, малой усадке и относительно низкой стоимости, чугун является одним из основных конструкционных материалов в машиностроении, энергетике и строительстве.
При анализе чугуны разделяют по состоянию углерода и форме графитовых включений, что определяет их физико-механические свойства:

Представьте типичную ситуацию: вы написали отличный кусок кода. У вас есть десяток функций, которые делают полезную работу — например, ходят в стороннее API, парсят данные и аккуратно складывают их в базу. Код читаемый, лаконичный, всё работает как часы.
И тут приходит тимлид (или заказчик) и говорит: «Слушай, а давай-ка мы будем замерять время выполнения каждой функции и писать это в логи. Ну, чтобы отлавливать тормоза на проде».
Что делает разработчик, который не знает про декораторы?
Как правило, работа с веб-сокетами сводится к паре строк: connect() и send(). Удобные абстракции библиотек превратили этот протокол в магическую трубу, по которой летают данные в обе стороны. Но магия заканчивается ровно в тот момент, когда соединение молча отваливается с кодом 1006, балансировщик рвет коннект, а в логах появляются странные ошибки фрагментации. В этой статье мы спустимся с небес высокоуровневых фреймворков на уровень байтов и битовых масок.
Мы пройдем полный путь WebSocket-соединения, опираясь на RFC 6455: от генерации ключа на стороне клиента до обмена закрывающими фреймами. Попутно разберем весь необходимый понятийный аппарат: что такое фреймы, какими они бывают, зачем их маскируют и фрагментируют и т.д. Цель не в том, чтобы научиться пользоваться конкретной библиотекой, а в том, чтобы понять, как протокол работает изнутри независимо от языка и реализации. Для иллюстраций по тексту статьи даны сниппеты на Python.

Последние годы Python был вроде универсального инструмента: на нем писали всё — от мелких скриптов до огромных ML-систем, а его первое место в рейтингах воспринималось как норма. Но к началу 2026-го заметно, что динамика меняется. Скорее всего — вслед за приоритетами. Уходит время, когда удобство и низкий порог входа перекрывали любые вопросы к производительности. Компании всё чаще смотрят на отдачу — сколько ресурсов съедает система и как ведет себя под нагрузкой. Давайте посмотрим, что там с местом Python’а в рейтингах, и оценим причины.

В наше время программирование стало очень доступным из-за развития инструментов и языков. Написать «привет, мир» может практически каждый, а количество фреймворков для JavaScript уже воспевается в шутках. Теперь, чтобы выделиться и впечатлить друзей и коллег, нужно спускаться глубже. Придумаем свой язык шуточный программирования!
В этой статье кратко рассмотрим базу компиляторов и мемные эзотерические языки программирования. В конце придумаем свой язык и попробуем его реализовать.
Это упрощенная статья, которая расширит ваш кругозор, а у некоторых вызовет интерес и любопытство погрузиться в тему.

Я столкнулся с простой (как мне изначально показалось – даже очень) задачкой. Мне в последнее время потребовалось часто проводить поиск в 4-х словарях. Государство мне их дало в виде 5 PDF файлов, выложенных онлайн. Это нормативные словари русского языка, слова из которых можно использовать в публичном пространстве.
Например, cash - можно использовать на русском как кэш, а не переводить как тайник или склад, поскольку в Словарь иностранных слов это слово уже включено. И это слово нам еще пригодится далее по тексту)

Реддит и Хабр забиты историями о том, как кто-то «написал приложение за вечер с помощью ChatGPT, вообще не зная программирования». Маркетологи называют это вайбкодингом — ты просто описываешь свои намерения, а ИИ выдает готовый продукт.
Я проверил, и вот мой спойлер: на масштабе чуть большем, чем программа на 500 строк, это не работает.
Август 2025 года. Мне понадобилась утилита со сложной логикой: конвертер выгрузок Telegram (JSON) в чистый текст для LLM. Проект десктопный, с GUI, графиками и парсингом. Вместо того чтобы писать код руками, я провел эксперимент: стать техлидом для связки актуальных на тот момент моделей (Claude 4.0 + Gemini 2.5 + Cursor).
Я заранее дал им архитектуру. Они собрали первый MVP. А затем, чтобы этот «MVP» (нет) не сложился как карточный домик через неделю, мне пришлось четырежды инициировать глобальный рефакторинг, потратить 40 часов на борьбу с галлюцинациями вокруг Matplotlib и разгребать цикличные зависимости.
Эта статья — рефлексия и разбор полётов. Это история о том, почему в 2026 году главный навык инженера — это умение видеть деревья за лесом и вовремя сказать ИИ: «Нет, твоя архитектура никуда не годится, всё переделываем».

Я очень люблю аудиокниги. Но перепробовав десятки офлайн-плееров и сервисов по подписке, понял: везде чего-то не хватает. То нет синхронизации, то слетает прогресс. В какой-то момент я психанул и написал свой плеер прямо в Telegram.
За время закрытого бета-теста бот переварил терабайты аудио. Мы довели UX до ума: сделали удобные заметки по таймкоду, реализовали систему папок, добавили статистику с геймификацией и научили бота делиться книгами в два клика. Сегодня я открываю его для всех. Под катом — история разработки на Python и обзор главных киллер-фич.

📊 Хотите стать аналитиком данных, но не знаете, с какой стороны подойти?
Я собрала чек-лист для старта в 2026 году, никакой воды - только то, что реально спросят на собеседовании:
🛠 Что учить: SQL (с оконными функциями), Python (Pandas), BI-системы.
🧠 Важный софт-скилл, о котором молчат курсы — управление ожиданиями заказчика.
🔮 Бонус: что нужно знать про DWH и ML, чтобы выделяться среди других джунов.
WSGI и ASGI — то, на чем стоит весь современный веб на Python. Это стандарты, которые описывают интерфейс между веб-сервером и приложением. Благодаря им сервер и фреймворк не образуют жесткую пару: любой WSGI-сервер запускает любое WSGI-приложение, любой ASGI-сервер любое ASGI-приложение. Uvicorn не знает ничего о FastAPI, FastAPI не знает ничего о Uvicorn, они знают только о том, что передать на вход и что ожидать на выходе.
Разберем, как все это устроено.
Я реализовал Graph RAG систему, которая комбинирует 5 техник из свежих научных статей (KET-RAG, HippoRAG 2, VectorCypher) в единый пайплайн с декларативным Datalog reasoning-движком, полной провенансной трассировкой и типизированным API. Результат: 174/180 (96.7%) на билингвальном бенчмарке из 30 вопросов, оценённых в 6 режимах retrieval. Три режима достигли 100%. В статье — архитектура, 10 уроков оптимизации и эволюция от 38% до 96.7% за 10 итераций.

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