Обновить
815.1

Python *

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

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

Простой бот-модератор на Aiogram 3.x

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

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

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

Читать далее

Делаем карманного аналитика данных с помощью OpenAI Assistants API и Code Interpreter в Telegram

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

Языковая модель генерирует текст, но она не может проводить сколько‑нибудь сложные математические вычисления или анализ данных, она просто не предназначена для этого. Однако, модель может генерировать код и очень хорошо. Что, если давать модели задание, для выполнения которого она сгенерирует программный код, он исполнится в изолированной среде разработки, и полученный результат модель уже использует для генерации ответа? Именно эту задачу и выполняет Code Interpreter.

Читать далее

Обзор и гайд по Tortoise ORM: собрал в одну статью все, что надо знать об инструменте и своем опыте работы с ним

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

Привет, Хабр! Меня зовут Даниил Лихачев, я Python backend developer в диджитал-продакшене Далее. Сегодня я хотел бы представить вашему вниманию асинхронную библиотеку для работы с базами данных под названием Tortoise ORM. Это обзорная статья, чтобы показать, что из себя представляет данная библиотека и для каких проектов она подойдет. Также на основе своего опыта постараюсь осветить аспекты, в которых Tortoise ORM хороша и удобна, а также те, в которых ее возможностей может не хватать и как это обойти. Также бонусом предоставлю свой шаблон в стеке FastAPI + Tortoise ORM.

Читать далее

Эволюция форматирования строк в Python

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

Часто при написании кода на Python нам требуется представить объект определенным образом или включить значения каких-либо выражений внутрь строки. Для этого мы можем использовать форматирование строк. При этом в Python существуют сразу три способа форматирования строк:

оператор %  

строковый метод format()  

f-строки

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

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

Читать далее

Алгоритм Тарьяна для поиска минимального набора уравнений

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

Дана система, состоящая из большого количества уравнений (необязательно линейных), где вам необходимо найти всего лишь несколько переменных. Как это сделать эффективно? Какой минимальный набор уравнений вам потребуется? В этой статье мы обсудим графовое представление систем уравнений, применим алгоритм Тарьяна и формализуем процесс на Python.

Читать далее

Как работает генерация видео в open source проекте Wunjo CE

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

Генерация видео теперь open source? Наконец-то я нашёл время, чтобы добавить генерацию видео из текста и изображений в свой open source проект Wunjo CE. В этой статье мы рассмотрим, как это работает, сравним его с похожими решениями, изучим основы подхода и его альтернативы.

Смотрим

PINN или нейросети, знающие физику

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

Что такое PINN и какова область их применения?

PINN появились сравнительно недавно (в 2019 году была опубликована работа Raissi), но уже активно применяются для некоторых задач физики. Отличительная особенность данных нейросетей состоит в том, что в Loss‑функцию включены невязки от уравнений, которые описывают рассматриваемый физический процесс. Вход такой нейросети — это координаты (пространственные или временные, в зависимости от задачи). И еще одна особенность — для обучения не требуется таргетов, так как, повторюсь, в Loss минимизируется отклонение предсказанных значений от уравнений.

Можно сказать, что PINN — это замена численному моделированию и тогда, возникает вопрос: «А нужны ли нейросети там, где хорошо работают численные методы». Но не все так просто. Представьте, что Вы или Ваш коллега провел эксперимент, например, измерил скорости частиц в потоке жидкости, или получил точечные измерения температуры. Если Вы действительно имеете опыт проведения эксперимента, наверняка знаете, что экспериментальные данные далеко не идеальны и могут принести много головной боли при обработке. А теперь представим, что все же Вы эту обработку провели, получили датасет из эксперимента, и теперь хотите эти данные использовать в уравнениях, чтобы получить другие параметры течения. Например, измерили скорость, а из уравнений гидродинамики, хотите получить давление. Или другими словами, провести ассимиляцию данных, говоря на современном околонаучным языком. Численное моделирование в таком случае можно дать сбой, потому что даже тщательно отфильтрованные данные могут быть шумными (особенно если от них требуется брать производные, а если еще и вторые, то совсем, шляпа). Или их может быть мало (например, температуру измеряли термопарой в нескольких точках). В данном случае, вроде, эксперимент есть и потенциально восстанавливать одни величины по другим можно, решая уравнения. И тут на помощь могут прийти PINN. Потому что они работают иначе, чем численные методы. Они не используют схем переноса, а параметры нейросети минимизируются в выбранных точках.

Читать далее

Как компилировать json или история оптимизации python сервиса

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

В прошлой статье мы начали историю создания одного из компонентов платформы экспериментов в компании Okko — сервис сплитования трафика.

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

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

Читать далее

Пик pickle

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

Все началось с невинного, но такого необходимого действия — ликвидации технического долга. Мы с командой собрались реорганизовать структуру репозитория наших загрузок данных, которые мы пишем на Apache Airflow. За два с лишним года, его текущая структура потеряла актуальность и попросила себе новое платьице к лету...

клик2пик

Его величество Граф

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

Графы для меня особенная тема, в них есть нечто таинственное и мощное.

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

Я не буду рассказывать основы графов, они есть в Википедии.

Цель статьи — поделиться с вами некоторыми случаями из моей практики, когда графы становились естественной частью какой‑то задачи. Иногда без них задачу решить было невозможно. Иногда через них решение получалось более изящное. А иногда просто тяга к перфекционизму, графы это круто же).

Ну что, поехали, будет интересно!

Читать далее

pytest-unordered: сравнение коллекций без учёта порядка

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

Во время работы над проектом на Django Rest Framework (DRF) я столкнулся с необходимостью писать тесты для API, которые возвращали неотсортированные данные. Сортировка данных в API не требовалась, и делать её только ради тестов казалось нелогичным. Использовать для решения этой задачи множества оказалось невозможным, так как элементы множества должны быть хэшируемыми, коими словари не являются. Я искал встроенный способ сравнивать неотсортированные данные в pytest, но таких средств не нашёл. Зато наткнулся на обсуждение в сообществе pytest, где пользователи просили реализовать такую возможность, а разработчики pytest предлагали сделать это кому-то другому в виде плагина. Так родилась идея создания pytest-unordered.

Читать далее

Синтез эмоций. Модель вдох-выдох

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

Решил попробовать написать несколько статей о синтезе речи с поддержкой эмоций.

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

Но в процессе реализации, я использовал разные модели. Начиная от Fastpitch и Tocatron2 до Bark от Suno. Когда я тестировал свой первый MVP, то при длительном прослушивании синтетического голоса у меня начинала болеть голоса и возникало раздражение. Это особенно сильно возникало, когда озвучка голоса не соответствовала контексту. Возникал аналог эффекта «зловещей долины», но только для звука.

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

Первым моим шагом, была разработка модели «вдоха‑выдоха». Идея заключалась в том, что 99,999% человек говорит исключительно на выдохе (это касается и животных).

Читать далее

Первый pet-проект, но не бесполезный?

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

Чуть более года назад, уже написав небольшое количество простых программ на Python, я начал размышлять об идее создания своего первого более‑менее полноценного проекта. Писать что‑то, что уже было 100 500 раз написано до меня, желания совсем не было, хотелось хоть немного оригинальности, и полезности. Но найти оригинальную идею под свой невысокий уровень знаний оказалось не так‑то просто.

Однако как‑то на всем известном видеохостинге я наткнулся на трансляцию мужика с проекта Moscow Python (прошу прощения, имя я не запомнил, и сейчас уже просто не найду) который вещал что‑то о начале пути питониста, а заодно рассказал о программе для изучения английского языка Anki. А далее, прямо на трансляции, он сам решил написать аналогичную программу, но совсем в примитивном виде. И тут, очевидно вдохновившись, меня посетила идея, что вполне полезной могла бы оказаться программа для изучения технического английского языка. Ну зачем мне сразу весь язык, если в конкретный период времени он мне необходим только для уверенного чтения и понимания документации. И я написал...

Читать далее

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

Бот мониторинга результатов ЕГЭ с регионального ресурса. Пет-проект за 24 часа

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

Всем добрый день!

В этом году я являюсь выпускником 11 класса и, соответственно, человеком, который сдает ЕГЭ. Результаты экзаменов обычно приходят не раньше, чем через неделю. При этом их можно отслеживать как минимум на 3 ресурсах: Госуслуги, Checkege (единый портал) и на сайтах региональных центров обработки информации — РЦОИ. Тенденция последних лет показывает, что раньше всего результаты появляются на региональных ресурсах. Поэтому, находясь в томительном ожидании, я решил проанализировать сайт РЦОИ Пермского края.

Читать далее

Как я хотел выиграть пиццы у Додо (бот на python)

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

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

Пытаюсь переиграть всех, написав Бот, который сам набирает очки.

Читать

Создание собственного API на Python (FastAPI): Router и асинхронные запросы в PostgreSQL (SQLAlchemy)

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

Друзья, приветствую! Если вы читали мои прошлые статьи из серии «Создание собственного API на Python (FastAPI) и повторяли за мной, то сейчас вы готовы к полноценной интеграции PostgreSQL в ваше API.

Сегодня мы научимся ещё более качественно структурировать своим проекты, разберемся что такое Router и внедрим в свой код все базовые методы по асинхронной работе с базой данных PostgreSQL через FastApi.

Читать далее

История соседа ч.3

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

Наткнулся на интересную статью, где описываются некоторые возможности, которые можно реализовать на Ростелеком домофоне:

https://habr.com/ru/articles/791602/

Как вы, возможно, помните из моих прошлых статей, у нас есть чат «попутчики» где люди ищут себе попутчиков для передвижения в Москву из области и обратно. И вот что я заметил. Очень часто в часы пик, люди фоткают очереди, чтоб уже на подъезде к остановке понять, а нужно ли двигать сейчас домой, может переждать или может даже выбрать самокат вместо маршрутки или такси. По счастливому стечению обстоятельств один из подъездов, оборудованный Ростелеком домофоном захватывает камерой прямо остановку и место за ней, где обычно и скапливается очередь. А значит можно, опираясь на вышеуказанную статью, добавить в чат кнопку «посмотреть очередь», чем я собственно и занялся.

И так для доступа конкретно к стриму камеры необходимо получить stream_token. Чтоб это сделать нам необходим BEARER_TOCKEN, его мы храним статично. Как говорил автор статьи выше — BEARER_TOCKEN живет до 1 года, что вполне устраивает нас. Раз в год можно заходить с акаунта любого пользователя, брать оттуда токен и снова год не знать бед. Собственно метод:

Читать далее

5 способов преобразования PDF в Word в Python: Сравнительное руководство

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

Преобразование PDF-документов в редактируемые файлы Microsoft Word позволяет вносить изменения, добавлять аннотации и более эффективно работать с PDF-контентом.

В этом блоге я собрал 5 решений для конвертации PDF в Word на Python с использованием бесплатных библиотек с открытым исходным кодом или коммерческих библиотек, а также выделил плюсы и минусы каждого решения.

Читать далее

Фармим очки в Microsoft Rewards с помощью Python

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

Не так давно в личку на Хабре мне написал "junior python backand" с предложением поработать над автоматизацией процесса накопления призовых баллов в программе Microsoft Rewards.

Читать далее

Job Market в США моими глазами

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

Привет сообществу, в свободный час, решил поделиться с вами историей поиска работы в США в 2023-2024 году. На текущий момент живу в Беркли в Калифорнии. Нахожусь тут с лета 2021-го. И это, можно сказать, мой второй поиск работы.

Сейчас работаю в Realm, занимаюсь там созданием фичей вокруг генеративного ИИ и выведением их в прод. Два года довольно интенсивной работы, в настоящем кремнево-долинном стартапе. До этого работал в Сколтехе, в группе компьютерного зрения Е. Бурнаева, с ним и с другими невероятно талантливыми людьми.

Читать далее