Обновить
512K+

Python *

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

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

Как подключить к LLM вашу документацию и базу знаний

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

LLM умеет отвечать на вопросы, но не знает особенностей вашего проекта и внутренней документации. В статье разберём, как с помощью RAG подключить собственные данные к модели: от подготовки документов и эмбеддингов до поиска нужного контекста и генерации ответов.

Разобрать подход

Написал детектор ИИ‑текста на 13 правил и прогнал 59 своих статей: сумма баллов не забраковала ни одну

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

Площадки перестали пускать машинный текст самотёком. Habr проверяет публикации автоматически, а Кевин Индиг пишет о том, что платформы строят anti-slop-системы — механизмы подавления массового низкокачественного ИИ-контента. Дальше обычно следует совет писать хорошо, и на этом разговор заканчивается.

Мне нужно было проверяемое условие вместо совета, поэтому я собрал детектор на правилах и прогнал через него 59 собственных статей. Главный результат оказался не в том, сколько текстов он забраковал, а в том, что при агрегатном подсчёте он не забраковал ни одного, хотя дефекты были в сорока.

Читать далее

Что нового в Location King

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

Главное: теперь можно играть, ничего не заводя.

Заходите на locationking.ru и жмите «Сыграть пять раундов без регистрации». Пять известных мест — Москва, Париж, Манхэттен, пирамиды Гизы, Лондон, — и минуты три времени. Аккаунт нужен только чтобы результаты сохранялись.

Об игре читайте в первой статье.

Читать далее

Я не откликаюсь на вакансии. Я пишу людям — и написал программу, которая их находит

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

24 коллектора, 111 ATS-досок компаний, 345 тестов, ноль API-ключей и ноль ИИ. Windows-exe, который считает совпадение резюме с вакансией и приносит 1–3 живых человека, которым можно написать самому. Внутри — архитектура, три бага, из-за которых я чуть не отправил письма сотрудникам чужих компаний, и раздел «честные ограничения», без которого это была бы реклама.

Читать далее

Я управлял AutoCAD из Claude Code через Python — пока не понял, что AutoCAD вообще не нужен

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

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

Задача звучит просто. Есть данные — параметры подстанции, состав оборудования, нагрузки. Нужен чертёж: не картинка, а лист формата А3, который инженер откроет в AutoCAD и поправит.

Очевидный путь — взять AutoCAD и рисовать в нём программно. Я так и сделал: подключился к нему из Python по COM и начал водить его снаружи. Работает. Но когда дошло до генерации по данным, выяснилось, что CAD в этой задаче чаще мешает, чем помогает.

Разберу оба пути на живом коде: где COM незаменим, где он тихо врёт, и почему в итоге чертежи у меня генерирует код, не открывающий никакого CAD вообще.

Вот что на выходе — лист, собранный кодом из строки текста с параметрами:

Читать далее

JupyterLab на GPU-сервере: полное руководство по настройке для команды в 2026 году

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

Пошаговое руководство по развертыванию JupyterLab на GPU-сервере. Рассказываем про настройку JupyterHub, драйверов NVIDIA, безопасности (Nginx/SSL), лимитов ресурсов и мониторинга.

Читать далее

Как проверять ответы API Яндекс Директа и не соврать заказчику

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

Отчёт Директа показал пять конверсий, потом ноль, потом три. Все три запроса вернули 200 OK. Разбор трёх мест, где успешный ответ API не означает, что вы получили нужные данные, что операция выполнилась и что настройка совпала с замыслом.

Читать далее

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

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

Ответ нейросети с включённым поиском обычно приходит со списком источников, и этот список выглядит как готовый ответ на вопрос «где про эту тему пишут». Я собрал такой список по семи запросам одной темы из логов собственного прогона — получилось 359 уникальных адресов. Раскрыть удалось 199. За остальными 160 стоит редирект, за которым реальный сайт не виден ни из кода, ни глазами.

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

Читать далее

Лучший бесплатный и платный хостинг для Телеграм‑бота на Python в 2026

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

В статье мы сравним основных PaaS и VPS-провайдеров, рассмотрим критерии выбора и опишем деплой бота на хостинг. Также расскажем, как сделать так, чтобы Телеграм-бот работал несмотря на региональные блокировки.

Читать далее

Мой первый RAG без LangChain

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

В наши дни все, кому было интересно, уже попробовали RAG, я в том числе. И стандартная схема тривиальна: цепляем LangChain, три импорта, .from_documents() — и бот с базой знаний готов. Мой первый опыт был такой же, и это даже заработало за один вечер.

Но как это поддерживать? А что случится, если всё полетит?

Пять слоёв абстракции, и я без понятия, что происходит на любом из них. Поэтому я решил повторить свой эксперимент с контейнерами: отбросил все слои и переписал вручную на Python.

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

Читать далее

Одна сессия Claude Code на нескольких машинах: что ломается, если просто синхронизировать папку

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

Разговор с Claude Code остаётся на той машине, где начат. Разбираю, почему облачная папка эту задачу не решает, и шесть граблей, на которые я наступил, пока делал перенос сессий, памяти и инструментов между Linux, Windows и macOS.

Читать далее

Переводим книги нейронками для себя: год спустя. Словари, скорости и почему переводчики всё ещё нужны

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

Год назад я написал статью «Переводим fb2 книжки, с нейронками, для себя» — про то, как собрал на паре Tesla P40 в гараже программу Sunny Narrator («Солнечный сказочник»), которая переводит художественные книги через локальные и облачные LLM. Тогда это был скорее прототип «доказать себе, что так можно»: черновики читались с головной болью, книга в тысячу страниц переводилась два дня, а электричество, отключённое посреди процесса, стоило ещё двух.

За год программа доехала до версии 2.1, я перевёл достаточно книг, чтобы набить руку, и понял главное: это уже инструмент не только для меня, но и для переводчиков — и для всех любопытных. Рассказываю, что изменилось, сколько это стоит в токенах и почему без человека ничего не работает.

Читать далее

Кроссплатформенный мониторинг аппаратных ресурсов на C++ и Python: библиотека hardware_monitor_cpp

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

После того как мой пет-проект случайно «выстрелил» на Reddit, я решил, что пора поделиться так же и своей кроссплатформенной библиотекой на C++20 для мониторинга железа, с нативной поддержкой Python.

Рассказываю историю создания hardware_monitor_cpp: как избавиться от лишних зависимостей, получить адекватную статистику swap-файла под Windows и macOS, упаковать все в удобное C++ API, а заодно получить готовую консольную утилиту с визуализацией графиков прямо в терминале.

Читать далее

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

Код прошёл ревью, потому что читался правильно. Выполняется он иначе

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

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

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

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

Читать далее

Задача в проекте оказалась обработана за 11 секунд до создания…

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

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

Поэтому я сел за доработку согласно предыдущему плану, что я писал в той статье. Я решил идти по первому пути и сделать логирование асинхронным. Дело в том, что так это становится изолированной переменной, ведь банально легче доработать и тестировать, чем заниматься рефакторингом всего кода и разносить его по разным процессам. После доработки я конечно же решил протестировать новую версию и я очень удивился результатам. Изначально throughput действительно вырос, что обрадовало меня.

Я уже думал писать статью, но решил мимолетом запустить 175 воркеров. Это решение создало неожиданную проблему - задача оказалась обработана за 11 секунд до ее создания.

Читать далее

«Завтра в 18:00» — это когда? Разбираем даты и часовые пояса в Python

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

Фраза «завтра в 18:00» кажется простой, пока сервер и пользователь не оказываются по разные стороны полуночи. В Doday я сделал быстрое добавление задач из одной строки и обнаружил, что программа считает «сегодня» по UTC. Из-за этого дата сдвигалась, а указанное время могло остаться в названии.

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

Читать разбор

Где счетный бейзлайн бьет трансформер: честное сравнение на русских отзывах

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

Когда нужно классифицировать текст, дефолтный ход в 2026 – взять предобученный трансформер и дообучить. TF-IDF воспринимается как музейный экспонат: работал в эпоху до BERT, сейчас не всерьез. Обычно этот выбор никто не проверяет на своих данных, потому что и так понятно, кто победит.

Мы решили проверить. Взяли одну задачу, один корпус, одну метрику и прогнали три подхода подряд: счетный бейзлайн на TF-IDF, сверточную сеть TextCNN и дообученный русский энкодер. Считали не только качество, но и стоимость – время обучения и скорость предсказания на обычном процессоре.

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

Дальше – как так вышло и что из этого забрать себе.

Читать далее

Микромагия: Flask+psutil = self‑service

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

Всем привет, меня зовут Евгений Тихонов я работаю в Банке Уралсиб, в дирекции по сопровождению комплаенс-систем, факторинга и электронных продаж. Я хочу рассказать вам о простом кейсе, который облегчил жизнь отдела разработки рекламных crm-кампаний.

Читать далее

Ноль устройств в базе: четыре бага, которые видно только в упакованном билде Electron и невнимательность

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

Привет, Хабр! Пилю потихоньку пет‑проект и решил поделиться тем, что вылезло при первом же деплое.

Откуда взялась эта штука 

Основная занятость у меня связана с ИИ, но есть ещё подработки по 1С — в основном администрирование: обновления, настройка оборудования, выгрузки и прочее. Всё взаимодействие идёт в Telegram: множество чатов, в каждом свои задачи, у каждой свой дедлайн и своё техническое окно, когда её вообще можно делать. Базу не обновишь в разгар рабочего дня — значит, задача не просто «к пятнице», а «в пятницу после семи».

Пока задач несколько, они держатся в голове. Дальше начинается путаница: помнишь, что на этой неделе у кого‑то обновление, а у кого именно — уже нет. Я начал забывать про клиентов. Писал на бумажке. Бумажка не работает по простой причине: про неё тоже надо вспомнить. Она лежит рядом и молчит. А напоминание должно приходить само и туда, где я и так сижу целый день. Так и родилась мысль сделать свой блэкджек.

Читать далее

Отступы или скобочки? — Да

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

Спор «скобочки или отступы» старше, чем некоторые из его участников. У этого спора нет судьи и нет призового фонда, но есть ветераны и есть потерянные души, которые однажды написали end в Питоне и с тех пор не могут остановиться. Выиграть этот спор невозможно: стороны спорят о вкусах, а не о свойствах. Поэтому предлагаю - давайте закончим этот спор не победой, а разоружением.

Я написал маленькую утилиту, которая переводит исходный код Python между тремя синтаксисами: классические отступы, C-подобные фигурные скобки, S-выражения в духе Лиспа. Один и тот же quicksort, три вида:

Читать далее