Python Community
11.9K subscribers
1.39K photos
114 videos
15 files
915 links
Python Community RU - СНГ сообщество Python-разработчиков

Чат канала: @python_community_chat

Сотрудничество: @cyberJohnny и @Sergey_bzd

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
🤖 LingBot-VLA - это прогрессивная модель, объединяющая визуальные, языковые и действия для роботов.

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

🚀 Основные моменты:
- Обширные данные для предобучения
- Превосходные результаты по сравнению с конкурентами
- Увеличенная скорость обучения на 1.5-2.8x

📌 GitHub: https://github.com/Robbyant/lingbot-vla

#python

@Python_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Python-совет: не проверяйте длину — проверяйте объект


Python умеет проверять «пустоту» объектов напрямую - быстрее и читаемее.

Многие новички пишут так:


if len(items) > 0:
process(items)


Это лишняя операция.

Правильный способ — использовать truthiness.

Почему это лучше:
- Короче и понятнее
- Работает для списков, строк, словарей, set и других коллекций
- Соответствует Pythonic-стилю
- Не делает лишний вызов len()

Пример:


# Плохо
if len(items) > 0:
process(items)

# Хорошо
if items:
process(items)

# Проверка на пустоту
if not items:
print("Empty")

# Работает для разных типов
data = {}
if data:
print("Has data")

@Python_Community_ru
🚀 REAL-TIME СЕРВЕРЫ БЕЗ ЛИШНЕЙ СЛОЖНОСТИ

Если нужно быстро запускать веб-приложения с высокой производительностью и минимальной задержкой - посмотрите на WebRockets.

WebRockets — это лёгкий и быстрый фреймворк для создания веб-приложений и API с акцентом на скорость, простоту и минимальный overhead. Он подойдёт для проектов, где важны real-time взаимодействие и высокая нагрузка.

Когда полезно:

- Real-time приложения (чаты, уведомления, стриминг данных)
- Высоконагруженные API
- Dashboards и live-аналитика
- Backend для игр или trading-систем
- Любые сервисы, где важна низкая задержка

Что умеет:

- Работа через WebSocket для постоянного соединения
- Минимальная задержка и высокая пропускная способность
- Простая настройка и запуск
- Подходит для real-time архитектур
- Лёгкая интеграция в существующие backend-системы

Главная идея:

Обычный HTTP работает по принципу «запрос-ответ».
WebSocket держит постоянное соединение, позволяя серверу отправлять данные мгновенно без новых запросов — это основа современных real-time сервисов.


# Клонируем репозиторий
git clone https://github.com/ploMP4/webrockets.git
cd webrockets

# Установка зависимостей (если используется Node.js)
npm install

# Запуск сервера
npm start

# Пример простого WebSocket-сервера
const WebSocket = require("ws");

const wss = new WebSocket.Server({ port: 3000 });

wss.on("connection", (ws) => {
console.log("Client connected");

ws.send("Welcome!");

ws.on("message", (message) => {
console.log("Received:", message.toString());
ws.send(`Echo: ${message}`);
});
});

console.log("WebSocket server running on port 3000");

https://github.com/ploMP4/webrockets

@Python_Community_ru
Python-баг, который выглядит безобидно… но ломает логику 👇


fruits = ["apple", "lime", "orange",
"pineapple", "orange"]

for f in fruits:
if f == "orange":
fruits.remove(f)

print(fruits)


Ожидание: оба orange удалятся.

Реальность: один orange остаётся.

Почему так происходит?

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

Это классический сценарий продакшн-багов:

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

Правильный вариант:

fruits = [f for f in fruits if f != "orange"]


Мораль:
Изменяешь коллекцию во время обхода -Deploy first. Pray later.

#junior #python

@Python_Community_ru
🚀 Погружение в алгоритмы AI без магии

no-magic — это коллекция однофайловых, независимых реализаций алгоритмов, которые лежат в основе современных ИИ. Каждый скрипт является самодостаточной программой, обучающей модель с нуля и выполняющей предсказания, без использования сложных библиотек.

🚀 Основные моменты:
- Один файл — один алгоритм, без внешних зависимостей.
- Полное обучение и предсказание в каждом скрипте.
- Читаемый код с обязательными комментариями для понимания.
- Работает на обычном CPU за разумное время.

📌 GitHub: https://github.com/Mathews-Tom/no-magic

#python

@Python_Community_ru
🎥 Генерация видео с FireRed-OpenStoryline

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

🚀 Основные моменты:
- 🌐 Умный поиск и организация медиа
- ✍️ Интеллектуальная генерация сценариев
- 🎵 Рекомендации по музыке и озвучке
- 💬 Редактирование через разговорные команды
- Архивирование навыков редактирования

📌 GitHub: https://github.com/FireRedTeam/FireRed-OpenStoryline

@Python_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Регулярные выражения для извлечения ссылок из HTML с помощью Python

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



import re
import requests
def extract_links(url):
response = requests.get(url)
html_content = response.text
links = re.findall(r'href=["\']?(https?://[^"\'>]+)', html_content)
return links
url = 'https://example.com'
all_links = extract_links(url)
print(all_links)

@Python_Community_ru
⚡️ Как изучать любой GitHub-репозиторий за 5 минут с DeepWiki

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

DeepWiki автоматически строит AI-wiki для любого проекта и позволяет задавать вопросы прямо к исходникам.

Как использовать:

1. Открой нужный репозиторий на GitHub
2. Замени в адресе:
github.comdeepwiki.com
3. Задай вопросы:
- Как устроена архитектура?
- С чего начинается запуск?
- Где реализована основная логика?
- Как работает конкретная функция?

Почему это работает:
- Документация может быть устаревшей
- README часто поверхностный
- Код — единственный источник истины

DeepWiki анализирует структуру проекта и объясняет её простым языком.

Когда особенно полезно:
- Быстрый онбординг в новый проект
- Подготовка к собеседованию
- Разбор open-source
- Понимание сложных библиотек
- Работа AI-агентов с кодом

Главная мысль:
Не читай сотни файлов — задавай вопросы репозиторию.

Пример

GitHub
https://github.com/karpathy/nanochat

// DeepWiki
https://deepwiki.com/karpathy/nanochat

Примеры вопросов:
- How does training work?
- Where is the main entry point?
- How is inference implemented?
- What are the key modules?

@Python_Community_ru
🎥🚀 MOVA: Инновационная генерация видео и аудио

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

🚀Основные моменты:
- Бимодальная генерация: видео и аудио создаются одновременно.
- Высокая точность синхронизации губ и звуковых эффектов.
- Полностью открытый исходный код и доступные веса модели.
- Архитектура с асимметричными двойными башнями для лучшего взаимодействия модальностей.

📌 GitHub: https://github.com/OpenMOSS/MOVA

#python

@Python_Community_ru
Python: синтаксис тебя не убьёт.

Зато логика - без предупреждения.

@Python_Community_ru
🌟 Создайте свой пиксельный офис с Star Office UI

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

🚀 Основные моменты:
- Визуализация статусов AI: idle, writing, syncing и др.
- "Вчерашние заметки" для краткого обзора выполненной работы.
- Поддержка приглашения других участников в офис.
- Адаптивный интерфейс для мобильных устройств.
- Гибкие варианты публичного доступа.

📌 GitHub: https://github.com/ringhyacinth/Star-Office-UI

#python

@Python_Community_ru
🔧 Инструмент для тестирования безопасности

RaspyJack - это портативный инструмент для авторизованного тестирования безопасности с интерфейсом на LCD, веб-интерфейсом и интегрированной IDE для создания полезных нагрузок. Подходит для исследований и образовательных целей.

🚀 Основные моменты:
- LCD-интерфейс для управления
- Категории полезных нагрузок (разведка, перехват и др.)
- Веб-интерфейс для удаленного управления
- Интеграция инструментов DNS-спуфинга и WiFi-атак

📌 GitHub: https://github.com/7h30th3r0n3/Raspyjack

@Python_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Языки программирования и их for-циклы

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

Самый простой пример — обычный цикл. В Python он читается почти как английский. В C, Java и Go он выглядит как строгая формула. В Rust и Kotlin больше похож на математическую запись. А в Assembly это вообще набор инструкций для процессора.

Но смысл всегда один и тот же. Мы просто говорим компьютеру: повтори действие N раз.

🐍 Python - for i in range(n):
Java - for(int i=0;i

@Python_Community_ru
🔥 Вышла модель Qwen-Image-Layered-Control-V2

Новая версия инструмента для извлечения слоёв из изображений с управлением через кисть. Модель построена поверх оригинальной Qwen-Image-Layered-Control и позволяет точнее выделять элементы на иллюстрациях и постерах.

Теперь можно управлять слоями прямо на изображении:

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

Также продолжает работать текстовое управление:
prompt — описывает, что нужно извлечь.
negative_prompt — что нужно исключить.

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

Рекомендуемые настройки: около 10 шагов инференса.
Если используется управление кистью, можно поставить cfg_scale=1, чтобы значительно ускорить генерацию.

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

Модель обучена на датасете PrismLayersPro и распространяется как LoRA, которая загружается поверх базовой версии V1.

🟢Model: https://modelscope.ai/models/DiffSynth-Studio/Qwen-Image-Layered-Control-V2
🟢Dataset: https://modelscope.cn/datasets/artplus/PrismLayersPro
🟢GitHub: https://github.com/modelscope/DiffSynth-Studio

@Python_Community_ru
🐍 Почему ошибки валидации в Python иногда так сложно найти

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

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

В сложных вложенных структурах это превращает отладку в настоящую боль.

Pydantic решает эту проблему.

Он показывает полный путь до поля, которое вызвало ошибку — от корневой модели до конкретного атрибута.

В результате сразу понятно, где искать проблему.

Пример:


from pydantic import BaseModel, Field

class Address(BaseModel):
zip_code: str = Field(pattern=r"^\d{5}$")

class Customer(BaseModel):
name: str
address: Address

customer = Customer(
name="Alice",
address={"zip_code": "9ABC1"}
)

Ошибка будет выглядеть так:


ValidationError: address.zip_code
String should match pattern '^\d{5}$'


То есть Pydantic сразу показывает:

address.zip_code

А не просто сообщает, что «где-то внутри данных ошибка».

Для сложных JSON, API-ответов и вложенных моделей это сильно упрощает дебаг.

#Python #Pydantic #Backend #DataValidation

@Python_Community_ru
🖥 ByteDance только что выпустили в открытый доступ - OpenViking, и этот проект показывает, что именно не так с тем, как сегодня строят память для AI-агентов.

Вот где большинство агент-фреймворков ошибаются:

Память хранится в одном месте.
Ресурсы — в другом.
Навыки разбросаны по системе.

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

Именно это и проблема. OpenViking решает её одной идеей:
рассматривать контекст агента как файловую систему.

Всё работает через единый протокол:

viking://

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

Главный прорыв — многоуровневая загрузка контекста:

- L0 — одно предложение для быстрого поиска
- L1 — обзор ~2000 токенов для принятия решений
- L2 — полные детали, загружаются только когда действительно нужны

Большинство агентов просто загружает всё в контекст и надеется на лучшее.

OpenViking загружает только нужные данные и только в нужный момент.

Результат:

- меньше расходов на токены
- выше точность
- быстрее работа агентов

Retrieval теперь тоже работает логичнее.

Вместо одного плоского семантического поиска:

1. сначала происходит позиционирование на уровне директорий
2. затем рекурсивный поиск внутри наиболее релевантных директорий

Можно буквально видеть траекторию поиска — это больше не чёрный ящик.

Есть и механизм самоэволюции агента.

В конце каждой сессии система автоматически:

- извлекает новые знания
- обновляет память агента
- обновляет память пользователя

То есть агент становится умнее с каждым использованием.

Проект уже имеет:

- 9K звёзд на GitHub
- 13 контрибьюторов

Разработан командой ByteDance Viking, которая строит инфраструктуру векторного поиска с 2019 года.

Проект полностью open-source под лицензией Apache 2.0.

https://github.com/volcengine/OpenViking

@Python_Community_ru