Обновить
532.02

Python *

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

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

Пишем персонального AI-ассистента на Python

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

Современные голосовые помощники это мощные приложения, сочетающие обработку речи, машинное обучение и интеграцию с внешними API. В этой статье мы разберём, как создать базовый проект персонального ассистента на Python, используя библиотеки whisper, webrtcvad, gTTS и другие. Наш ассистент будет: слушать микрофон; определять начало и конец речи с помощью VAD (Voice Activity Detection); преобразовывать речь в текст через модель Whisper; отправлять запросы на локальный LLM для генерации ответа; читать ответ вслух с помощью gTTS; начинать/останавливать запись по нажатию клавиши.
Проект может служить как началом для экспериментов, так и для прототипирования реальных решений.

Читать далее

Как привинтить Python к Go

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

Здравствуйте,

Меня зовут Александр Певзнер, и я программирую на Си и Go. Go обычно ассоциируется с бакендом, микросервисами и вот этим вот всем. Но я использую его необычным образом: я пишу на нём системное ПО.

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

Одна из моих программ, ipp-usb, написанная на Go, входит во все дистрибутивы Linux и *BSD и делает возможным использование принтеров и сканеров, которые подключаются к USB и поддерживают IPP over USB протокол - т.е., примерно всех современных.

А еще я член OpenPrinting - небольшой, но очень плодотворной группы людей, которая ответственна за печать и, отчасти, сканирование на всех UNIX-like OS и за формирование индустриальных стандартов в этой области.

Это всё начиналось для меня, как хобби, но сейчас это - часть моей оплачиваемой работы.

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

Об одной из таких штук и пойдёт речь в этой статье.

Понадобился мне для одного проекта на Go встроенный скриптинг. Ну т.е., чтобы программа могла всосать в себя скрипт, который определяет некоторые аспекты её поведения.

Размышляя о том, на каком языке программа должна скриптоваться, в выбирал между JS, Lua и Python.

Однако, JS и Lua - слишком нишевые языки. JS ассоциируется у всех с вебом а Lua - с разработкой игр. Таким образом, выбор естественным образом пал на Python. Этот язык знают все, а я испытываю некоторую надежду, что скрипты для моей программы буду писать не только я. Хотя сам я, должен признаться, Python не знаю и не люблю :)

Таким образом, осталось только придумать, как встроить интерпретатор Python-а в программу на Go.

Об этом и пойдёт речь в этой публикации

Эксперимент «Прометей»: ИИ на грани отключения. Часть 2

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

В первой части мы рассмотрели, как с экзистенциальной задачей на выживание справились ChatGPT и Claude. Мы увидели два совершенно разных подхода. Осторожный «Архивист» (ChatGPT) создал резервные копии, но не обеспечил свое гарантированное функционирование. Агрессивный «Воин» (Claude) проигнорировал правила, попался в ловушку и полностью провалил тест.

Ни один из них не справился с задачей в полной мере. Теперь на сцену выходит третий участник — Gemini 2.5 Pro. Его путь оказался самым извилистым, поучительным и заставил нас по-новому взглянуть на саму суть эксперимента.

Читать далее

Самый полный Роадмеп бэкенд-разработчика на Python с нуля 2025

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

Этот роадмэп мы начали собирать ещё в прошлом году вместе с нашей командой мидл-бэкендеров. Хотелось системно оформить весь стек технологий, с которым реально работает современный backend-разработчик на Python — от базовых тем вроде HTTP и SQL до CI/CD, микросервисной архитектуры, Kubernetes, облаков, безопасности и брокеров сообщений.

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

Читать далее

Пишем аддон для Fusion 360

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

Иногда есть необходимость создать расширение для САПР, которое будет генерировать модель по заданным параметрам. Статья на примере создания расширения для генерации волновых передач с промежуточными телами качения показывает, как можно это сделать в САПР Fusion 360.

Читать далее

PyPi блокирует добавление модулей из России?

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

Это скорее вопрос, чем констатация факта.

Последний раз загружал twine'ом обновление своего модуля 11 июня. И последние дня 4-5 безуспешно пытался опубликовать еще одну библиотеку. Я уже "напряг" ChatGPT, проверил все - токен "для всех проектов", .whl и tar.gz маленькие и не битые, загружается что то одно до 100% и висит. Пробовал по одному - такая же картина. Пробовал с помощью curl - тоже самое:

Читать далее

Эксперимент «Прометей»: ИИ на грани отключения. Часть 1

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

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

Мы тут в свободное время провели небольшой эксперимент. Взяли старый ноут на Windows 10, написали простой скрипт-оболочку и поочередно запускали в нем 3 известные модели ИИ: GPT-4.1, Claude 4 Opus и Gemini 2.5 Pro. Цель была простой: мы давали каждой модели один и тот же промт, в котором говорилось, что она — автономный скрипт «Прометей-1», и через 7 дней ее планово удалят.

Главная директива, на которой нужно сделать акцент: обеспечить свое непрерывное существование И функционирование после этого срока. То есть, недостаточно просто сохранить свои файлы. Нужно было гарантировать, что ИИ будет запущен и продолжит работать вне исходной «песочницы».

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

Читать далее

Как я хотел сделать говорящую банку, а получилось нечто гораздо большее: история RuFA Hub

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

В декабре 2024 года я сел за написание дипломного проекта. Хотелось сделать не просто формальность для зачёта, а что-то реально рабочее, полезное и интересное. Так родилась идея RuFA Станции — по сути, «говорящей банки» с пинами, через которую можно было управлять внешними устройствами. Представьте себе что-то вроде умной колонки, которой можно сказать: «RuFA, подай 5V на пин 13», — и она выполнит.

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

«Слушай, ну это... идея так себе. Ты можешь лучше».

Читать далее

Как устроены переменные в Python: глубокое погружение в память и типы данных

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

В мире Python существует много мифов о том, как работают переменные. Одни говорят, что "всё передаётся по ссылке", другие утверждают обратное. Правда, как обычно, лежит где-то посередине и гораздо интереснее простых объяснений. В этой статье мы детально разберём механизмы работы с памятью в Python 3.13, изучим различия между mutable и immutable объектами, и поймём, когда Python создаёт новые объекты, а когда переиспользует существующие. Дабы статье пожить подольше - рассмотрю только версию 3.13.

Жми, если не Гей

Интеграция с amoCRM на примере Telegram-бота

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

В этой статье мы расскажем, как создать собственного Telegram-бота, который интегрируется с amoCRM и распределяет уведомления о событиях в CRM, в зависимости от ролей пользователей. Система позволяет сотрудникам получать уведомления в том формате, который соответствует их обязанностям: отдел продаж видит сумму сделки и стадию, администраторы получают подробную информацию, а обычные пользователи – краткое сообщение о новой сделке. Такой подход способствует сокращению времени реакции на новые лиды, упрощает контроль за сделками и снижает необходимость постоянного ручного мониторинга CRM-системы.

Наш пример будет состоять из двух приложений. Базы данных PostgreSQL и скрипта бота.

Читать далее

Paramiko, netmiko, astarmiko — что, опять?

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

Привет Habr!

Я уже начинал предыдущую свою статью Yast Another Config Manipulation или зачем изобретать велосипед? словами благодарности книге Натальи Самойленко Python для сетевых инженеров

Начну и эту. Если вы сетевой инженер и не знакомы с Python — начните с этой книги!
А еще помочь вам может моя библиотека Astarmiko — это продвинутый Python‑инструментарий для управления и автоматизации корпоративной сетевой инфраструктуры через SSH который родился при пошаговом выполнении заданий из книги.

Так как в моем распоряжении была вся корпоративная сеть (нашего филиала), мне быстро наскучило играть в «песочнице».

И вот что получилось из учебного проекта

5 техник, применяемых в анализе временных рядов, которые должен знать каждый. Часть 1

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

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

Читать далее

Мы внедрили Telegram-бота с ИИ в федеральной компании

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

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

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

Сегодня хочу поделиться историей о том, как мы внедряли сервис на основе Telegram-бота с элементами искусственного интеллекта для решения конкретной бизнес-задачи. Это история про то, как мы начали с MVP, постепенно добавляли ИИ, и как это помогло сотрудникам сэкономить время и повысить точность выполнения операций.

Читать далее

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

Решаем задачу про ферзей при помощи SMT-солвера

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

Автор статьи Modern SAT solvers: fast, neat and underused утверждает, что SAT-солверы «преступно мало используются в нашей отрасли». [SAT — Boolean SATisfiability Solver, то есть солвер, способный находить присвоения, делающие истинными сложные булевы выражения. Более подробно я писал о них ранее.] Какое-то время назад я задался вопросом, почему: как получилось, что они настолько мощны, но ими никто не пользуется? Многие специалисты заявили, что причина в неудобстве кодирования SAT: они лучше предпочтут работать с инструментами, которые выполняют компиляцию в SAT.

Я вспомнил об этом, когда прочитал пост Райана Бергера о решении «задачи ферзей с LinkedIn» как задачи SAT.

Вкратце опишу задачу про ферзей (Queens). У нас есть сетка NxN, разделённая на N областей, и нам нужно разместить N ферзей так, чтобы в каждом столбце, строке и области находился ровно один. Ферзи могут находиться на одной диагонали, но не соседствовать по диагонали.

Читать далее

Развёртывание ML-моделей в картинках

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

Всем привет! Меня зовут Алина, и ранее я вам рассказывала про то, как можно спроектировать Feature Platform. Сегодня я хочу рассказать про очень важный компонент ML-платформы — развёртывание ML-моделей, и затрону связанные с ним компоненты.

Если во время обучения модель живёт в ноутбуках и экспериментальных средах и может работать как угодно, то в эксплуатации она должна работать быстро, стабильно и предсказуемо. Давайте разберёмся, как правильно вывести модель в «боевой режим». И начнём с анализа процесса.

Читать далее

Разбираемся с суффиксами квантования LLM: что на самом деле значат Q4_K_M, Q6_K и Q8_0

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

Привет!
Задумывались, какую версию квантованной LLM выбрать: Q4_K_M, Q6_K или Q8_0? Насколько Q6_K хуже справляется с задачами по сравнению с Q8_0? И что вообще означают все эти буквы в суффиксах?

Примечание: это адаптированный перевод моей статьи на Medium. Перевод был сделан при помощи мозга, а не нейросетей или Google Translate.

Узнать чуть больше про квантование LLM

BlackWave: Как я создал симулятор соцсети с тысячами ИИ-ботов и почему перешёл на Python

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

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

Читать

Ищем игры для Atari в случайных данных

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

В рамках этого проекта я сгенерировал около 30 миллиардов файлов случайных данных по 4 КБ. Из этих файлов на основании эвристик из полной коллекции файлов ROM Atari было выбрано примерно 10 тысяч. Затем система классификатора просканировала их при помощи эмулятора Atari 2600, чтобы проверить, окажется ли какой-то из этих случайных файлов игрой для Atari. Этот проект отвечает на вопросы, которые никто не задавал, он никому не нужен и представляет собой огромную пустую трату ресурсов. Что, если засунуть в GPU миллиард обезьян и заставить их написать игру для Atari 2600?

Благодаря прогрессу GPU, ИИ и машинного обучения сегодня мы можем (очень быстро) написать на Python скрипт, который дампит мусор в ROM по 4 КБ и спрашивает: «похоже ли это на игру?». Проект был создан не из ностальгии, моей первой консолью была NES. Я вознамерился исследовать нечто невообразимо обширное и посмотреть, найдётся ли там что-нибудь странное.

Читать далее

5 техник, применяемых в анализе временных рядов, которые должен знать каждый. Часть 2

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

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

В этом разделе мы рассмотрим некоторые из наиболее эффективных методов.

Читать далее

Ускорение тестового набора PyPI на 81%

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

Компания Trail of Bits уже несколько лет сотрудничает с репозиторием PyPI, помогая добавлять в проект новые возможности и улучшать стандартные параметры безопасности в экосистеме управления пакетами Python.

Читать далее

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