Легкий путь в Python
5.81K subscribers
143 photos
22 videos
3 files
181 links
Я Алексей Яковенко, senior-разработчик Python. Здесь вы найдете статьи, заметки, посты и видео для прокачки навыков программирования. Интересно и новичку, и профи 💡

По вопросам: https://t.me/yakvenalexx
Download Telegram
Бесплатная учительская подписка ChatGPT Plus 🎓

Что такое учительская подписка?

Это специальная образовательная версия ChatGPT Plus с полным доступом к GPT-4, расширенными возможностями и приоритетом в обработке запросов — все бесплатно для преподавателей.

Как получить бесплатно:

1. Переходим по ссылке https://em.bjedu.tech/en/ и создаем бесплатную образовательную почту (обязательно в зоне erzi.me)

2. Копируем полученный email адрес

3. Заходим в ChatGPT: https://chatgpt.com (Обязательно используйте VPN!)

4. Нажимаем "Зарегистрироваться" и вставляем образовательную почту

5. Придумываем надежный пароль и жмем "Продолжить"

6. Копируем код подтверждения из письма и вводим его

7. Заполняем данные регистрации

🎯 Важно: В поле "Роль" обязательно выбираем "Teacher" (Учитель)

8. Если после регистрации видите значок образовательной подписки — поздравляю, все получилось! 🎉
🔥158👍6🍓1🎃1😘1
Бесплатный бизнес-аккаунт Gemini на месяц 🚀

Что дает бизнес-подписка Gemini?

Полный доступ к расширенным возможностям Google Gemini, включая продвинутые модели, инструменты для работы с данными, интеграцию с Google Workspace и новейшие фичи вроде Nano Babanana и генерации видео через Veo3.

Пошаговая инструкция:

1. Переходим на сайт временной почты: https://temp-mail.org/en

2. Копируем сгенерированный email адрес

3. Открываем страницу бизнес-регистрации Gemini: https://auth.business.gemini.google/login

4. Вставляем временную почту и продолжаем регистрацию

5. Копируем код подтверждения из письма и вводим его

6. Завершаем настройку аккаунта

Готово! Теперь целый месяц пользуетесь всеми премиум-инструментами Gemini абсолютно бесплатно 🎉

Что доступно:

Продвинутые модели Gemini
Nano Babanana
Генерация видео через Veo3
Расширенные лимиты запросов
Интеграция с бизнес-инструментами

Важно: Не забудьте сохранить доступ к временной почте на весь период использования!
216👍5🔥4🕊2❤‍🔥1💯1
С наступившим 2026-м, друзья! 🎄

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

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

А фактуры, к слову, накопилось немало. Реальная практика, настоящие кейсы: FastAPI, Aiogram, LangChain, LangGraph и ещё куча интересных находок.

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

Идей много, проектов ещё больше — самое время возвращаться в активный ритм и делиться тем, что действительно работает.

Спасибо, что остаетесь здесь и не теряете канал из виду. Это очень мотивирует.

Пусть 2026-й станет для вас годом чистого кода, интересных задач и по-настоящему лёгких решений 🐍
1🔥47👍1811🎉6🍾5👀1🙊1
🚀 5 января на Хабре выходит мой большой практический туториал «Как запустить 4 независимые нейросети на одном GPU (16 ГБ) под FastAPI»

Если вы когда-нибудь пытались запустить несколько AI-моделей на одном GPU и упирались в CUDA out of memory, костыли, докер-ад или облачные счета — этот материал точно для вас.

🧠 Что я показываю в статье (33 минуты на прочтение):

✔️ Как параллельно запустить 4 нейросети на одном GPU 16GB (RTX A4000)
✔️ Реальный FastAPI-пайплайн:

OCR (DeepSeek) → ASR (Whisper RU) → LLM (Qwen2.5) → TTS (MMS RU)


✔️ GPU memory tricks: torch.no_grad, lazy loading, fp16, освобождение VRAM
✔️ Продакшн без Docker: systemd, virtualenv, автозапуск
✔️ Почему VPS с GPU за ~12к/мес выгоднее облачных API
✔️ PyTorch + Transformers — hands-on, без воды

🔥 Какие модели используются:

* 🖼 DeepSeek OCR — распознавание текста
* 🎙 Whisper RU — ASR
* 🤖 Qwen2.5 — LLM
* 🗣 MMS-TTS (RU) — синтез речи

📡 Всё это объединено в FastAPI с отдельными эндпоинтами и общим GPU.

📦 Исходники уже открыты:

* код
* тесты
* конфиги
* systemd-сервисы

👉 GitHub: ССЫЛКА

Это не «посмотрите, как красиво», а реальный боевой сетап, который можно:

* развернуть на своём сервере
* доработать под продукт
* использовать как базу для AI-сервиса

📅 Публикация: 5 января на Хабре
⭐️ Если тема откликается — поставь звезду репозиторию, чтобы не потерять
💬 В комментариях к статье можно будет задать вопросы — отвечу👇
3🔥79🎉6🤩32❤‍🔥2👍2😘2🙏1🙉1🤷1
🚀 Заставляем работать ChatGPT, Claude, Copilot и Gemini в РФ — без VPN и платных прокси

Да, это реально. Достаточно поменять DNS — и большинство ИИ-сервисов, которые «не работают в России», снова открываются 👇

🔧 Что за магия и почему это работает

Comss.one DNS — публичные DNS-серверы на базе PowerDNS с поддержкой:

* 🔐 DNS-over-HTTPS (DoH)
* 🔐 DNS-over-TLS (DoT)
* 🔐 DNS-over-QUIC
* 🛡 Блокировка рекламы, трекеров, фишинга и вредоноса

💡 Фишка: через эти DNS снимаются региональные ограничения для ряда ИИ-сервисов — без VPN и туннелей.

🤖 Какие ИИ реально запускаются

По официальному списку и отзывам пользователей:

ChatGPT — веб + приложения (Windows, macOS, Android, iOS)
Claude AI — веб (включая Claude Code!)
Google Gemini — веб, Android, Chrome
Microsoft Copilot — веб, Windows, Android, iOS
GitHub Copilot
Google ImageFX, Sora, Designer, xAI Grok и др.

⚠️ Список периодически обновляется — актуальный всегда на сайте Comss.one

🌍 DNS-адреса Comss.one

Обычный DNS (IPv4):
83.220.169.155
212.109.195.93


DNS-over-HTTPS (DoH):

https://dns.comss.one/dns-query


DNS-over-TLS (DoT):

dns.comss.one


🪟 Windows

🔹 Вариант 1: системный DNS (лучший)

1. Параметры → Сеть и Интернет → Свойства подключения
2. DNS → «Вручную»
3. Введите DNS:
83.220.169.155
212.109.195.93

4. Включите шифрование DNS (DoH)
5. Добавьте:
https://dns.comss.one/dns-query

6. Переподключите сеть

🔹 Вариант 2: только в браузере

Подходит для Chrome / Edge / Brave / Opera:

* Настройки → Конфиденциальность → Безопасный DNS
* Пользовательский DNS:
https://dns.comss.one/dns-query


Перезапустите браузер

🍏 macOS

🔹 Системный DNS

1. Системные настройки → Сеть
2. Подключение → Подробно → DNS
3. Удалите старые и добавьте:
83.220.169.155
212.109.195.93

4. Переподключите Wi-Fi

🔹 Через браузер (DoH)

Аналогично Windows — включаем «Безопасный DNS» и указываем:

https://dns.comss.one/dns-query


🐧 Linux

🔹 Быстро (GUI)

В настройках сети → IPv4 → DNS:
83.220.169.155, 212.109.195.93


🔹 Через systemd-resolved (DoT)

sudo nano /etc/systemd/resolved.conf


[Resolve]
DNS=83.220.169.155#dns.comss.one 212.109.195.93#dns.comss.one
DNSOverTLS=yes

sudo systemctl restart systemd-resolved
resolvectl status


Как проверить

* Зайдите на страницу проверки DNS от Comss.one
* Откройте:

* https://chatgpt.com
* https://claude.ai
* https://gemini.google.com

Если сервисы грузятся без региональных заглушек — всё работает 🔥

⚠️ Важно знать

* ❗️ Это не VPN — шифруется только DNS, не весь трафик
* ❗️ Некоторые API или студии могут всё ещё быть недоступны
* Зато работает быстро, стабильно и без подписок

👍 Сохраняйте, делитесь и не теряйте доступ к ИИ.
1🔥379👍7🤗2🥰1🤔1🎄1
🚀 Статья опубликована (да, с небольшим запозданием)

На Хабре вышел мой большой практический туториал:

👉 Как поднять мультимодальный AI-сервис (OCR, ASR, LLM, TTS) на одной GPU 16GB без облачных API

Это реальный продакшен-сетап
, а не демо и не «игрушка».


🧠 4 нейросети на одном GPU (RTX A4000, 16GB)

OCR → ASR → LLM → TTS

Стек технологий:

FastAPI + PyTorch + Transformers

Используемые модели:

- 🖼 DeepSeek OCR
- 🎙 Whisper RU
- 🤖 Qwen2.5
- 🗣 MMS-TTS (RU)

Что внутри статьи

⚙️ Подготовка VPS: Ubuntu + CUDA + драйверы

🧮 Управление VRAM без CUDA OOM (fp16, lazy loading, torch.no_grad, освобождение памяти)

🚀 Продакшен без Docker: systemd, virtualenv, автозапуск

🌐 Nginx + HTTPS + домен

🧪 Тестирование через Swagger

Итог

Локальный AI-сервис «под ключ»:

- предсказуемые расходы (VPS с GPU ≈ 12к/мес)
- полная приватность данных
- база для AI-продукта или стартапа

📦 Полный исходный код проекта 👉 GitHUB

💬 Материал получился непростым, поэтому если остались вопросы — пишите тут 👇 или в комментариях на Хабре. По возможности всем отвечу.

P.S. Искренне постараюсь сделать всё, чтобы в 2026 году таких больших пауз по публикациям больше не было 🙂

Всех с прошедшими праздниками. Начинаем! 🚀
3🔥6013👍84🙉2🥰1🤔1🥱1
Хабр только у меня лежит?
😭11👾5🤪4👍3🔥1
😁8610👍8😱3🐳2👀1👾1
🚀 За 5 минут сделал свою базу знаний с ИИ на Python

Создал AI-блокнот, загрузил туда топовые книги по продуктивности и мотивации и написал простой Python-скрипт для чата с ними.

📸 На скрине — живой пример

Я задаю вопрос из терминала:

👉 «топ-10 основных принципов из книги “Атомные привычки”»

Скрипт в ответ:

- делает структурированную выжимку
- отвечает строго по загруженной книге
- показывает источники и конкретные фрагменты текста

По сути, это ChatGPT на моих книгах:

без галлюцинаций
с цитатами
запускается одной командой

⬇️ Ниже — инструкция, как повторить это за 5 минут на любом наборе документов (PDF, видео, статьи, текстовые файлы). Понадобится аккаунт Google и VPN⬇️
2🔥20👍12🍌32😍2🥱1😇1
🔹 ИНСТРУКЦИЯ: как повторить за 5 минут

📘 Что такое NotebookLM (коротко и по делу)

NotebookLM — это AI-блокнот от Google, в который ты загружаешь свои источники, а ИИ:

- отвечает строго по этим материалам
- показывает цитаты и источники
- не галлюцинирует

Поддерживаются:

- PDF, DOCX, Markdown
- статьи и сайты
- видео (ссылки)

Лимиты:

* 🆓 бесплатно — до 50 источников в одном блокноте
* ⭐️ Pro — до 300 источников

⚙️ Шаг 1. Подготовка окружения

mkdir my-knowledge-base && cd my-knowledge-base
python -m venv .venv && source .venv/bin/activate
pip install notebooklm-py==0.3.1 playwright==1.57.0
playwright install chromium


🔐 Шаг 2. Авторизация в Google (один раз)

notebooklm login


При первом запуске откроется браузер для входа в Google. После этого cookies сохраняются в storage_state.json, и повторная авторизация не нужна.

📚 Шаг 3. Проверяем доступ и смотрим свои блокноты

Создаём файл auth.py — он проверяет авторизацию и выводит все доступные блокноты.

# auth.py — сохрани и запусти
import asyncio
from notebooklm import NotebookLMClient

async def test_auth():
# from_storage() использует сохранённые куки
async with await NotebookLMClient.from_storage() as client:
print(" Авторизация успешна!\n")

notebooks = await client.notebooks.list()
print("📚 Твои блокноты:")
for nb in notebooks:
print(f" - {nb.title} (ID: {nb.id})")

asyncio.run(test_auth())


После запуска ты увидишь список всех своих блокнотов и их ID — он понадобится дальше.

💬 Шаг 4. Чат с блокнотом (RAG без галлюцинаций)

Создаём chat.py — скрипт для общения с выбранным блокнотом.

# chat.py — отправка запросов в NotebookLM
import asyncio
from notebooklm import NotebookLMClient

# ID блокнота для тестов
NOTEBOOK_ID = "NOTEBOOK_ID"

# Системный промпт для русского языка
SYSTEM_PROMPT = "Всегда отвечай на русском языке. Будь кратким и информативным."

async def ask_notebook(question: str, show_sources: bool = True):
"""Отправить вопрос в блокнот и получить ответ с информативными источниками"""
async with await NotebookLMClient.from_storage() as client:
print(f"📤 Вопрос: {question}")
print("-" * 50)

# Добавляем системный промпт к вопросу
full_question = f"{SYSTEM_PROMPT}\n\nВопрос: {question}"
result = await client.chat.ask(NOTEBOOK_ID, full_question)

print(f"📥 Ответ:\n{result.answer}")

# Выводим информативные источники
if show_sources and hasattr(result, 'references') and result.references:
# Получаем список источников блокнота для маппинга id -> title
sources = await client.sources.list(NOTEBOOK_ID)
source_map = {src.id: src for src in sources}

print("\n" + "=" * 50)
print("📚 ИСТОЧНИКИ:")
print("=" * 50)

# Группируем цитаты по номеру
seen_citations = set()
for ref in result.references:
if ref.citation_number in seen_citations:
continue
seen_citations.add(ref.citation_number)

source = source_map.get(ref.source_id)
source_title = source.title if source else "Неизвестный источник"

# Обрезаем цитату если слишком длинная
cited_text = ref.cited_text or ""
if len(cited_text) > 150:
cited_text = cited_text[:150] + "..."

print(f"\n[{ref.citation_number}] {source_title}")
print(f" 💬 \"{cited_text}\"")

return result


async def main():
# Тестовый запрос
question = input("Введите вопрос: ") if __name__ == "__main__" else "О чём этот блокнот?"
await ask_notebook(question, show_sources=False)


if __name__ == "__main__":
asyncio.run(main())

Запуск:

python chat.py
433👍19🔥11🤔1👌1🥱1🎃1
Все мы можем тупануть. Главное - вовремя исправиться😁

Я тут к общему хайпу вокруг OpenClaw присоединился и получились интересные наработки. Будет интересно в одной из следующих статей на Хабре узнать подробнее о данном звере и о том, как его подружить с Python?
🔥4414👍9😁6🤔1
🧠 Как работает агентская сетка (на примере Claude Code)

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

Рассмотрим на примере Claude Code.

Когда ты просишь его:
 «Изучи проект и расскажи структуру базы данных…»


Кажется, что модель сама читает весь проект и всё держит в голове.

Но на практике архитектура может выглядеть иначе.

🎯 Что реально происходит

1. Основная модель (главный агент). Формирует задачу. Например:
   Explore the project at /home/project.
Find database models, migrations, product tables...
Report with file paths and code snippets.

2. Задача передаётся субагенту

Специальный внутренний агент получает конкретную, узкую задачу:

- пройтись по директориям
- найти models/, migrations/, alembic/
- вытащить SQLAlchemy классы
- собрать ключевые фрагменты кода

3. Субагент возвращает отчёт. Уже структурированный:

- пути к файлам
- выдержки кода
- анализ связей таблиц

4. Главный агент работает только с отчётом

Он не держит в «контексте» весь репозиторий. Ему достаточно компактного summary от своего субагента.

И вот этот отчёт уже попадает в пользовательскую сессию.

🏗 Почему это важно

🔹 Экономия контекста
🔹 Масштабируемость
🔹 Возможность распараллеливания
🔹 Модульность логики

Главная модель — это оркестратор. Субагенты — специализированные исполнители.

Это и есть агентская сетка.

💻 Можно ли так сделать самому?

Да. В Python это спокойно собирается через:

- LangChain
- LangGraph
- инструменты (tools)
- кастомные функции

Упрощённая схема:

from langchain.agents import initialize_agent, Tool
from langchain.chat_models import ChatOpenAI

def explore_repo(path: str) -> str:
# логика обхода файловой системы
# поиск моделей, миграций и т.д.
return "Structured report..."

tools = [
Tool(
name="RepoExplorer",
func=explore_repo,
description="Searches project and reports DB structure"
)
]

llm = ChatOpenAI(model="gpt-4o-mini")

agent = initialize_agent(
tools,
llm,
agent="zero-shot-react-description",
verbose=True
)

agent.run("Explore /home/project and report DB structure")


Если делать более продвинутую архитектуру — лучше использовать LangGraph, где можно явно описать:

- узел «Планировщик»
- узел «Исследователь репозитория»
- узел «Анализатор моделей»
- узел «Сборщик отчёта»

И построить полноценный граф агентов.

🧩 Ключевая идея

Агентская система — это не «одна умная модель». Это:
Оркестратор + специализированные LLM + инструменты + отчёты между ними.


Главная модель не обязана знать всё. Она должна уметь правильно делегировать.
🔥199👍7
🚀 Собственная облачная LLM на 16 ГБ VRAM

Статья уже готова и сейчас находится на этапе вычитки и редактуры.

В ней я подробно показываю, как:

- поднять LLM через vLLM всего на 16 ГБ VRAM
- развернуть её на удалённом сервере с GPU
- подключить домен и настроить доступ
- превратить модель в полноценный удалённый “мозг” уровня GPT
- добавить tools, интеграции и MCP
- подключаться к ней через LangChain, LangGraph или прямыми HTTP-запросами

Без воды. Полный фарш — от покупки домена и аренды GPU до production-подключения.

🧠 Что в итоге получаем

Собственную LLM, которая:

- работает как OpenAI-совместимый API
- живёт в облаке
- масштабируется
- подключается к агентным системам
- управляется вами

И всё это — на 16 ГБ VRAM.

Без магии и без бюджета OpenAI.

Пока статья готовится к публикации, можно протестировать репозиторий:

👉 https://github.com/Yakvenalex/VllmQwen3AiProject

Подходит как для локальных нейронок, так и для обычных API-моделей.

Если вам интересно строить свою инфраструктуру, а не просто пользоваться чужими API — это будет полезный материал.

Скоро опубликую статью на Хабре 👀
🔥679👍65❤‍🔥2🎉1🥱1
Философский понедельник😅
😁25🤔11👍6🤣3🤯2👎1🔥1🤬1😢1
Если не брать Claude модели, то такой зоопарк можно поднять бесплатно. Целая куча китайских моделей. Рассказать как такое собирается?
1👍108🔥25💯113
🚀 Собственная языковая модель на 16 ГБ видеопамяти

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

Пошагово показываю:

— запуск модели на 16 ГБ видеопамяти
— развёртывание на удалённом сервере
— настройку защищённого доступа
— подключение инструментов
— превращение модели в полноценный серверный сервис

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

— работает через совместимый программный интерфейс
— размещена в облаке
— масштабируется под нагрузку
— подключается к агентным системам
— полностью управляется владельцем

Без дорогостоящих ускорителей и без бюджета крупных ИИ-сервисов. На сервере от Selectel, который можно запустить за пару минут.

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

Реклама. АО «Селектел», erid: 2VtzqxRq3Yp
12👍10🔥9🤬1🎉1