Python/ django
61.5K subscribers
2.2K photos
104 videos
48 files
2.93K links
по всем вопросам @haarrp

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

@ai_machinelearning_big_data -ML

@ArtificialIntelligencedl -AI

@datascienceiot - 📚

@pythonlbooks

РКН: clck.ru/3FmxmM
Download Telegram
🧪 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
14👍5🔥3😁3
🐍 Почему Python `deepcopy()` такой медленный и что использовать вместо него

Функция copy.deepcopy() кажется удобной: она создаёт полную копию объекта со всеми вложенными структурами. Но на практике она часто оказывается очень медленной и становится бутылочным горлышком в проектах. Давайте разберёмся почему так происходит и какие есть альтернативы.

🔥 Почему deepcopy() тормозит
1. Рекурсия на всём дереве объектов
Python проходит по каждому вложенному элементу, даже если их сотни тысяч.

2. Определение метода копирования
Для каждого объекта проверяется, можно ли вызвать __deepcopy__, или приходится идти стандартным путём.

3. Memo-словарь для ссылок
Чтобы избежать бесконечных циклов при копировании (например, объект ссылается сам на себя), Python ведёт словарь уже скопированных элементов. Это полезно, но замедляет работу.

4. Реализация на чистом Python
В отличие от сериализации (`pickle`), deepcopy() не ускорена на уровне C, поэтому работает медленнее.

📊 Пример замеров скорости


import copy, pickle, time

data = [[i for i in range(1000)] for _ in range(1000)]

# deepcopy
start = time.time()
a = copy.deepcopy(data)
print("deepcopy:", time.time() - start)



# pickle
start = time.time()
b = pickle.loads(pickle.dumps(data))
print("pickle roundtrip:", time.time() - start)



# list comprehension (для списков списков)
start = time.time()
c = [sub[:] for sub in data]
print("manual copy:", time.time() - start)


💻 Результат (у вас может отличаться, но смысл тот же):

- deepcopy: ~2.5 сек
- pickle: ~0.8 сек
- ручное копирование: ~0.02 сек (!)

Когда что использовать

copy.deepcopy()
Подходит, если структура очень сложная, а вам нужна стопроцентно независимая копия.

pickle.loads(pickle.dumps(obj))
Быстрее на больших структурах, плюс удобно, если данные нужно сохранять.

json.loads(json.dumps(obj))
Хорошо для простых словарей и списков с базовыми типами.

Ручное копирование (list comprehension, dict comprehension)
Лучший вариант, если вы знаете структуру данных и хотите максимум скорости.

📌 Итог
deepcopy() — это универсальный инструмент, но он платит за универсальность скоростью.
Если важна производительность — используйте сериализацию или ручные методы копирования, они могут быть в десятки и сотни раз быстрее.

Ставь 🔥, сохраняй себе в копилку Python-трюков, чтобы не забыть 😉

@pythonl
1🔥2611👍7
🌟 Большой гайд по TOML и tomllib на Python

TOML стал стандартом для конфигурации Python-проектов благодаря своей простоте и читаемости. Начиная с Python 3.11, вы можете парсить TOML-файлы встроенным модулем tomllib без установки дополнительных зависимостей. Это удобно для работы с pyproject.toml и конфигами инструментов вроде pytest, mypy и black.

Хотя tomllib поддерживает только чтение файлов, его возможностей хватает для большинства задач. Для записи и сложного редактирования TOML можно использовать библиотеки toml или tomlkit. В статье подробно разбираются примеры чтения конфигов и работа с pyproject.toml.

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

@pythonl
8👍6🔥1
Forwarded from Machinelearning
🎙️ NVIDIA выпустили Canary-1B v2 — открытую модель для распознавания и перевода речи, которая работает с 25 европейскими языками.

Что она умеет:
- 📝 Точное ASR (распознавание речи) и AST (перевод речи) между английским и 24 другими языками.
- Автоматическая пунктуация, капитализация и точные таймстампы до слова.
- Поддержка русского, французского, немецкого, испанского и многих других языков.

Чем интересна
- До 10× быстрее инференс, чем у моделей в 3 раза больше.
- Уже показывает state-of-the-art точность среди открытых моделей на Hugging Face.
- Лицензия CC-BY-4.0 — можно свободно использовать в проектах.

Под капотом:
- Архитектура: FastConformer-энкодер + Transformer-декодер (~978M параметров).
- Форматы: .wav и .flac, моно 16 кГц.
- Легко интегрируется через NVIDIA NeMo или прямо с Hugging Face.

Где пригодится:
🟢 голосовые ассистенты
🟢 субтитры и перевод видео
🟢 чат-боты с речевым вводом
🟢 real-time анализ речи

Всего ~978M параметров → легче, быстрее и дешевле в использовании, чем большие модели конкурентов.

🟠 Попробовать можно здесь: https://huggingface.co/nvidia/canary-1b-v2
🟠SET: https://huggingface.co/datasets/nvidia/Granary
🟠PARAKEET: https://huggingface.co/nvidia/parakeet-tdt-0.6b-v3

@ai_machinelearning_big_data


#AI #NVIDIA #SpeechRecognition #ASR #AST #Multilingual #MachineLearning #DeepLearning
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
17👍9🔥6
Монолитные тесты = больше головной боли при отладке.
Когда в одном тесте проверяешь всё подряд, при падении непонятно, какой именно сценарий сломался.

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

Плохо:

def test_extract_sentiment():
assert extract_sentiment("I love this!") == "positive"
assert extract_sentiment("Terrible") == "negative"
assert extract_sentiment("On time") == "neutral"


Хорошо:

def test_extract_sentiment_positive():
assert extract_sentiment("I love this!") == "positive"

def test_extract_sentiment_negative():
assert extract_sentiment("Terrible") == "negative"


📌 Результат — быстрее находишь баги и не тратишь время на догадки.
👍1210🔥4
🚀 FastMCP 2.0 — новый стандарт для интеграции LLM в Python-приложения. Этот фреймворк для работы с упрощает подключение языковых моделей к внешним ресурсам. Инструмент предлагает стандартизированный способ предоставления данных, инструментов и шаблонов запросов для ИИ-приложений.

Проект имеет минималистичный синтаксис: достаточно декоратора @mcp.tool, чтобы превратить обычную Python-функцию в инструмент, доступный для LLM. Проект развивается как альтернатива официальному MCP SDK и уже включает клиентские библиотеки, систему аутентификации и инструменты для тестирования. При этом система автоматически генерирует схему на основе type hints и docstrings.

🤖 GitHub

@pythonl
14👍6🔥5
⚡️ DeepCode — открытая AI-платформу для автоматической генерации кода.

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

🔹 Основные возможности:
• Paper2Code — реализация идей из исследований в рабочий код
• Text2Web — генерация интерфейсов по описанию
• Text2Backend — автоматическое создание масштабируемых серверов
• Поддержка длинных документов и многофайловых проектов

🔜 В ближайшее время разработчики обещают:
• Автоматическую проверку и валидацию кода
• Повышение скорости генерации
• Улучшенную работу с требованиями
• Бенчмарки воспроизведения научных статей (PaperBench)

Проект полностью open source: https://github.com/HKUDS/DeepCode

@pythonl

#deepcode #AI #coding
Please open Telegram to view this post
VIEW IN TELEGRAM
15👍7🔥4
📌Python на взлете, а Python Software Foundation в минусе на 1.5 млн. долларов: разбираем свежий опрос.

Python Software Foundation (PSF) совместно с JetBrains опубликовала результаты восьмого, самого крупного в истории опроса разработчиков - в нём приняли участие более 30 000 человек.

Данные, собранные в конце 2024 года, показывают, что 72% респондентов используют Python в рабочих целях и это подтверждает доминирующую роль языка в индустрии. И популярность Python продолжает расти: согласно другому исследованию, от Stack Overflow, использование языка увеличилось на 7%.

🟡Приток свежей крови в экосистему.

Половина опрошенных имеют менее 2 лет профессионального опыта в программировании, а 39% начали использовать Python в течение последних 2 лет. Это говорит о том, что язык активно привлекает новичков и остается ключевой точкой входа в разработку.

🟡Парадокс версий.

Только 15% разработчиков используют последнюю на момент опроса версию, 3.13. В PSF утверждают, что массовый переход на нее мог бы сэкономить миллионы долларов на облачных вычислениях за счет повышения эффективности.

Однако сами разработчики не торопятся: 53% заявляют, что текущая версия полностью удовлетворяет их потребности, 27% ссылаются на проблемы с совместимостью, а 25% - на нехватку времени.

При этом нельзя сказать, что сообщество инертно. Самая популярная версия - 3.12 (35%), выпущенная в конце 2023 года, за ней следует 3.11 (21%), что говорит о довольно быстрой адаптации к не самым последним, но свежим релизам.

🟡Сферы применения.

Анализ данных (48%) и веб-разработка (46%) идут практически вровень. Но если к анализу прибавить ML (41%) и инжиниринг данных (31%), то доминирование Data Science становится очевидным.

В мире веб-фреймворков происходит смена караула: FastAPI (38%) резко вырвался вперед, обогнав ветеранов: Django (35%) и Flask (34%). Год назад у FastAPI было всего 29%.

Ещё один стремительный взлёт — у написанного на Rust менеджера пакетов uv, который позиционируется как замена pip. Заявляя о кратном превосходстве в скорости, он уже отхватил 11% пользователей.

А вот в лагере IDE плохие новости для спонсора опроса, JetBrains: Visual Studio Code укрепил свое лидерство, набрав 48% (против 41% в прошлом году), а доля PyCharm снизилась до 25% (с 31%).

🟡Финансовые проблемы Python Software Foundation.

Ранее в этом месяце PSF объявила о приостановке своей грантовой программы из-за нехватки средств.

Годовой отчет за 2024 год показал чистый убыток в размере 1 462 000 долларов, что значительно больше, чем в 2023 году, там убыток был 225 000 долларов.

Фонд, который поддерживает репозиторий PyPI, дистрибуцию самого Python и нанимает разработчиков для CPython, оказался в сложной ситуации и явно нуждается в большей поддержке и ресурсах от корпораций, которые строят свой бизнес и получают доход на Python.


@pythonl

#news #ai #ml #python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍247🔥5
🔋 PikaPython — ультралегкий интерпретатор Python для микроконтроллеров. Проект позволяет запускать Python-код на устройствах с 4 КБ RAM и 64 КБ Flash. Не требует операционной системы и работает через REPL по UART.

Инструмент имеет встроенный прекомпилятор для автоматической генерации биндингов C-функций из .pyi файлов. Есть готовые BSP для популярных MCU и демо-проекты.

🤖 GitHub

@pythonl
22🔥9👍4
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Walrus оператор := — присвоение прямо в выражении

В Python есть малоизвестная фишка: можно использовать оператор присваивания := (его ещё называют «walrus»). Он позволяет присваивать значение прямо внутри выражения. Это делает код короче и избавляет от повторных вызовов функций.

📌 Особенности:
• Работает в while, if, list comprehension.
• Удобен для сокращения кода и избежания дублирования.
• Но злоупотребление может сделать код менее читаемым.

🟢Пример: удобно при чтении строк из файла или работе с регулярными выражениями.


Чтение строк из файла с walrus-оператором

def read_file(path):
with open(path) as f:
while (line := f.readline()):
print("Строка:", line.strip())

# Поиск совпадения через regex
import re
pattern = re.compile(r"\d+")

if (match := pattern.search("abc123xyz")):
print("Нашли число:", match.group())

# Применение в list comprehension
nums = [s for s in ["42", "hello", "100"] if (n := s.isdigit())]

print(nums) # ['42', '100']


📌 Больше фишек Python

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
15👍9🔥7😱3
🐍 Полезный совет по Python: используйте "".join() вместо конкатенации строк в цикле

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


words = ["Python", "очень", "крут"]
result = ""
for w in words:
result += w + " "
print(result)


Код рабочий, но неэффективный: при каждой конкатенации создаётся новая строка, что сильно замедляет работу на больших объёмах данных.

🚀 Правильный способ — использовать " ".join():


words = ["Python", "очень", "крут"]
result = " ".join(words)
print(result)


💡 Преимущества:

- Быстрее и эффективнее на больших списках
- Код чище и короче
-Можно легко задавать разделитель (пробел, запятая, \n)

📊 Пример:


lines = ["строка 1", "строка 2", "строка 3"]
text = "\n".join(lines)
print(text)


Вывод:

строка 1
строка 2
строка 3


📌 Итог
Используйте "".join() для объединения строк из списка — это питонично, быстро и удобно.
👍348🔥6😁1
🚀 Docker + Python полезный совет

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


# Этап сборки зависимостей
FROM python:3.12-slim AS builder
WORKDIR /app
COPY requirements.txt .
RUN pip install --user -r requirements.txt

# Финальный минимальный образ
FROM python:3.12-slim
WORKDIR /app
COPY --from=builder /root/.local /root/.local
COPY . .

ENV PATH=/root/.local/bin:$PATH
CMD ["python", "app.py"]


💡 Такой подход уменьшает размер образа и ускоряет деплой.
Вместо гигабайт вы получаете лёгкий production-контейнер с только нужным кодом и либами.

@pythonl
1👍2512🔥6😱1
🖥 Полный проект с нуля: клон голоса на Python

🔊 Клонирование голоса на Python с нуля: пошаговый разбор, рабочий код, проверка сходства и защита с водяными знаками.

Полное руководство для разработчиков по созданию собственного проекта voice cloning.

📌 Читать

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
👍106🔥3😁1
📊 Из PDF в DataFrame за пару строк кода

Работаете с финансовыми отчётами или любыми табличными данными в PDF?
С библиотекой docling это становится максимально просто.

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

Docling закрывает весь процесс — от сырых PDF до структурированных и готовых к поиску данных — в одном решении.

📌 Преимущество Docling
🔹 Поддержка PDF, DOCX, PPTX, HTML и изображений
🔹 AI-модель TableFormer для понимания сложных таблиц
🔹 Vision-модели для OCR и image-to-text
🔹 Простой экспорт в pandas DataFrame, JSON и Markdown

Пример: конвертируем PDF с отчётом о доходах и сразу получаем pandas DataFrame 👇


from docling.document_converter import DocumentConverter

converter = DocumentConverter()
result = converter.convert("financial_report.pdf")

for table in result.document.tables:
df = table.export_to_dataframe()


📌 Github

@pythonl

#AI #RAG #Docling #DataEngineering #PDF
Please open Telegram to view this post
VIEW IN TELEGRAM
👍197🔥5🤩2
☕️ JPype — проект, позволяющий вызывать Java-код напрямую из Python-скриптов. В отличие от Jython, JPype не переписывает Python на Java, а создает мост между двумя виртуальными машинами через нативные интерфейсы.

Инструмент сохраняет доступ ко всем возможностям CPython и Java-библиотек одновременно. Это открывает возможности для использования Java-фреймворков в научных вычислениях на Python, тестирования Java-кода через Python-скрипты и интеграции legacy-систем.

🤖 GitHub

@pythonl
👍209🔥5
Media is too big
VIEW IN TELEGRAM
🚀 Jupyter Agent 2

Этот агент умеет:
📂 Загружать данные
💻 Запускать код
📊 Строить графики прямо в Jupyter — быстрее, чем вы успеете прокрутить экран!

🤖 Основан на движке Qwen3-Coder
⚡️ Работает на Cerebras
⚙️ Запускается в E2B
↕️ Поддерживает загрузку файлов

👉 Попробовать можно здесь: https://hf.co/spaces/lvwerra/jupyter-agent-2

@pythonl
👍116🔥3😁2
🐍 Изучаем MCP на Python — серия уроков от Microsoft

Пошаговое руководство для Python-разработчиков по Model Context Protocol (MCP):
как понять концепцию и построить свой MCP-сервер в интерактивном формате.

📚 Репозиторий с гайдом

#python #MCP #tutorial #developers
9🔥5👍3
Тренировки Яндекса по алгоритмам: от решения задач к карьере в IT

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

Программа включает восемь ключевых тем: множества, словари, динамическое программирование и не только. Лекции и разборы будет вести Михаил Густокашин — директор Центра студенческих олимпиад ВШЭ и тренер чемпионов мира по программированию.

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

Подать заявку можно до 29 сентября.
5🔥3😁3👍1😢1