Обновить
778.69

Python *

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

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

Настраиваем взаимодействие с внутренним API приложения через свой API-proxy

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

Что делать, если хочется повзаимодействовать с приложением-мессенджером, но его издатель такой опции в виде API для нас не предусмотрел?

Конечно же стоит попробовать себя в качестве джуниор-минус реверс-инженера - всего лишь на уровне перехвата HTTP-запросов с их последующим воспроизведением.

Читать далее

LR-парсеры

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

LR-парсеры – это инструмент для анализа и синтаксического разбора языков программирования. LR в данном контексте означает Left-to-right, слева направо и Rightmost derivation, правое разложения. LR парсеры используют метод снизу вверх, который отличается от более известных LL-парсеров, работающих сверху вниз.

Одна из основных фич LR-парсеров - способность обрабатывать большую часть контекстно-свободных грамматик.

Читать далее

Telegram Боты на Aiogram 3.x: Магия фильтров

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

Привет, друзья!

Благодарю вас за позитивный отклик на мои статьи и за подписки — это бесценно. Продолжим.

К этому моменту мы с вами уже научились многому:

- Запустили своего бота на aiogram 3

- Поговорили про магические и встроенные фильтры

- Научились профессионально писать текстовые клавиатуры и узнали все про специальные текстовые кнопки (статья про текстовые клавиатуры)

- Разобрались с инлайн кнопками и CallData (статья про инлайн кнопки)

- Научились создавать инлайн кнопки-ссылки и инлайн кнопки с CallData

- Рассмотрели тему командного меню

- Познакомились с моим видением каркаса бота

- Научились писать хендлеры для текстовых сообщений и обработки CallData

- Даже сделали так, чтобы наш бот имитировал набор текста, и многое другое

Казалось бы, что еще может быть интересного в aiogram 3? Но поверьте, интересного еще на множество статей. Здесь, на Хабре, я планирую научить каждого писать телеграмм-ботов на уровне профессионалов, чтобы вас не пугала никакая задача от заказчика.

Как вы уже поняли из названия статьи, сегодня мы поговорим о фильтрах в aiogram 3. В этой статье мы обсудим:

Читать далее

Как хэширование поможет вам оптимизировать хранение данных?

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

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

Читать далее

Как анализировать тысячи отзывов с ChatGPT? Частые ошибки и пример на реальных данных

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

В этой статье я расскажу про свой опыт решения рабочей задачи — анализ отзывов о компании от пользователей. Мы разберем возможные ошибки и посмотрим на пример кода и реальных данных. Гайд будет полезен всем, у кого нет большого опыта в анализе данных или работе с LLM через API.

Читать далее

Временные ряды и ARIMA: Как предсказывать будущее без хрустального шара

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

Что такое временной ряд, модель ARIMA и как к ней подбирать параметры.

Простым словами, временной ряд — это просто последовательность событий, которая как-то зависит от времени. Мы для начала будем считать, что ряд самый простецкий и нас просто есть скачущие туда-сюда точки, которые распределены по временной шкале.

Читать далее

Telegram Боты на Aiogram 3.x: Инлайн кнопки и CallBack Дата

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

Приветствую все

Приветствую всех! В этой статье мы продолжим исследовать возможности библиотеки Aiogram 3 и рассмотрим тему инлайн кнопок и CallBack данных. На данный момент мы уже:

Определились со структурой бота;

Настроили нашего Telegram-бота на базе Aiogram 3;

Разобрались с командами, включая аргументы, командное меню и фильтры Command и CommandStart;

Освоили работу с текстовыми кнопками (в предыдущей публикации я максимально подробно разобрал эту тему);

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

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

В данной статье мы рассмотрим:

Читать далее

Об извлечении кода в Python

Время на прочтение6 мин
Охват и читатели13K
Я начал изучать Python в 2009 году, столкнувшись с очень нетривиальной и, кстати, необычной задачей на этом языке. Тогда я разрабатывал приложение для ПК, где графический пользовательский интерфейс создавался на PyQT, а основным языком в программе был Python.

Чтобы скрыть код, я встроил интерпретатор Python в самостоятельный исполняемый файл Windows. Это можно сделать при помощи множества инструментов (напр., pyinstaller, pyexe), все они функционально похожи. Они компилируют в байт-код ваши скрипты, написанные на Python, а далее, связывая их с интерпретатором, укладывают в исполняемый файл. Если компилировать скрипты, понижая их до байт-кода, то злоумышленникам становится сложнее добраться до вашего исходного кода и взломать ваше приложение. Байт-код приходится извлекать из исполняемого файла и декомпилировать. Кроме того, таким способом можно выполнять обфускацию кода, и в результате код становится гораздо сложнее понимать.
Читать дальше →

Основы работы с gRPC на Python: создание сервиса с использованием FastAPI. Часть II

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

Изучив основы gRPC в первой части нашей серии, мы теперь погрузимся в практическую реализацию gRPC сервиса на Python с использованием FastAPI и Piccolo ORM, чтобы показать, как это работает на примере тестового приложения.

Читать далее

Лучший друг интроверта: как ИИ помогает в общении с людьми

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

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

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

Я всегда стараюсь найти, какие трудности из моей жизни я могу решить с помощью технологий. Итак, позвольте представить вам Дейта – чат-бота ВКонтакте, который поможет вам на каждом этапе диалога. Вот что он умеет:

Читать далее

Мощь машинного обучения

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

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

Этапы машинного обучения

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

Читать далее

Качество данных и роботы: как мы высвободили 5 рабочих часов в день сотрудника DQ

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

Привет, меня зовут Катя Моисеева, я руководитель направления качества данных в Data Office Tele2. Мы уже рассказывали о том, как с нуля строили процессы качества данных на различных площадках (выступления можно посмотреть по ссылке).

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

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

Читать далее

Динамическое программирование на Python

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

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

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

Читать далее

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

Революционный подход к нейросетям: рассказываем про KAN (Kolmogorov-Arnold Networks)

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

Эволюция архитектуры нейронных сетей уходит корнями в фундаментальные работы, заложенные в 1940-х годах Уорреном Маккаллохом и Уолтером Питcом, которые предложили концепцию искусственных нейронов и их взаимосвязь. 

Однако значительные прорывы произошли только в 1980-х годах с разработкой алгоритмов обратного распространения ошибки: алгоритм Геоффри Хинтона и других – все это позволило создавать более глубокие нейронные сети и улучшить методы обучения. 

В это время появились классические архитектуры, многослойные перцептроны (MLP,  и сверточные нейронные сети (CNN), которые революционизировали различные области, включая компьютерное зрение, обработку естественного языка и распознавание образов – теперь мы говорим про своего рода инновационную архитектуру. 

Читать далее

Telegram Боты на Aiogram 3.x: Текстовая клавиатура и Командное меню

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

Привет! Продолжаем разбор темы разработки Telegram ботов с помощью Aiogram 3. В прошлой статье мы рассмотрели:

Магические фильтры (кратко)

Фильтры Command и CommandStart

Роутеры и диспетчер

Создание токена бота через BotFather

Выполнили первый запуск бота

Работали в рамках структуры, разработанной мной

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

О чём сегодня пойдёт речь:

Читать далее

Реализация итоговой согласованности. Разбор библиотеки event-outbox

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

В этой статье я хотел бы рассказать об архитектурных шаблонах Transactional Outbox и Idempotent Consumer. Кроме того, я хотел бы показать собственную реализацию, содержащую интересное сочетание технологий, выходящее за рамки этих шаблонов, значительно упрощающее реализацию и эксплуатацию.

Читать далее

Пишем универсальный прототип бэкенд-приложения на python

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

Привет, Хабр! Меня зовут Сергей, я техлид в команде PT BlackBox. Мы с коллегами разрабатываем продукт, который позволяет обнаруживать уязвимости в приложениях методом черного ящика. Фактически мы сами и пишем веб-приложения, и именно о них пойдет речь в статье.

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

Для написания прототипа я буду использовать FastAPIFastStream и dishka. Эта статья будет особенно полезна тем, кто пишет на Tornado, Django, Flask или AIOHTTP и хочет перейти на более актуальные технологии для дальнейшего развития своих проектов на современных рельсах.

Ну что ж, приступим

Простые способы ускорения обучения PyTorch-моделей

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

Не знаю — нужно ли вступление к статье, посвящённой ускорению машинного обучения (Machine Learning, ML)?

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

Читать далее

FastAPI: веб-разработка на Python

Время на прочтение14 мин
Охват и читатели31K
image Привет, Хаброжители!

FastAPI — относительно новый, но надежный фреймворк с чистым дизайном, использующий преимущества актуальных возможностей Python. Как следует из названия, FastAPI отличается высоким быстродействием и способен конкурировать в этом с аналогичными фреймворками на таких языках, как Golang. Эта практическая книга расскажет разработчикам, знакомым с Python, как FastAPI позволяет достичь большего за меньшее время и с меньшим количеством кода.

Билл Любанович рассказывает о тонкостях разработки с применением FastAPI и предлагает множество рекомендаций по таким темам, как формы, доступ к базам данных, графика, карты и многое другое, что поможет освоить основы и даже пойти дальше. Кроме того, вы познакомитесь с RESTful API, приемами валидации данных, авторизации и повышения производительности. Благодаря сходству с такими фреймворками, как Flask и Django, вы легко начнете работу с FastAPI.
Читать дальше →

Автоматизация Juniper на Python

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

Добрый день, Habr! Меня зовут Сергей, я старший эксперт в компании Ростелеком. В зоне моей ответственности эксплуатация сетевого оборудования компании (в основном маршрутизаторы и коммутаторы). Когда счет устройств, с которыми необходимо работать, идет на тысячи, обойтись без автоматизации решительно невозможно.

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

Читать далее