Чтобы получить все уникальные пары элементов из списка, вовсе не обязательно писать громоздкие вложенные циклы. Python предоставляет модуль itertools, который содержит готовые инструменты для таких задач.
Например, для списка features = ['price', 'size', 'rating'] можно написать так:
from itertools import combinations
pairs = list(combinations(features, 2))
print(pairs) # [('price', 'size'), ('price', 'rating'), ('size', 'rating')]
Функция combinations берёт на вход итерируемый объект и размер комбинации.
В нашем случае размер равен 2, поэтому мы получаем все возможные неупорядоченные пары без повторов.
Это решение не только короче, но и легче читается. Пользуйтесь библиотекой itertools, чтобы избавляться от рутины и писать более чистый код!
@Python_Community_ru
Например, для списка features = ['price', 'size', 'rating'] можно написать так:
from itertools import combinations
pairs = list(combinations(features, 2))
print(pairs) # [('price', 'size'), ('price', 'rating'), ('size', 'rating')]
Функция combinations берёт на вход итерируемый объект и размер комбинации.
В нашем случае размер равен 2, поэтому мы получаем все возможные неупорядоченные пары без повторов.
Это решение не только короче, но и легче читается. Пользуйтесь библиотекой itertools, чтобы избавляться от рутины и писать более чистый код!
@Python_Community_ru
👍4
🖥 Transfunctions — библиотека транзакционных функций на Python
Transfunctions — это инструмент для создания чистых, переиспользуемых и управляемых пайплайнов из функций. Подходит для задач, где нужно чётко контролировать каждый шаг выполнения.
Что такое транзакционные функции?
Это функции, которые:
• имеют чёткое начало и откат (rollback) — как в базах данных
• могут быть объединены в цепочки, где каждая часть знает, как отменить свои действия
• обрабатывают ошибки и контекст централизованно
• позволяют писать бизнес-логику без дублирования и хаоса
Что умеет Transfunctions:
• Объединение функций в контролируемые пайплайны
• Поддержка отката и логирования
• Контекстное выполнение (например, сессии, транзакции, данные)
• Минимум шаблонного кода
Подходит для ETL, финансовых операций, инфраструктурных обработчиков и сценариев с проверками и откатами.
pip install transfunctions
🔗 GitHub: https://github.com/pomponchik/transfunctions
#python #pipeline #transactions #opensource #architecture
@Python_Community_ru
Transfunctions — это инструмент для создания чистых, переиспользуемых и управляемых пайплайнов из функций. Подходит для задач, где нужно чётко контролировать каждый шаг выполнения.
Что такое транзакционные функции?
Это функции, которые:
• имеют чёткое начало и откат (rollback) — как в базах данных
• могут быть объединены в цепочки, где каждая часть знает, как отменить свои действия
• обрабатывают ошибки и контекст централизованно
• позволяют писать бизнес-логику без дублирования и хаоса
Что умеет Transfunctions:
• Объединение функций в контролируемые пайплайны
• Поддержка отката и логирования
• Контекстное выполнение (например, сессии, транзакции, данные)
• Минимум шаблонного кода
Подходит для ETL, финансовых операций, инфраструктурных обработчиков и сценариев с проверками и откатами.
pip install transfunctions
🔗 GitHub: https://github.com/pomponchik/transfunctions
#python #pipeline #transactions #opensource #architecture
@Python_Community_ru
⚡️ Ускорь проверку качества кода в 10 раз с помощью pre-commit!
В серьезных проектах чистота и стиль кода — но ручные проверки отнимают кучу времени, которое лучше потратить на анализ данных.
💡 Решение: автоматизируй всё с помощью pre-commit хуков — и пусть код проверяется сам перед каждым коммитом.
😬 Без pre-commit:
Вы коммитите код — всё выглядит нормально.
Но потом на ревью находят кучу мелочей:
✖️ Нет type hints
✖️ Форматирование пляшет
✖️ Отсутствует docstring
✖️ Импорты в разнобой
🤖 С pre-commit всё иначе:
Перед коммитом автоматически запускается ruff format и ruff check:
✅ Код отформатирован
✅ Стиль и правила соблюдены
✅ Меньше замечаний на ревью
💡 Один раз настроил — и больше не паришься с форматированием вручную.
Идеально для любого Python-проекта.
@Python_Community_ru
В серьезных проектах чистота и стиль кода — но ручные проверки отнимают кучу времени, которое лучше потратить на анализ данных.
💡 Решение: автоматизируй всё с помощью pre-commit хуков — и пусть код проверяется сам перед каждым коммитом.
😬 Без pre-commit:
Вы коммитите код — всё выглядит нормально.
Но потом на ревью находят кучу мелочей:
✖️ Нет type hints
✖️ Форматирование пляшет
✖️ Отсутствует docstring
✖️ Импорты в разнобой
🤖 С pre-commit всё иначе:
Перед коммитом автоматически запускается ruff format и ruff check:
✅ Код отформатирован
✅ Стиль и правила соблюдены
✅ Меньше замечаний на ревью
💡 Один раз настроил — и больше не паришься с форматированием вручную.
Идеально для любого Python-проекта.
@Python_Community_ru
🚀 Kreuzberg — мощный фреймворк Document Intelligence для Python!
🔹 Извлекает текст, метаданные и структурированные данные из PDF, Office-документов, изображений и др.
🔹 Основан на проверенных open-source решениях: Pandoc, PDFium, Tesseract
🔹 Поддержка 18 форматов (PDF, DOCX, PPTX, HTML, изображения, таблицы и пр.)
🔹 Высокая производительность: 30+ документов/с, лёгкий runtime (≈360 МБ), установка 71 МБ
🔹 Открытый исходный код под MIT-лицензией, 2 000⭐ на GitHub
GitHub
Пример:
from kreuzberg import extract_file
# In your async function
result = await extract_file("presentation.pptx")
print(result.content)
# Rich metadata extraction
print(f"Title: {result.metadata.title}")
print(f"Author: {result.metadata.author}")
print(f"Page count: {result.metadata.page_count}")
print(f"Created: {result.metadata.created_at}")
✨ Попробуйте: https://github.com/Goldziher/kreuzberg
#Python #OCR #DocumentIntelligence #OpenSource #Kreuzberg
@Python_Community_ru
🔹 Извлекает текст, метаданные и структурированные данные из PDF, Office-документов, изображений и др.
🔹 Основан на проверенных open-source решениях: Pandoc, PDFium, Tesseract
🔹 Поддержка 18 форматов (PDF, DOCX, PPTX, HTML, изображения, таблицы и пр.)
🔹 Высокая производительность: 30+ документов/с, лёгкий runtime (≈360 МБ), установка 71 МБ
🔹 Открытый исходный код под MIT-лицензией, 2 000⭐ на GitHub
GitHub
Пример:
from kreuzberg import extract_file
# In your async function
result = await extract_file("presentation.pptx")
print(result.content)
# Rich metadata extraction
print(f"Title: {result.metadata.title}")
print(f"Author: {result.metadata.author}")
print(f"Page count: {result.metadata.page_count}")
print(f"Created: {result.metadata.created_at}")
✨ Попробуйте: https://github.com/Goldziher/kreuzberg
#Python #OCR #DocumentIntelligence #OpenSource #Kreuzberg
@Python_Community_ru
🖥Тебе не всегда стоит использовать классы в Python
Python известен простотой и читабельностью — и многие сразу переходят к использованию классов. Но как показывает опыт, классы далеко не всегда нужны:
Python — невероятно гибкий язык, но классы не всегда лучший выбор. В большинстве случаев стандартные типы, функции и библиотеки предлагают более простые и элегантные решения.
🔍 Когда вы можете обойтись без класса
1. Хранение простых данных
Вместо класса:
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
point = Point(10, 20)
Point = namedtuple('Point', ['x', 'y'])
point = Point(10, 20)
# или
@dataclass
class Point:
x: int
y: int
point = Point(10, 20)
Статические утилиты без состояния
Вместо:
class Utils:
@staticmethod
def add(a, b): return a + b
result = Utils.add(3, 4)
используйте просто функцию:
def add(a, b): return a + b
result = add(3, 4)
Группировка констант
Вместо использования отдельного класса:
class Config:
HOST = 'localhost'
PORT = 8080
можно определить модуль с константами:
HOST = 'localhost'
PORT = 8080
Простые изменяемые состояния
Если нужен лишь список или словарь:
inventory = []
inventory.append('apple')
Операции на лету
Вместо класса с одним методом transform:
result = Transformer().transform([1,2,3])
используйте:
result = [x*2 for x in [1,2,3]]
Стандартная библиотека может уже всё заменить
Например, configparser, json, csv и другие модули часто покрывают функциональность управления конфигурациями без необходимости писать класс вручную.
✅ Когда классы всё же уместны
Используйте классы, если вам действительно нужны:
- Состояние и поведение, связанные вместе
- Наследование и расширяемость
- Капсуляция логики и данных
- Чёткая структура и переиспользуемость
Но многие простые сценарии проще и понятнее реализовать без OOP-механизмов
💡 Почему это важно
Это помогает избежать избыточного кода и упростить архитектуру
Повышает читабельность, особенно для новичков или в небольших скриптах
Снижает перегрузку инициализации, особенно там, где функциональность тривиальна
📌 Подробнее (https://adamgrant.micro.blog/2025/07/24/123050.html)
@Python_Community_ru
Python известен простотой и читабельностью — и многие сразу переходят к использованию классов. Но как показывает опыт, классы далеко не всегда нужны:
Python — невероятно гибкий язык, но классы не всегда лучший выбор. В большинстве случаев стандартные типы, функции и библиотеки предлагают более простые и элегантные решения.
🔍 Когда вы можете обойтись без класса
1. Хранение простых данных
Вместо класса:
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
point = Point(10, 20)
Point = namedtuple('Point', ['x', 'y'])
point = Point(10, 20)
# или
@dataclass
class Point:
x: int
y: int
point = Point(10, 20)
Статические утилиты без состояния
Вместо:
class Utils:
@staticmethod
def add(a, b): return a + b
result = Utils.add(3, 4)
используйте просто функцию:
def add(a, b): return a + b
result = add(3, 4)
Группировка констант
Вместо использования отдельного класса:
class Config:
HOST = 'localhost'
PORT = 8080
можно определить модуль с константами:
HOST = 'localhost'
PORT = 8080
Простые изменяемые состояния
Если нужен лишь список или словарь:
inventory = []
inventory.append('apple')
Операции на лету
Вместо класса с одним методом transform:
result = Transformer().transform([1,2,3])
используйте:
result = [x*2 for x in [1,2,3]]
Стандартная библиотека может уже всё заменить
Например, configparser, json, csv и другие модули часто покрывают функциональность управления конфигурациями без необходимости писать класс вручную.
✅ Когда классы всё же уместны
Используйте классы, если вам действительно нужны:
- Состояние и поведение, связанные вместе
- Наследование и расширяемость
- Капсуляция логики и данных
- Чёткая структура и переиспользуемость
Но многие простые сценарии проще и понятнее реализовать без OOP-механизмов
💡 Почему это важно
Это помогает избежать избыточного кода и упростить архитектуру
Повышает читабельность, особенно для новичков или в небольших скриптах
Снижает перегрузку инициализации, особенно там, где функциональность тривиальна
📌 Подробнее (https://adamgrant.micro.blog/2025/07/24/123050.html)
@Python_Community_ru
You might not need a Python class
You might not need a Python class :: Adam Grant —
Python is an incredibly versatile programming language known for its simplicity and readability. Among its features, the ability to use classes for object-oriented programming is both powerful and frequently recommended. However, classes aren’t always the…
🎙️ Higgs Audio v2 — открытая аудио‑модель, которая обходит GPT‑4o-mini-tts
Boson AI выложили модель синтеза речи, обученную на 10+ млн часов аудио — и она уже показывает лучшие результаты, чем GPT‑4o-mini-tts и другие закрытые системы.
🧠 Что умеет Higgs Audio v2:
- Генерирует естественную, эмоциональную речь
- Поддерживает мультиспикерность и клонирование голосов без дообучения
- Работает в zero-shot: достаточно текст + один голосовой пример
- Озвучка в 24 kHz — звук заметно лучше, чем у многих систем с 16 kHz
📊 Побеждает GPT‑4o-mini-tts в бенчмарках:
- 75.7 % win rate на эмоциях
- 55.7 % win rate на вопросах
- Отличные метрики по точности и качеству речи
🛠️ Открыт код + модели:
- Новый AudioVerse токенизатор (эффективность + качество)
- Dual‑FFN архитектура
- Q-learning для адаптивной выразительности
git clone https://github.com/boson-ai/higgs-audio.git
cd higgs-audio
pip install -r requirements.txt
pip install -e .
🔥 GitHub: https://github.com/boson-ai/higgs-audio
@Python_Community_ru
Boson AI выложили модель синтеза речи, обученную на 10+ млн часов аудио — и она уже показывает лучшие результаты, чем GPT‑4o-mini-tts и другие закрытые системы.
🧠 Что умеет Higgs Audio v2:
- Генерирует естественную, эмоциональную речь
- Поддерживает мультиспикерность и клонирование голосов без дообучения
- Работает в zero-shot: достаточно текст + один голосовой пример
- Озвучка в 24 kHz — звук заметно лучше, чем у многих систем с 16 kHz
📊 Побеждает GPT‑4o-mini-tts в бенчмарках:
- 75.7 % win rate на эмоциях
- 55.7 % win rate на вопросах
- Отличные метрики по точности и качеству речи
🛠️ Открыт код + модели:
- Новый AudioVerse токенизатор (эффективность + качество)
- Dual‑FFN архитектура
- Q-learning для адаптивной выразительности
git clone https://github.com/boson-ai/higgs-audio.git
cd higgs-audio
pip install -r requirements.txt
pip install -e .
🔥 GitHub: https://github.com/boson-ai/higgs-audio
@Python_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
🧱 ИИ теперь сам генерирует миры в духе Minecraft — представлена модель GameFactory
Исследователи обучили модель на 70 часах геймплея Minecraft и добились впечатляющего результата:
GameFactory может создавать процедурные игровые миры — от вулканов до сакуровых лесов, как в культовом симуляторе.
🔥 Хотите свой бесконечный мир — просто задайте параметры.
🟠 Примеры и код — по ссылке: https://yujiwen.github.io/gamefactory/
🟠Github: https://github.com/KwaiVGI/GameFactory
@Python_Community_ru
Исследователи обучили модель на 70 часах геймплея Minecraft и добились впечатляющего результата:
GameFactory может создавать процедурные игровые миры — от вулканов до сакуровых лесов, как в культовом симуляторе.
🔥 Хотите свой бесконечный мир — просто задайте параметры.
🟠 Примеры и код — по ссылке: https://yujiwen.github.io/gamefactory/
🟠Github: https://github.com/KwaiVGI/GameFactory
@Python_Community_ru
🗂 Copyparty — «всё-в-одном» файловый сервер, запускаемый одной командой Python
Что это такое
- Один файл = полноценный NAS: HTTP/HTTPS, WebDAV, FTP, TFTP, Zeroconf
- Быстрые загрузки с возобновлением (resumable)
- Дедупликация, превью, миниатюры, медиабаза, поиск
- Без внешних зависимостей и БД — один .py-файл или standalone .exe/.apk
- Работает на Linux, Windows, macOS, Raspberry Pi
Для чего полезно :
- Создать домашний медиасервер и быстрый обмен файлами в локальной сети
- Раздача билдов/прошивок внутри команды без S3 и лишней админки
- LAN-party или мероприятия, где нужно «одно место» для обмена файлами
> 📝 Чтобы развернуть, достаточно запустить: python3 copyparty.py
⭐ 20 k+ звёзд на GitHub, активная разработка, лицензия MIT — отличный инструмент!
🖥 Github (https://github.com/9001/copyparty)
@Python_Community_ru
Что это такое
- Один файл = полноценный NAS: HTTP/HTTPS, WebDAV, FTP, TFTP, Zeroconf
- Быстрые загрузки с возобновлением (resumable)
- Дедупликация, превью, миниатюры, медиабаза, поиск
- Без внешних зависимостей и БД — один .py-файл или standalone .exe/.apk
- Работает на Linux, Windows, macOS, Raspberry Pi
Для чего полезно :
- Создать домашний медиасервер и быстрый обмен файлами в локальной сети
- Раздача билдов/прошивок внутри команды без S3 и лишней админки
- LAN-party или мероприятия, где нужно «одно место» для обмена файлами
> 📝 Чтобы развернуть, достаточно запустить: python3 copyparty.py
⭐ 20 k+ звёзд на GitHub, активная разработка, лицензия MIT — отличный инструмент!
🖥 Github (https://github.com/9001/copyparty)
@Python_Community_ru
🚀 sebastien/multiplex — Command‑Line Process Multiplexer
Что это: простой CLI и Python API для запуска нескольких процессов параллельно, с гибким управлением зависимостями, задержками и завершением.
Фичи:
- Параллельный или последовательный запуск процессов
- Задержки: +2s, +500ms
- Зависимости: :A, :A&
- Именование процессов и цветной вывод
- Управление через Python API
🔧 Примеры:
- Запуск двух серверов:
multiplex "python -m http.server -p 8000" "python -m http.server -p 8001"
- Сначала сервер, потом бенчмарк:
multiplex "SERVER=python -m http.server" "+2s=ab -n1000 http://localhost:8000/"
- Сценарий: DB → API → тесты:
multiplex "DB=mongod" "API:DB&+2=node server.js" ":API&|end=npm test"
📦 Установка:
pip install multiplex-sh
или просто multiplex.py напрямую с GitHub
🔗 GitHub: https://github.com/sebastien/multiplex
🧰 Подходит всем, кто запускает несколько сервисов — API, БД, фоновые задачи — и хочет сделать это красиво.
@Python_Community_ru
Что это: простой CLI и Python API для запуска нескольких процессов параллельно, с гибким управлением зависимостями, задержками и завершением.
Фичи:
- Параллельный или последовательный запуск процессов
- Задержки: +2s, +500ms
- Зависимости: :A, :A&
- Именование процессов и цветной вывод
- Управление через Python API
🔧 Примеры:
- Запуск двух серверов:
multiplex "python -m http.server -p 8000" "python -m http.server -p 8001"
- Сначала сервер, потом бенчмарк:
multiplex "SERVER=python -m http.server" "+2s=ab -n1000 http://localhost:8000/"
- Сценарий: DB → API → тесты:
multiplex "DB=mongod" "API:DB&+2=node server.js" ":API&|end=npm test"
📦 Установка:
pip install multiplex-sh
или просто multiplex.py напрямую с GitHub
🔗 GitHub: https://github.com/sebastien/multiplex
🧰 Подходит всем, кто запускает несколько сервисов — API, БД, фоновые задачи — и хочет сделать это красиво.
@Python_Community_ru
🔍 Regex не прощает ошибок… но с Python мы найдем выход!
Когда в запросе опечатка (`"prro"` вместо "pro"`) — `re.search() ничего не найдёт.
🙅♂️ Regex: [] → *Ноль результатов*
✅ difflib то что нам нужно!
С SequenceMatcher ты можешь находить похожие строки даже с опечатками.
📌 Пример:
from difflib import SequenceMatcher
def fuzzy_match(query, products, threshold=0.6):
matches = []
for product in products:
ratio = SequenceMatcher(None, query.lower(), product.lower()).ratio()
if ratio >= threshold:
matches.append((product, f"{ratio:.2f}"))
return matches
🧠 Результат:
[('iPhone 14 Pro Max', '0.88')]
📦 Используй difflib для user-friendly поиска и автодополнения. Особенно полезно для:
- Поиска товаров
- Обработки ввода пользователя
- Систем рекомендаций
🔥 Идеально, когда нельзя потерять результат из-за одной буквы!
@Python_Community_ru
Когда в запросе опечатка (`"prro"` вместо "pro"`) — `re.search() ничего не найдёт.
🙅♂️ Regex: [] → *Ноль результатов*
✅ difflib то что нам нужно!
С SequenceMatcher ты можешь находить похожие строки даже с опечатками.
📌 Пример:
from difflib import SequenceMatcher
def fuzzy_match(query, products, threshold=0.6):
matches = []
for product in products:
ratio = SequenceMatcher(None, query.lower(), product.lower()).ratio()
if ratio >= threshold:
matches.append((product, f"{ratio:.2f}"))
return matches
🧠 Результат:
[('iPhone 14 Pro Max', '0.88')]
📦 Используй difflib для user-friendly поиска и автодополнения. Особенно полезно для:
- Поиска товаров
- Обработки ввода пользователя
- Систем рекомендаций
🔥 Идеально, когда нельзя потерять результат из-за одной буквы!
@Python_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
Ведущие ML- и DS-инженеры соберутся 13 и 14 сентября на E-CODE.
Это масштабное IT-событие создано командой Ozon Tech. Вы приглашены, но нужно зарегистрироваться: https://s.ozon.ru/m8XO9ot ⬅
Что будет:
6 контентных треков — один из них для ML/DS.
Выступления известных учёных.
Качественный нетворк — комьюнити middle+ специалистов.
Интеллектуальные интерактивы — и эксклюзивный мерч в подарок.
Вечеринки каждый день — на сцене НТР, Заточка, ILWT и Нейромонах Феофан.
E-CODE — комьюнити-пространство, в котором стоит быть 💙
@Python_Community_ru
Это масштабное IT-событие создано командой Ozon Tech. Вы приглашены, но нужно зарегистрироваться: https://s.ozon.ru/m8XO9ot ⬅
Что будет:
6 контентных треков — один из них для ML/DS.
Выступления известных учёных.
Качественный нетворк — комьюнити middle+ специалистов.
Интеллектуальные интерактивы — и эксклюзивный мерч в подарок.
Вечеринки каждый день — на сцене НТР, Заточка, ILWT и Нейромонах Феофан.
E-CODE — комьюнити-пространство, в котором стоит быть 💙
@Python_Community_ru
⚡️ GGUF-версии GPT-OSS от Unsloth.
Unsloth конвертировали обе GPT-OSS (20B (https://huggingface.co/unsloth/gpt-oss-20b-GGUF) и 120B (https://huggingface.co/unsloth/gpt-oss-120b-GGUF)) и исправили ошибки, чтобы повысить качество инференса.
🟡Оптимальный сетап:
🟢20B работает со скоростью более 10 токенов/с при полной точности на 14 ГБ оперативной памяти.
🟢120B с полной точностью будет давать >40 токенов/с на примерно 64 ГБ ОЗУ.
Минимальных требований для запуска моделей нет, запуститься можно даже если у вас всего 6 ГБ и только CPU, но инференс будет медленнее.
GPU не требуется , особенно для модели 20B, но его наличие значительно увеличивает скорость вывода (~80 токенов/с). С чем-то вроде H100 можно получить пропускную способность 140 токенов/с, и это значительно быстрее, чем у OpenAI в ChatGPT.
Модели можно запустить через llama.cpp, LM Studio или Open WebUI. Если модель 120B слишком медленная, попробуйте версию 20B - она очень быстрая и работает не хуже o3-mini.
Помимо моделей формата GGUF c полной точностью, Unsloth сделали (https://huggingface.co/collections/unsloth/gpt-oss-6892433695ce0dee42f31681) версии с 4-bit и 16-bit точностью. 4-бинтый квант, кстати, можно файнтюнить на 24 ГБ VRAM.
📌 Подробная пошаговая инструкция по локальному запуску и файнтюну - в документации (https://docs.unsloth.ai/basics/gpt-oss-how-to-run-and-fine-tune) Unsloth.
🟡Набор моделей (https://huggingface.co/collections/unsloth/gpt-oss-6892433695ce0dee42f31681)
🟡Документация (https://docs.unsloth.ai/basics/gpt-oss-how-to-run-and-fine-tune)
@ai_machinelearning_big_data
#AI #ML #GPTOSS #GGUF #Unsloth
@Python_Community_ru
Unsloth конвертировали обе GPT-OSS (20B (https://huggingface.co/unsloth/gpt-oss-20b-GGUF) и 120B (https://huggingface.co/unsloth/gpt-oss-120b-GGUF)) и исправили ошибки, чтобы повысить качество инференса.
🟡Оптимальный сетап:
🟢20B работает со скоростью более 10 токенов/с при полной точности на 14 ГБ оперативной памяти.
🟢120B с полной точностью будет давать >40 токенов/с на примерно 64 ГБ ОЗУ.
Минимальных требований для запуска моделей нет, запуститься можно даже если у вас всего 6 ГБ и только CPU, но инференс будет медленнее.
GPU не требуется , особенно для модели 20B, но его наличие значительно увеличивает скорость вывода (~80 токенов/с). С чем-то вроде H100 можно получить пропускную способность 140 токенов/с, и это значительно быстрее, чем у OpenAI в ChatGPT.
Модели можно запустить через llama.cpp, LM Studio или Open WebUI. Если модель 120B слишком медленная, попробуйте версию 20B - она очень быстрая и работает не хуже o3-mini.
Помимо моделей формата GGUF c полной точностью, Unsloth сделали (https://huggingface.co/collections/unsloth/gpt-oss-6892433695ce0dee42f31681) версии с 4-bit и 16-bit точностью. 4-бинтый квант, кстати, можно файнтюнить на 24 ГБ VRAM.
📌 Подробная пошаговая инструкция по локальному запуску и файнтюну - в документации (https://docs.unsloth.ai/basics/gpt-oss-how-to-run-and-fine-tune) Unsloth.
🟡Набор моделей (https://huggingface.co/collections/unsloth/gpt-oss-6892433695ce0dee42f31681)
🟡Документация (https://docs.unsloth.ai/basics/gpt-oss-how-to-run-and-fine-tune)
@ai_machinelearning_big_data
#AI #ML #GPTOSS #GGUF #Unsloth
@Python_Community_ru
🐉 Windmill — open-source платформа для разработки внутренних инструментов, которая превращает скрипты в готовые API, фоновые задачи и веб-интерфейсы. Проект позиционируется как альтернатива коммерческим решениям вроде Retool или Superblocks, но с акцентом на гибкость и self-hosted развёртывание.
Интересно реализована идея автоматической генерации UI: достаточно написать скрипт на Python, TypeScript, Go или Bash и Windmill создаст для него веб-форму с параметрами. Готовые скрипты можно комбинировать в сложные workflows или встраивать в low-code приложения. Под капотом — Rust, Postgres и sandbox-исполнение через nsjail для безопасности.
🤖 GitHub (https://github.com/windmill-labs/windmill)
@Python_Community_ru
Интересно реализована идея автоматической генерации UI: достаточно написать скрипт на Python, TypeScript, Go или Bash и Windmill создаст для него веб-форму с параметрами. Готовые скрипты можно комбинировать в сложные workflows или встраивать в low-code приложения. Под капотом — Rust, Postgres и sandbox-исполнение через nsjail для безопасности.
🤖 GitHub (https://github.com/windmill-labs/windmill)
@Python_Community_ru
🛞 CrossHair — необычный инструмент для анализа Python-кода, который использует символьное выполнение для поиска ошибок. Вместо традиционных тестов он проверяет корректность функций, анализируя их поведение на основе аннотаций типов и контрактов.
Под капотом работает SMT-решатель, который ищет входные данные, нарушающие условия. Например, может автоматически обнаружить, что ваша функция падает на отрицательных числах, хотя в контракте указано x: PositiveInt. Интегрируется с Hypothesis и популярными IDE.
🤖 GitHub (https://github.com/pschanely/CrossHair)
@Python_Community_ru
Под капотом работает SMT-решатель, который ищет входные данные, нарушающие условия. Например, может автоматически обнаружить, что ваша функция падает на отрицательных числах, хотя в контракте указано x: PositiveInt. Интегрируется с Hypothesis и популярными IDE.
🤖 GitHub (https://github.com/pschanely/CrossHair)
@Python_Community_ru
⚠️ Внимание: фишинг-атака на разработчиков Python. Злоумышленники рассылают поддельные письма от имени PyPI с домена pypj.org, требуя "подтвердить email".
Уже пострадал популярный пакет num2words (3M+ загрузок/месяц) — через захваченные аккаунты были выпущены вредоносные обновления. Атака повторяет недавний инцидент с NPM, где скомпрометировали пакеты с 100M+ загрузок в неделю.
🔗 Ссылка - *клик* (https://blog.pypi.org/posts/2025-07-31-incident-report-phishing-attack/)
@Python_Community_ru
Уже пострадал популярный пакет num2words (3M+ загрузок/месяц) — через захваченные аккаунты были выпущены вредоносные обновления. Атака повторяет недавний инцидент с NPM, где скомпрометировали пакеты с 100M+ загрузок в неделю.
🔗 Ссылка - *клик* (https://blog.pypi.org/posts/2025-07-31-incident-report-phishing-attack/)
@Python_Community_ru