Легкий путь в Python
5.12K subscribers
97 photos
18 videos
3 files
155 links
Я — Алексей Яковенко, опытный разработчик Python. Здесь вы найдете статьи, заметки, посты и видео для прокачки навыков программирования 🐍 Интересное найдет и новичок, и профи 💡

📬По вопросам: https://t.me/yakvenalexx
🗣Сообщество: https://vk.cc/cxKNTb
Download Telegram
​​Как создать бота на aiogram 3.x с использованием вебхуков (webhook) и FastApi

В этой статье мы рассмотрим, как легко создать телеграм-бота на aiogram 3.x, используя вебхуки вместо метода long polling. За основу мы возьмем FastApi. Если вы хотите улучшить производительность своего бота, это руководство будет вам полезно!

#ТелеграммБоты #FastApi #Хабр
👍7
​​Наверное, настоло время выйти из сумрока) Последние пару лет активно занимаюсь коммерческой разработкой на Python. Чаще всего пишу телеграмм ботов, парсеры и обработчики больших данных.

Зачастую приходится перерабатывать сотни тысяч строк записей за короткие промежутки времени.

Для себя выбрал из SQL баз данных PostgreSQL. Использую везде где может потребоваться база данных. А что, удобно. При помощи того же Docker можно развернуть ее за пару минут, а после универсально пользоваться под любой проект.

Для того чтоб было проще асинхронно ходить по PostgreSQL - написал свою библиотеку. Базируется она на SQLAlchemy (в народе алхимия), но в своем синтаксисе использует только стандартный питоновский синтаксис (ну, может, за исключением импорта типа данных у колонок).

Библиотека доступна прямо сейчас для установки через pip / pip3, а с полным ее описанием (инструкцией для пользования) вы сможете ознакомиться тут 👇
5👍3🔥2
​​Простой способ взаимодействия с Google Таблицами через Python (Gspread)

В этой статье я рассмотрел самый простой и доступный метод взаимодействия с Google Таблицами (Google Sheets) с использованием Python. Прочитав, вы узнаете, как создать сервисный аккаунт в Google, который будет выполнять все операции, а также познакомитесь с базовыми операциями работы с Google Таблицами: чтением, записью, удалением и обновлением данных. Давайте погрузимся в увлекательный мир автоматизации и упростим работу с вашими данными с помощью Python и Gspread!
2👍1👏1
Развертывание локальной версии нейросети LLaMA с использованием Docker

Привет! В этом руководстве я покажу, как в несколько команд развернуть локальную версию нейросети LLaMA на вашем компьютере или сервере (работает на Windows, macOS и любых дистрибутивах Linux).

Шаг 1: Установка Docker

Для начала, установите Docker. Новичкам рекомендуется установить Docker Desktop.

Шаг 2: Запуск Docker контейнера

Откройте консоль и выполните следующую команду:

docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

Эта команда развернет локальный образ llama, который будет работать исключительно на вашем процессоре. Также существует вариант использования Nvidia GPU, с инструкциями можно ознакомиться здесь.

Шаг 3: Запуск языковой модели

Для запуска самой модели выполните команду:

docker exec -it ollama ollama run llama3:8b

Эта команда загрузит и запустит языковую модель llama3:8b (4.7GB). Также доступна более крупная версия llama3, 70b (40GB). Вы можете запускать и другие модели, список которых доступен здесь.

Чтобы запустить другую модель, используйте команду:

docker exec -it ollama ollama run model_name:tag


Интеграция в проекты

Использование языковой модели в таком формате может показаться неудобным. Более интересно интегрировать ее в свои проекты, например, в Telegram-бота с использованием Python.

Если вам интересно, как это сделать, подписывайтесь на меня. В следующем посте я покажу, как использовать локальную нейросеть (llama3) в Python проектах, включая создание Telegram-бота.
👍5🔥21
Самый быстрый и простой способ развернуть Docker-контейнер со своим Python проектом

Привет! Для того чтобы воспользоваться данным способом, у вас должны быть:

1. VPS сервер
2. Написанный Python проект
3. Установленный на сервере Docker
4. Аккаунт на GitHub

Небольшие настройки

Для начала в корне проекта необходимо создать Dockerfile. Вот мой пример:

FROM python

WORKDIR /usr/src/app

# Копируем и устанавливаем зависимости Python
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

# Копируем все файлы из текущей директории в рабочую директорию контейнера
COPY . .

# Команда запуска контейнера
CMD ["python", "aiogram_run.py"]


Шаги для развертывания

1. Помещаем все данные проекта в свой репозиторий на GitHub.

2. Заходим на VPS сервер.

Создаем там папку:

mkdir my_project
cd my_project


Выполняем git pull проекта с GitHub:

git clone https://github.com/username/repo.git .


Создаем свой именной образ:

docker build -t my_image_name .

docker run -it -d --env-file .env --restart=unless-stopped --name container_name my_image_name


В данном примере я запускал телеграмм-бота, который использует файл .env. Тут вы видите, как привязать env-file к рабочему контейнеру.

Просмотр логов

Для того чтобы посмотреть на консоль бота, достаточно выполнить команду:

docker attach container_name


Для выхода из интерактивного режима воспользуйтесь комбинацией клавиш CTRL+P, CTRL+Q.

Если было полезно – подписывайтесь и ставьте лайки!
5👍2👏1
​​ИИ LLama3 без ограничений: Локальный запуск, GROQ и интеграция в Телеграм бота с помощью Python

Сегодня мы погрузимся в мир искусственного интеллекта и научимся интегрировать LLama3 ИИ в свои проекты.

Вот что мы рассмотрим:

👉 Установка LLama3 на локальную машину.

👉 Запуск LLama3 бесплатно через платформу GROQ.

👉 Преимущества и недостатки каждого способа развертывания LLama3.

👉 Создание полноценного Telegram бота с использованием aiogram3, который сможет работать как с локальной версией LLama3, так и через сервис GROQ (а также с любой другой подключенной нейросетью).

👉 Опционально: запуск Telegram бота на VPS сервере.

Полную статью читайте на моем Хабре!
🔥61
​​Всем привет!

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


Цель данного поста - объединить в одном месте ссылки на все мои публикации на Хабре, посвященные разработке ботов на Python фреймворке aiogram 3.x (3.7 и выше).

1. Telegram Боты на Aiogram 3.x: Первые Шаги

В этой статье я поделился базовой структурой бота, рассказал, как создать токен бота через BotFather, и в целом заложил основу для будущей разработки. Статья будет интересна как новичкам, так и опытным пользователям.

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

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

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

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

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

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

5. Telegram Боты на Aiogram 3.x: Message handler и трюки с текстом

Здесь я отдельно рассмотрел работу с текстовым хендлером. Освоив этот материал, вы сможете создавать текстовые воронки с анимациями, заменами текста и прочим.

6. Telegram Боты на Aiogram 3.x: Отправка и обработка медиа сообщений

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

7. Telegram Боты на Aiogram 3.x: Все про FSM простыми словами

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

8. Telegram Боты на Aiogram 3.x: Интеграция с PostgreSQL в пару строк кода

В этой публикации я показал, как на основе библиотеки asyncpg-lite можно в пару строк кода интегрировать PostgreSQL в любого бота.

9. Telegram Боты на Aiogram 3.x: Профиль, админ-панель и реферальная система

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

10. Telegram Боты на Aiogram 3.x: Деплой бота через Docker

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



Эти 10 публикаций - полноценный углубленный курс по созданию телеграм ботов на aiogram3. Изучив их, каждый сможет брать реальные заказы на разработку простых и средних по сложности телеграмм ботов.

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

Сохраняйте данный пост в избранном, чтоб всегда быстро получать доступ к нужной вам статье.
🔥7👍32👏2
Создание фейковых данных пользователя на русском языке с использованием Python Faker

Для реализации этой задачи будем использовать замечательный модуль python - Faker.

Устанавливаем:

pip install faker


С помощью Faker можно легко создать фейковые имена, адреса, адреса электронной почты, номера телефонов и многое другое. Вот пример функции, которая генерирует такого рода данные:

from faker import Faker


def generate_fake_user():
fake = Faker('ru_RU')

return {
'name': fake.name(),
'address': fake.address(),
'email': fake.email(),
'phone_number': fake.phone_number(),
'birth_date': fake.date_of_birth(),
'company': fake.company(),
'job': fake.job()
}


Эта функция использует локализацию 'ru_RU', чтобы генерировать данные на русском языке. Результат будет включать в себя все необходимое для тестирования ваших приложений и сервисов.

Если информация представленная выше была вам полезной - добавляйте ее в закладки и ставьте лайки! Ваши отзывы и поддержка мотивируют меня и далее делиться с вами своими знаниями.
👍4🔥4
На канале Python:Today начали появляться ссылки на мои публикации.

Это приятно сразу по ряду причин:

1. Ссылки размещены бесплатно
2. Относительно недавно я сам учился по публикациям и роликам данного канала.

Благодарю за поддержку✌️
👏74👍1👎1🌭1
Наглядная демонстрация Front-end и Back-end.Теперь запомните)
😁8👍2🤣1
Друзья, всем доброго утра. Анонсирую сегодня выход на Хабре моей первой публикации по теме создания собственного API на Python через фреймворк FastApi.

Планирую написать 10-15 статей по данной теме, чтоб показать все возможности данного фреймворка, но всё будет зависеть от того как аудитория примет.

К сожалению, не получив должного отклика по теме Docker и Docker compose, я решил отказаться от серии и сейчас просто указываю в некоторых статьях на возможности этой технологии.

Часть материалов из цикла по FastApi будет только в этом канале (исходники, отдельные описания моментов и прочее).

Благодарю за внимание
🔥11👍3👏1
​​Вот и готова первая статья из, надеюсь, большого цикла публикаций. В данной статье я особое внимание уделил базе. Рассказал что такое API, разложил отличия между front-end и back-end. Так-же, на конкретных примерах показал что такое и как работает HTTP общение между клиентом и сервером.

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

Далее, как и обещал, только тут я делюсь полным исходником кода (ссылка «Код проекта»).

Надеюсь на вашу поддержку.
👍7🔥61🍾1
Друзья, приветствую. Как всегда, участники данного канала получают самые актуальные новости и эксклюзивный контент первыми! По плану, если успею, сегодня презентую свою новую библиотеку - json_db_lite

Эта библиотека позволяет использовать стандартный модуль JSON в Python для создания функциональной мини-базы данных. Вот основные возможности:

1. Создание JSON файла: Теперь вы можете легко создавать JSON файлы для хранения данных.
2. Трансформация списка словарей в JSON файл: Добавление данных в JSON становится проще благодаря этой библиотеке.
3. Парсинг JSON: Вы сможете получить все данные из JSON файла в виде списка питоновских словарей.
4. Добавление, удаление и изменение данных по ключам словаря: json_db_lite облегчит вам работу с данными в формате JSON.

Документацию я подготовил на русском языке, чтобы каждый мог разобраться. Надеюсь, что эта библиотека будет полезной для вас! 🚀
🔥6👍4
​​Библиотека для трансформации стандартного модуля Python - JSON в простую и функциональную мини-базу данных опубликован и доступен для установки через пакетный менеджер pip.

Для установки воспользуйтесь командой:

pip install --upgrade json_db_lite

В ближайшее время опубликую подробную инструкцию по пользованию в своем Хабр.

Ссылку на свой профиль в Хабре и на GitHub репозиторий проекта библиотеки привязал к данному посту👇
🔥5👍2
​​Детальная инструкция по работе с библиотекой json_db_lite уже опубликована на моем Хабре.

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

Еще раз благодарю вас за подписку и поддержку!
👍54🏆1
​​Друзья, всем доброго утра! Чтоб вы не скучали в ожидании нового контента (вторая часть по теме разработка собственного API, скорее всего выйдет завтра утром), решил поделиться с вами информацией о том, как за пару минут поднять свой VPN с неограниченным количеством ключей.

Для этого вам понадобится VPS сервер с европейским или американским API, установка нескольких программ и повторить за мной, как по инструкции.

Писал инструкцию таким образом, чтоб повторить все шаги мог абсолютно каждый, независимо от навыков в программировании, настройке серверов и прочее.
👍72🔥2👏2
​​Доброе утро, дорогие подписчики!

Рад сообщить, что сегодня в 10:00 по МСК выйдет моя вторая статья, посвященная разработке собственного API с помощью великолепного фреймворка FastAPI.

В этой публикации я подробно рассмотрел фундаментальную тему FastAPI — модели Pydantic. Прочитав статью, вы не только поймёте, что такое валидация с использованием Pydantic, но и и начнете свободно разбираться в тему моделей в FastAPI.

Кроме того, в статье я освещаю методы обработки запросов POST, PUT и DELETE. Надеюсь, что она будет полезна и интересна вам!

Код уже опубликован на GitHub и, напоминаю, доступ к коду есть только у подписчиков данного канала.

Благодарю за поддержку!
🔥5👍2👏1