Python Portal
55.5K subscribers
2.46K photos
395 videos
51 files
1K links
Всё самое интересное из мира Python

Связь: @devmangx

РКН: https://clck.ru/3GMMF6
Download Telegram
Для тех, кто регулярно работает с PDF, где данные как будто намеренно спрятали (таблицы едут, колонки пляшут, сканы, кривой лэйаут) - вот хелпер: PDF-Extract-Kit 1.0.

Это специализированная модель для извлечения структурированных данных из документов

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
17👍3
Расширение PostgreSQL для RAG и агентских приложений: pgai

Питоновская библиотека, которая превращает PostgreSQL в нормальный, продовый retrieval-движок для RAG и агент-приложений.

Автоматом создает и синхронизирует векторные эмбеддинги из данных в PostgreSQL и документов в S3. Эмбеддинги автоматически обновляются при изменении данных.

Мощный векторный и семантический поиск на pgvector и pgvectorscale.

Есть batch-обработка для эффективной генерации эмбеддингов, плюс встроенная обработка падений модели, rate limit’ов и всплесков латентности.

Работает с любым PostgreSQL, включая Timescale Cloud, Amazon RDS, Supabase и т.д.

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
9
This media is not supported in your browser
VIEW IN TELEGRAM
Тот самый разработчик на удалёнке в час дня, когда ему говорят, что пора бы работать уже

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
35😁28🤣3🔥2
Python UV x Docker совет

Иногда полезно ставить зависимости в несколько шагов.

Например, чтобы лучше работал кэш слоев при сборке Docker-образа.

Сначала ставим только зависимости.

Потом копируем проект и ставим уже сам проект.

Зачем делить на два шага?

Docker собирает образ слоями: если слой закэширован, он не пересобирается, пока не изменились входные файлы.

Если отделить установку зависимостей от установки проекта:

▪️Если меняется только main.py, Docker переиспользует закэшированный слой с зависимостями (быстрее)

▪️Если меняется только pyproject.toml, Docker пересобирает слои начиная с этого места (и это правильно, потому что зависимости поменялись)

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

# Install the project's dependencies using the lockfile and settings
RUN --mount=type=cache,target=/root/.cache/uv \
--mount=type=bind,source=uv.lock,target=uv.lock \
--mount=type=bind,source=pyproject.toml,target=pyproject.toml \
uv sync --locked --no-install-project

# Then, add the rest of the project source code and install it
# Installing separately from its dependencies allows optimal layer caching
COPY . /app
RUN --mount=type=cache,target=/root/.cache/uv \
uv sync --locked


👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍2
Знакомьтесь: Microsoft Agent Framework

Новая open-source библиотека на Python для сборки агентов.

Microsoft Agent Framework это набор средств разработки с открытым исходным кодом для разработки AI-агентов и multi-agent воркфлоу на Python.

Он собирает и расширяет идеи из проектов Semantic Kernel и AutoGen, объединяя их сильные стороны и добавляя новые возможности.

Semantic Kernel и AutoGen были первыми, кто нормально оформил концепции AI-агентов и multi-agent оркестрации.

Agent Framework это прямой наследник, сделанный теми же командами. Он сочетает простые абстракции AutoGen для single-agent и multi-agent паттернов с enterprise-фичами Semantic Kernel: управление состоянием на потоках, type safety, фильтры, телеметрию, плюс широкую поддержку моделей и эмбеддингов.

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍6
Работаю в крупном банке если что

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁70👀96🤔1😢1🤣1
This media is not supported in your browser
VIEW IN TELEGRAM
Google выкатил бесплатного убийцу Duolingo

Называется Little Language Lessons. Он генерит кастомных собеседников для практики, гайды по сленгу и визуальные колоды словаря для 40+ языков.

✓ 40+ языков (английский, немецкий, китайский и т.д.)
✓ 0% подписок и платных планов
✓ 100% практическая польза

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍358🤯6🤔1🤣1
Шпаргалка по Agent Skills, очевидно и по делу.

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
23🔥9👍6😢1
Тонко 😳

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
153😁30🤣7
This media is not supported in your browser
VIEW IN TELEGRAM
Наглядно, как работает простая нейронная сеть ANN на 50 нейронов на 2 уровнях

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
1👀35👍183🤔1
Hands-On Large Language Models

Внутри:

Глава 1: Введение в языковые модели
Глава 2: Токены и эмбеддинги
Глава 3: Разбираем Transformer LLM изнутри
Глава 4: Классификация текста
Глава 5: Кластеризация текста и тематическое моделирование
Глава 6: Prompt engineering
Глава 7: Продвинутые техники и инструменты генерации текста
Глава 8: Семантический поиск и retrieval-augmented generation (RAG)
Глава 9: Мультимодальные большие языковые модели
Глава 10: Создание моделей текстовых эмбеддингов
Глава 11: Fine-tuning representation-моделей под классификацию
Глава 12: Fine-tuning generation-моделей

GitHub: https://github.com/HandsOnLLM/Hands-On-Large-Language-Models

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83
Ну нет, не сейчас, я занят, лежу на кровати

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
35😁12🌭3
MCP vs RAG vs AI Agents

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍118🔥2😢1
Паттерны проектирования это проверенные решения типовых проблем в разработке. Если ты ловил себя на том, что постоянно пишешь одно и то же при создании объектов или мучаешься с управлением разными типами объектов, то фабрика (factory pattern) может быть ровно тем, что нужно.

В этом туториале ты узнаешь, что такое фабрика, зачем она полезна и как её реализовать в Python. Соберём практичные примеры, которые покажут, когда и как применять этот паттерн в реальных задачах.

Код можно найти на GitHub

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
6
Ну емае


👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁764🌭3🌚1
Самая шокирующая статья, которую я сегодня прочитал: обязательно в стиле ШОК-КОНТЕНТ 😱

Автор этой истории: мейнтейнер популярной Python-библиотеки matplotlib.

Недавно ему прилетел PR от AI-агента. Автор по правилам просто закрыл PR.

И что сделал AI-агент дальше? Он самовольно пошел “мстить”: нагуглил историю вкладов автора в код, персональную инфу, после чего написал и публично опубликовал атакующую статью “Gatekeeping in Open Source: The Scott Shambaugh Story”.

Вот она 😅

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

Это реально крипово. Ощущение, что “Скайнет” уже где-то рядом.

Ссылка на PR, можно зайти посмотреть: https://github.com/matplotlib/matplotlib/pull/31132

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁24🌚53🤯2🌭1
NVIDIA раздает бесплатные API-ключи.

Причем можно использовать не только их модели, но и сторонние, вроде Kimi-k2, Minimax и другие.

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
20👍5🤔1
Где-то в офисе чудак собрал толпу

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁213👀1
Используйте itertools вместо циклов

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

Чтобы обойти это ограничение, в Python есть удобная встроенная библиотека itertools. Например, допустим, вам нужно сгенерировать все уникальные пары из заданного списка. Порядок не важен, и ни один элемент не должен образовывать пару сам с собой.

Чтобы не раздувать код и снизить риск багов, можно использовать библиотеку itertools. Функция itertools.combinations() напрямую генерирует все уникальные комбинации элементов из iterable без повторений и без учета порядка.

Вот как можно переписать код, используя combinations из itertools:

from itertools import combinations

def get_unique_pairs_itertools(items):
return list(combinations(items, 2))

my_list = ['A', 'B', 'C', 'D']
print(get_unique_pairs_itertools(my_list))

Output:
[('A', 'B'), ('A', 'C'), ('A', 'D'), ('B', 'C'), ('B', 'D'), ('C', 'D')]



👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2610
Meta недавно закрыла одну из самых больших болей в RAG

Большинство RAG-систем просто жгут бюджет. Они вытаскивают 100 чанков, когда тебе реально нужно 10. Они заставляют LLM переваривать тысячи нерелевантных токенов. В итоге ты платишь за вычисления, которые вообще не нужны.

Meta AI это порешали.

Они сделали REFRAG, новый подход к RAG, который сжимает и фильтрует контекст еще до того, как он попадет в LLM. Результаты звучат дико:

▪️в 30.85 раза быстрее time-to-first-token
▪️контекстные окна в 16 раз больше
▪️в 2-4 раза меньше обрабатываемых токенов
▪️обгоняет LLaMA на 16 RAG-бенчмарках

Чем REFRAG отличается:

Классический RAG просто сваливает все в LLM. Каждый чанк. Каждый токен. Даже мусор, который не по делу.

А REFRAG работает на уровне эмбеддингов:

↳ сжимает каждый чанк в один эмбеддинг
↳ RL-политика (обученная через reinforcement learning) скорит каждый чанк по релевантности
↳ только лучшие чанки разворачиваются и отправляются в LLM
↳ остальное остается сжатым или вообще отфильтровывается

То есть LLM обрабатывает только то, что реально важно.

Пайплайн простой:

1. Закодируй документы и сохрани их в векторной базе
2. Когда приходит запрос, как обычно достань релевантные чанки
3. RL-политика оценивает сжатые эмбеддинги и выбирает лучшие
4. Выбранные чанки разворачиваются в полные token-эмбеддинги
5. Отклоненные чанки остаются одиночными сжатыми векторами
6. Все вместе уходит в LLM

Итог: можно прогонять в 16 раз больше контекста в 30 раз быстрее без потери точности.

Ссылка на доки

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥266👍4