Python/ django
61.4K subscribers
2.2K photos
96 videos
48 files
2.92K links
по всем вопросам @haarrp

@itchannels_telegram - 🔥 все ит-каналы

@ai_machinelearning_big_data -ML

@ArtificialIntelligencedl -AI

@datascienceiot - 📚

@pythonlbooks

РКН: clck.ru/3FmxmM
Download Telegram
🛠️ Microsoft Research выложили в open-source новый инструмент — Debug-Gym.

Это песочница, где LLM‑агенты могут:
Ставить брейкпоинты
Чекать переменные
Перезаписывать файлы, пока тесты не позеленеют

Всё изолировано в Docker — безопасно при проведение тестов.

📊 Протестировано 9 моделей на 3 бенчмарках. В эксперименте модели решали 300 багов — с доступом к Debug-Gym и без.
Когда агентам дали дебаг‑инструменты, их точность выросла. Но даже лучшие решили <50% задач на SWE‑bench Lite.

Писать код ИИ уже умеет.
Дебажить — пока нет.
А это и есть самая трудная часть.

Microsoft уже работает над обучением моделей для поиска информации при отладке, как RAG — но для дебага.

🔗 Сам инструмент: https://microsoft.github.io/debug-gym/
🔗Статья: https://arxiv.org/abs/2503.21557

@pythonl

#microsoft #ai #ml
10👍4🔥3
🔍 Regex не прощает ошибок… но с Python мы найдем выход!

Когда в запросе опечатка (`"prro"` вместо "pro"`) — `re.search() ничего не найдёт.

🙅‍♂️ Regex: [] → *Ноль результатов*

diff​lib то что нам нужно!
С 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 поиска и автодополнения. Особенно полезно для:
- Поиска товаров
- Обработки ввода пользователя
- Систем рекомендаций

🔥 Идеально, когда нельзя потерять результат из-за одной буквы!

@pythonl
👍188🔥6😁2
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 — комьюнити-пространство, в котором стоит быть 💙
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥4
🔥 Быстро превращай словарь в именованный кортеж (`namedtuple`) — красиво, удобно, читаемо


from collections import namedtuple

Parts = {
'id_num': '1234',
'desc': 'Ford Engine',
'cost': 1200.00,
'amount': 10
}

parts = namedtuple('Parts', Parts.keys())(**Parts)
print(parts)
# Parts(amount=10, cost=1200.0, id_num='1234', desc='Ford Engine')


💡 Зачем это нужно?

Получаешь доступ к полям как к атрибутам (parts.id_num)

Удобно для структурированных данных (например, из JSON или API)

Легко отлаживать и читать

📌 Полезный приём, если хочешь избавиться от лишнего dict['ключ'] — и сделать код чуть "чище".

@pythonl
11👍6🔥3😁3
Forwarded from Machinelearning
⚡️ GGUF-версии GPT-OSS от Unsloth.

Unsloth конвертировали обе GPT-OSS (20B и 120B) и исправили ошибки, чтобы повысить качество инференса.

🟡Оптимальный сетап:

🟢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 сделали версии с 4-bit и 16-bit точностью. 4-бинтый квант, кстати, можно файнтюнить на 24 ГБ VRAM.

📌 Подробная пошаговая инструкция по локальному запуску и файнтюну - в документации Unsloth.


🟡Набор моделей
🟡Документация


@ai_machinelearning_big_data

#AI #ML #GPTOSS #GGUF #Unsloth
Please open Telegram to view this post
VIEW IN TELEGRAM
👍87🔥4
🐉 Windmill — open-source платформа для разработки внутренних инструментов, которая превращает скрипты в готовые API, фоновые задачи и веб-интерфейсы. Проект позиционируется как альтернатива коммерческим решениям вроде Retool или Superblocks, но с акцентом на гибкость и self-hosted развёртывание.

Интересно реализована идея автоматической генерации UI: достаточно написать скрипт на Python, TypeScript, Go или Bash и Windmill создаст для него веб-форму с параметрами. Готовые скрипты можно комбинировать в сложные workflows или встраивать в low-code приложения. Под капотом — Rust, Postgres и sandbox-исполнение через nsjail для безопасности.

🤖 GitHub

@pythonl
8🔥7👍4
🛞 CrossHair — необычный инструмент для анализа Python-кода, который использует символьное выполнение для поиска ошибок. Вместо традиционных тестов он проверяет корректность функций, анализируя их поведение на основе аннотаций типов и контрактов.

Под капотом работает SMT-решатель, который ищет входные данные, нарушающие условия. Например, может автоматически обнаружить, что ваша функция падает на отрицательных числах, хотя в контракте указано x: PositiveInt. Интегрируется с Hypothesis и популярными IDE.

🤖 GitHub

@pythonl
4🔥4👍3
⚠️ Внимание: фишинг-атака на разработчиков Python. Злоумышленники рассылают поддельные письма от имени PyPI с домена pypj.org, требуя "подтвердить email".

Уже пострадал популярный пакет num2words (3M+ загрузок/месяц) — через захваченные аккаунты были выпущены вредоносные обновления. Атака повторяет недавний инцидент с NPM, где скомпрометировали пакеты с 100M+ загрузок в неделю.

🔗 Ссылка - *клик*

@pythonl
😢185🔥4👍3
Яндекс создаёт продукты и сервисы для миллионов пользователей. Нейросетевой поиск, умные устройства, машинный перевод — задачи, где нет готовых решений.

Поэтому нам нужны сильные бэкенд-разработчики! Если у вас от 5 лет опыта на C++, Python, Java или Go — участвуйте в Мультитреке.

Как это работает
• Подаёте заявку до 18 августа
• Проходите технические секции 23 и 24 августа
• Получаете офер 24 августа

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

Узнайте подробности и оставьте заявку.
6😁3🔥2
🎧 Abogen — оффлайн‑инструмент для создания аудиокниг с субтитрами

Преобразуй EPUB, PDF или текстовые файлы в аудиокниги с естественным голосом — и получи синхронизированные субтитры. Всё локально. Всё бесплатно. Всё быстро.

🛠 Что умеет:
- Поддержка EPUB / PDF / TXT
- Озвучка с помощью Kokoro‑82M (TTS модель)
- Автоматическая генерация субтитров (по словам или предложениям)
- Микширование голосов (Voice Mixer)
- Пакетная обработка книг (Queue Mode)
- Работает офлайн на Windows, Linux и macOS

⚡️ Быстро: 3 мин текста — за 10–15 сек на RTX 2060
🧠 Полный контроль — никакого облака, только локальный запуск

📦 GitHub: https://github.com/denizsafak/abogen

@pythonl
👍145🔥2😁2🤩1
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Нужно временно отключить все принты — например, в проде или при юнит-тестах?

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

На экране простой способ сделать это через контекстный менеджер — без сторонних библиотек и без комментирования строк.


import sys, os
from contextlib import contextmanager

@contextmanager
def suppress_print():
saved = sys.stdout
sys.stdout = open(os.devnull, 'w')
yield
sys.stdout.close()
sys.stdout = saved

Пример:

print("Это видно")
with suppress_print():
print("А это — нет")
print("Снова видно")


@python_job_interview - вопросы с собеседований Python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍117😁6🔥4😢1
🖥 Теперь писать сложные промты самому не обязательно — OpenAI выпустили генератор, который превращает даже простой запрос в подробную инструкцию для ИИ.

Принцип простой: описываете, что хотите получить, нажимаете Optimize — GPT-5 анализирует запрос и выдаёт готовый детализированный промт. Работает бесплатно.

Инструмент может упростить работу с любыми нейросетями, особенно если у вас нет опыта в составлении промтов.

Готовый вы можете сразу попробовать в @Chatgpturbobot
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍3🔥3😁2
🖥 Second‑Me

Это ваш “цифровой двойник”: агент, который обучается на ваших заметках, письмах и постах и помогает вести аккаунты в соцсетях.

В 2025 году проект получил крупное обновление — добавлен модуль для управления площадками вроде LinkedIn и Airbnb, а также улучшена персонализация бота.

https://github.com/mindverse/Second-Me

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥5👍4😱3
📰 Python без GIL: новая эра многопоточности

Недавно в Python 3.13 появилась экспериментальная возможность отключить Global Interpreter Lock — механизм, который десятилетиями ограничивал настоящую многопоточность в Python. Теперь можно сравнить производительность обычной и свободнопоточной версий интерпретатора.

Тесты с CPU-интенсивными задачами показывают ускорение в 3-4 раза при использовании 4 потоков в версии без GIL. Однако за это приходится платить: усложняется сборка мусора, требуется новая система управления памятью, а некоторые объекты становятся просто бессмертными.

Пока free-threaded Python остаётся опциональным, но в будущих версиях, начиная с 3.14, он может стать стандартом. Главный вопрос — насколько быстро сообщество и библиотеки адаптируются к этим изменениям.

🔗 Ссылка - *клик*

@pythonl
20👍10🔥4😁1🤩1
SafeWave_10 — десять лет бороздим океан карьеры

Если ты студент и держишь курс на развитие в IT, то 26 августа у тебя есть шанс поймать попутный ветер и попасть на празднование юбилея SafeBoard — программы IT-стажировок от «Лаборатории Касперского».
На одной волне летнего open air окажутся студенты, выпускники программы SafeBoard и эксперты ЛК

Когда: 26 августа 2025
Где: Офис Kaspersky, Москва, Ленинградское шоссе, 39А, стр. 3 + онлайн трансляция

Что в программе:

• Реальные истории от бывших стажеров, ставших экспертами (спойлер — один из них стал СТО)
• Интерактивная лекция о том, как разные типы людей двигают команду к большому успеху
• Музыкальное импров-шоу, розыгрыш мерча, активити-точки и HR-зона для желающих попасть в нашу команду
• И куда же без нетворкинга с компанией единомышленников

Стажировка в Kaspersky — как экспедиция под наставничеством опытных капитанов, регистрируйся чтобы подготовиться к большому плаванию!

https://kas.pr/x7yw?erid=2W5zFK8k4mv

Реклама. АО «Лаборатория Касперского» ИНН 7713140469
5👍3
📸 Разработчик запустил свой код на сервере, имея лишь возможность изменения содержимого комментария в Python-скрипте

Участник соревнования UIUCTF 2025 обошёл ограничения задачи, где можно было изменять только содержимое комментария в Python-скрипте и подробно рассказал об этом. Вместо поиска уязвимостей в парсере, он использовал особенность интерпретатора — выполнение ZIP-архивов как Python-кода.

Секрет в структуре ZIP-файлов: Python ищет метаданные в конце архива, что позволило вставить архив в комментарий, сохранив валидность исходного скрипта. При запуске такого скрипта выполнялся код из main.py внутри архива.

🔗 Ссылка - *клик*

@pythonl
21👍10🔥7
This media is not supported in your browser
VIEW IN TELEGRAM
🚀 УСКОРЕНИЕ КОДА ЗА СЧЁТ ЛОКАЛЬНЫХ ПЕРЕМЕННЫХ

💡 Используй локальные переменные внутри циклов — это может ускорить выполнение на 20–30%, особенно в критичных по времени участках.

Почему это работает?
В Python доступ к локальной переменной быстрее, чем к глобальной или объектной, потому что локальные хранятся в массиве, а не в словаре.

Пример:


# Медленно: обращение к свойствам объекта в цикле
class Processor:
def __init__(self, data):
self.data = data

def compute(self):
total = 0
for item in self.data:
total += item * item
return total



# Быстрее: кэшируем ссылку на data как локальную переменную
class Processor:
def __init__(self, data):
self.data = data

def compute(self):
data = self.data # локальная переменная
total = 0
for item in data:
total += item * item
return total

# Прирост в скорости особенно заметен при больших объёмах данных```
👍2815🔥7
Разбираем тестовое задание в Яндекс на позицию Junior аналитика данных

Тестовое задание — важная часть трудоустройства аналитика. Это шанс показать свои навыки на практике и получить оффер мечты.

Приглашаем на бесплатный вебинар, где Андрон Алексанян — эксперт в области аналитики и CEO школы аналитики Simulative — в прямом эфире разберет тестовое задание в Яндекс на позицию Junior аналитика данных.

⚡️На вебинаре вы:
🟠узнаете, какие навыки и знания необходимы для успешного выполнения заданий;
🟠поймёте, что хочет увидеть работодатель;
🟠получите советы и лайфхаки;
🟠вместе с Андроном разберете в прямом эфире реальный пример тестового 🔥


Чему именно научимся на вебинаре:
🟠С помощью Pandas проанализируем Яндекс-запросы за несколько недель, загрузив их из json-файла;
🟠Найдем закономерности и отличия использования сервиса на мобильных устройствах и компьютерах;
🟠Разберем фишки Pandas: сложную агрегацию, маппинг, конкатенацию, чейнинг и др.


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

😶Зарегистрироваться на бесплатный вебинар
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍3
🖥 Разбираем Новые версии: Django 5.2.5 и Python 3.13.6

Django 5.2.5 (релиз — 6 августа 2025)
- Тип релиза: патч-релиз, устраняющий ошибки версии 5.2.4.
- Ключевые исправления:
- Восстановлена поддержка стратегии UNNEST в QuerySet.bulk_create() для PostgreSQL.
- Улучшена фильтрация по составному первичному ключу через tuple-выражения.
- Исправлены ошибки валидации модели при использовании GeneratedField, Q и Case.
- Добавлена совместимость с docutils версии 0.22.
- Исправлен сбой при использовании ManyToManyField с составным первичным ключом — обновлены проверки fields.E347.

Python 3.13.6 (релиз — 6 августа 2025)
- Тип релиза: шестой maintenance-релиз ветки 3.13, включает около 200 исправлений, улучшений сборки и обновлений документации.
- Ключевые особенности Python 3.13 по сравнению с 3.12:
- Новый усовершенствованный REPL с многострочным редактированием, цветным выводом и цветными трассировками ошибок.
- Экспериментальный free-threaded build mode (отключение GIL), доступен в виде python3.13t`/`python3.13t.exe.
- Встроенный экспериментальный JIT-компилятор (по-умолчанию отключён).
- locals() теперь имеет определённые семантики при мутации возвращаемого словаря.
- Включена изменённая версия mimalloc (по-умолчанию, если доступно), обязательна для free-threaded режима.
- Докстринги теперь очищаются от начальной отступной, что снижает объём `.pyc`-файлов.
- Новый бэкенд dbm.sqlite3 используется по умолчанию при создании файлов.
- Минимальная поддерживаемая версия macOS повысилась до 10.13 (High Sierra).
- Безопасность:
- Исправлена проблема, при которой фильтры filter="data" и filter="tar" в tarfile можно было обойти с помощью специально созданных сим- и жёстких ссылок.

Вывод:
- Django 5.2.5 — важный патч-релиз LTS-ветки, рекомендован для обновления производственных систем.
- Python 3.13.6 — очередной maintenance-релиз с множеством багфиксов и улучшений, особенно интересен разработчикам, работающим с производительностью (REPL, JIT, free-threaded).

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

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
11🔥9👍6😁5
🧪 uQLM — движок для SQL‑запросов к LLM, разработанный в CVS Health

Что если к языковой модели можно обращаться как к обычной базе данных?

💡 uQLM (Universal Query Language for Models) позволяет писать SQL‑подобные запросы, чтобы:

Обращаться к LLM как к таблице
Фильтровать, агрегировать и комбинировать ответы
Подключать собственные модели и источники данных
Использовать привычный синтаксис SQL без prompt-инженерии

📌 Пример запроса:

SELECT generate_response(prompt)
FROM gpt4
WHERE prompt LIKE '%explain%'
LIMIT 5;


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

🔗 GitHub: https://github.com/cvs-health/uqlm

@pythonl
13👍5🔥3😁3