Python Portal
56.1K subscribers
2.42K photos
386 videos
51 files
983 links
Всё самое интересное из мира Python

Связь: @devmangx

РКН: https://clck.ru/3GMMF6
Download Telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
😁655👍4
LandingAI выпустили бесплатный курс по Document AI. Там учат собирать пайплайны обработки документов, которые вытаскивают текст, таблицы, графики и формы, не теряя контекст разметки.

Проблема классического OCR в том, что оно “достаёт буквы”, но ломает смысл:

- у таблиц пропадает структура (включая merged cells)
- связи “график ⬅️➡️ подпись” разваливаются
- порядок чтения в multi-column становится кашей

В курсе показывают, как строить агент-воркфлоу, которые читают документы ближе к тому, как это делает человек, через Agentic Document Extraction (ADE).

Что внутри:

- почему обычный OCR валится на сложных документах
- как детект layout + правильный reading order сохраняют структуру
- как парсить PDF в Markdown/JSON и не потерять layout
- как собирать RAG с ADE и векторными БД
- как деплоить event-driven документные пайплайны на AWS

3 часа, 6 практических примеров кода. Полностью бесплатно.

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍4🔥2
Истинная природа методов — это «специальные методы».

Про жизненный цикл инстанса.

▪️__init__

object.__init__(self[, ...])

Думаю, как конструктор используется очень часто. В основном это инициализация экземпляра (например, инициализация атрибутов). Отличие от __new__, о котором ниже: __init__ выполняется уже после создания экземпляра.
Возвращаемое значение всегда None.

▪️ __new__

object.__new__(cls[, ...])

В отличие от __init__, выполняется до создания экземпляра и отвечает именно за его создание. Поэтому это не инстанс-метод, а статический метод, но явно прописывать @staticmethod не нужно.
Возвращаемое значение должно быть созданным экземпляром (обычно это экземпляр класса из аргумента cls).

Типичное место применения __new__ это инициализация подклассов, которые наследуются от иммутабельных типов (int, str, tuple и т.д.). Они иммутабельные, поэтому после создания объекта нельзя менять атрибуты через __init__.

Ещё __new__ используют для реализации паттерна Singleton.

▪️ __del__

object.__del__(self)

Вызывается в момент, когда экземпляр уничтожается (например, через del). Явных популярных кейсов немного, но может быть полезно при отладке, чтобы понимать тайминг работы GC.

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍4😢1
This media is not supported in your browser
VIEW IN TELEGRAM
Любой может программировать с помощью ИИ.

Вы используете ИИ без базовых знаний программирования:

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥35😁24👍6
This media is not supported in your browser
VIEW IN TELEGRAM
GitHub запустил свою платформу для обучения: все курсы и сертификаты в одном месте.

Git, GitHub, MCP, использование ИИ, VSCode и многое другое.

И большая часть контента бесплатна: → https://learn.github.com

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
33
Сюююда: GitHub-репозиторий, чтобы учиться AI Engineering.

Там собраны одни из лучших бесплатных курсов, статей, туториалов и видео по темам:

Математическая база
Основы AI и ML
Deep Learning и специализации
Generative AI
Большие языковые модели (LLM)
Гайды по prompt engineering
RAG, агенты и MCP

Смотри тут: https://github.com/ashishps1/learn-ai-engineering

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍4
Forwarded from Айти мемы
😁709🔥4👍1🌚1
Изучи Python с Университетом University of Helsinki

✓ С официальным сертификатом
✓ С нуля до продвинутого уровня
✓ 14 частей с практическими заданиями

Весь контент доступен → здесь

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18
pip 26.0: pre-release и фильтрация по времени загрузки

Три большие новые фичи:

▪️ --all-releases <package> и --only-final <package>: контроль pre-release по каждому пакету отдельно, плюс возможность отключить все pre-release пакеты через --only-final :all:
▪️ --uploaded-prior-to <timstamp>: можно ограничить по времени загрузки пакета, например --uploaded-prior-to "2026-01-01T00:00:00Z"
▪️ --requirements-from-script <script>: установка зависимостей, объявленных в inline metadata скрипта (PEP 723)

Куда более подробный пост: читать

Официальный анонс здесь

Полный changelog здесь

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
10🔥6😢1
This media is not supported in your browser
VIEW IN TELEGRAM
λ-2D от Lingdong Huang: визуальный, нарисованный руками язык программирования.

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
17👍1🤔1
Вот частое заблуждение про RAG

Когда говорят про RAG, обычно думают так: проиндексировали док → потом достали этот же док.

Но индексация ≠ ретривал.

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

Вот 4 умных способа индексировать данные:

1) Chunk Indexing

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

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

2) Sub-chunk Indexing

▪️Берешь исходные чанки и дробишь их еще мельче на сабчанки.
▪️Индексируешь уже эти более мелкие куски.
▪️Но при выдаче все равно возвращаешь “большой” чанк для контекста.

Помогает, когда в одном абзаце/секции намешано несколько разных идей: шанс точно сматчиться с запросом выше.

3) Query Indexing

▪️Вместо сырого текста генеришь гипотетические вопросы, на которые, по мнению LLM, этот чанк может ответить.
▪️Эмбеддишь эти вопросы и сохраняешь.
▪️При ретривале реальные пользовательские запросы обычно лучше ложатся на такие “вопросные” представления.
▪️Похожая идея есть в HyDE, только там матчат гипотетический ответ с реальными чанками.

Кайфово для QA-систем, потому что уменьшает семантический разрыв между запросом пользователя и тем, что лежит в индексе.

4) Summary Indexing

▪️Просишь LLM кратко резюмировать каждый чанк в компактную семантическую форму.
▪️Индексируешь summary вместо исходного текста.
▪️А возвращаешь все равно полный чанк для контекста.

Особенно эффективно для плотных или структурированных данных (типа CSV/таблиц), где эмбеддинги сырого текста часто слабо что-то выражают

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
7