Обновить
525.85

Python *

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

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

Статус: в неточном поиске (fuzzy match)

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

Задача нахождения неточных дубликатов текстовых строк - удивительно часто встречается на практике.

Нахождение неточных дубликатов позволяет лучше понять структуру списка, повысить его качество (удаление дубликатов), провести техническую кластеризацию (выделить группы похожих). Всё это видно на графе выше.

Но приключения начинаются, когда список становится размером несколько миллионов строк. В статье разберем что с этим можно сделать.

Читать далее

Часть 3: Diffusion Transformer (DiT) — Stable Diffusion 3 как она есть

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

В этой статье погрузимся в мир генерации изображений с Diffusion Transformer (DiT) — сердцем Stable Diffusion 3. Разберем как она устроена и как работает

Читать далее

Автоматизация Telegram-канала с помощью ChatGPT и Aiogram — просто о сложном

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

Привет, Хабр! Это мой первый пост и решил я его посвятить тому: Как можно автоматизировать ведение своего ТГ канала с помощью ИИ. На мой взгляд тема довольно свежая и интересная, а что самое главное полезная. Статья по большей мере ориентирована на новичков у которых имеются базовые знания python, но это не означает что другим она не будет интересна. Итак, начнем!

Читать далее

Обновление MikroTik по SSH: Python-скрипт с автоматическим RouterBOARD upgrade

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

Обновление MikroTik — та ещё боль. То не влезешь по SSH, то забыл сделать routerboard upgrade, то устройство «уходит в себя» и не возвращается. Особенно, когда устройств не одно, а десятки. Вручную это превращается в спорт на выносливость и крепкие нервы.

Я решил, что хватит. Написал скрипт на Python, который делает всю грязную работу за меня: подключается, проверяет обновления, ставит новые пакеты, делает routerboard upgrade и даже ждёт, пока устройство снова появится в сети. Главное — всё логируется и работает аккуратно, как системный администратор в хорошем настроении.

В этой статье:

Читать далее

Зоопарк версий питона в ИИ, какую версию лучше выбрать в 2025 для большинства задач?

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

Разработка в области искусственного интеллекта развивается стремительно. Каждый месяц появляются новые модели и фреймворки, и часто возникает вопрос: какую версию Python использовать для локальной разработки и экспериментов, чтобы обеспечить максимальную совместимость и избежать «ада зависимостей»? Но, можете не тратить время на чтение. СРАЗУ ВЫВОД: Рекомендуемая версия: Python 3.10.x.

Неправильный выбор версии Python может привести к часам отладки, проблемам с компиляцией пакетов и несовместимости с ключевыми библиотеками, такими как PyTorch или TensorFlow. В этой статье мы проведем глубокий анализ совместимости более 30 популярных AI-моделей и 30+ библиотек, чтобы дать однозначный и обоснованный ответ.

Читать далее

Классификация документов: гайд для обхода граблей

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

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

Читать далее

KEKS кодек и криптографические сообщения

Уровень сложностиСредний
Время на прочтение30 мин
Охват и читатели682
Данная статья напоминает о проблемах X.509 PKI и реализаций ASN.1. Предлагает компактный, быстрый, детерминированный, потоковый и простой формат кодирования данных KEKS, а также криптографические сообщения для подписи и шифрования данных с поддержкой пост-квантовых алгоритмов.

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

Как мы научили ИИ читать PDF и экономить сотни рабочих часов: полный кейс создания корпоративного ChatGPT

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

От бизнес‑проблемы до технической реализации — опыт создания ИИ‑ассистента для Росатома за 48 часов

Представьте: новый сотрудник крупной корпорации ищет ответ на рабочий вопрос. Он открывает внутренний портал, видит сотни PDF-инструкций, тысячи записей в базе знаний службы поддержки. Час поиска, звонки коллегам, еще час изучения документов. В итоге — либо неточный ответ, либо решение отложить задачу.

Как ИИ может помочь сотруднику?

NoDPI4Android. Решаем проблему «деградации» YouTube теперь и на Android

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

Салют, Хабр! На связи снова я, Aragorn, со своим проектом по терроризированию Роскомпозора. В прошлый раз я рассказывал о NoDPI - утилите для "раздеградирования" YouTube и установил личный рекорд - 400 звезд на GitHub и блокировка статьи РКН через три дня после публикации.

Многие мои знакомые и люди в комментариях просили сделать версию под Android и Android TV. Я не очень дружу с Джавой и с Джавой под андроид в особенности, и поэтому такая перспектива меня не очень прельщала, но у меня был опыт написания android-приложений на python и kivy, который я и решил применить. После нескольких дней (и ночей) напряженного труда и танцев с бубном, мне наконец удалось создать NoDPI for Android, который практически не имеет аналогов. Именно о нем я и хочу сегодня рассказать. Надеюсь, статья будет вам полезна и интересна. Поехали!

Читать далее

Как я проектирую и разрабатываю реальные расширения для Python на Rust

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

Вы, вероятно, уже видели немало статей с заголовками вроде «Python, Rust — производительность, бла-бла-бла…». Печально, но почти все эти статьи демонстрируют лишь самые простые примеры уровня «hello world». В отличие от них, в этой статье я хочу поделиться тем, как я проектирую крупные расширения для реальных проектов и почему принимаю при этом те или иные решения.
Читать дальше →

Как в Django реализовать заполнение профиля пользователя через Google

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

Эта статья продолжает пост, в котором был рассмотрен один из алгоритмов аутентификации пользователя через платформу Google. Сейчас мы дополним ее механизмом заполнения профиля пользователя данными из Google-аккаунта. Хотелось бы подчеркнуть, что в обеих статьях рассматривается только один из алгоритмов. Он, на мой взгляд, наиболее понятен для начинающих разработчиков, хотя существуют и другие способы. О них можно узнать из документации Django.

Проведя аутентификацию через Google, мы получили только стандартные данные - идентификатор и имя пользователя. Но можно получить и другие, в частности, email, возраст, информацию о себе и т.д.

Реализуем в проекте собственный сервис (pipeline) и добавим в пакет приложения authapp соответствующий модуль (pipeline.py):

Читать далее

Электронный курвиметр

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

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

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

Читать далее

weakref.finalize: «почти IDisposable» для Python-объектов

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

Привет, Хабр!

Я не знаю, как у вас, а у меня перед глазами все еще маячат толстенные исходники WinForms-эра на C#, где любой порядочный объект, умеющий держать ручку к файлу или сокету, строго реализует IDisposable. Закрыл — молодец, забыл — получи warning от IDE и пару нехороших утечек в production.

В Python, увы-ях, аналогичный контракт традиционно строили на del и контекст-менеджерах. Первый: если объект в циклическом мусоре, финализатор может не вызваться вообще; к тому же при выключении интерпретатора порядок разрушения объектов хаотичен. Второй (with ... as) шикарен, но требует явного вызова, а значит — дисциплины.

С выходом PEP 442 и появлением weakref.finalize мы получили «почти IDisposable» — финализатор, которому не страшны циклы, и который честно отработает даже на shutdown, если правильно обращаться.

Читать далее

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

Python asyncio, блокировка цикла событий

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

Блокировка event loop довольно серьезная проблема в асинхронных приложениях, потому что приводит к замедлению не конкретного запроса пользователя, а сразу всех запросов пользователей. Так давайте разберемся, что же это значит и, насколько это страшно и для разработчика и для клиентов сервиса.

Читать далее

Jaeger v2

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

Появилась у меня задача по мониторингу и оценке производительности проекта на микросервисной архитектуре. Для решения был выбран Jaeger. Он давно на рынке, активно развивается (не так давно вышла версия 2, в которой упростилось развертывание и появилась интеграция OpenTelemetry). На мой взгляд, Jaeger – отличное решение для трейсинга, но документация ощущается как не до конца собранный пазл: важные вещи разбросаны, а для понимания приходится обращаться к исходному коду или искать примеры в GitHub-репозиториях.

Цель данной статьи показать на практике, как внедрить Jaeger в продукт на микросервисах.

Ссылку на код всего, о чем пойдет речь дальше, можно найти в конце статьи.

Читать далее

SOAP, WSDL и немножко Python создаём веб-сервис шаг за шагом

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

Практика — лучший способ глубокого понимания теории. Рассмотрим на примере, как работают веб-сервисы с протоколом SOAP, для чего нужен WSDL и как он связан с XML-документом в теле POST-запроса.

Читать далее

Structured Output как полноценная замена Function Calling

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

В этой статье мы рассмотрим альтернативный подход вызова инструментов LLM, который использует Structured Output вместо традиционного Function Calling для обеспечения надежности и предсказуемости.

Читать далее

Небольшая библиотека утилит на Rust для Python (FastPy-RS, Alpha)

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

Всем привет! Я пришёл из экосистемы Rust и недавно начал работать в Python. Я люблю Rust за безопасность и скорость, но влюбился в Python за простоту и быструю разработку. Это вдохновило меня создать что-то полезное для сообщества Python: FastPy-RS — библиотеку часто используемых функций, которую можно вызывать из Python, а реализация внутри написана на Rust. Цель — обеспечить высокую производительность и надёжность. Хотя многие Python-библиотеки используют C для ускорения, такой подход может нести риски безопасности.

Читать далее

Часть 2: Vision Transformer (ViT) — Когда трансформеры научились видеть

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

Представьте, что лингвист внезапно стал экспертом по живописи. Именно это произошло в 2020 году, когда архитектура для обработки текста — трансформеры — научилась "видеть" изображения. Vision Transformer (ViT) доказал: для понимания картинок не обязательны свёртки! Разберем "на пальцах" как она устроена и как изображения превращаются в предсказания.

Читать далее

Собственный контент-фильтр на базе LLM: от эксперимента до стабильной системы

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

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

Читать далее

Вклад авторов