Для тех, кто регулярно работает с PDF, где данные как будто намеренно спрятали (таблицы едут, колонки пляшут, сканы, кривой лэйаут) - вот хелпер: PDF-Extract-Kit 1.0.
Это специализированная модель для извлечения структурированных данных из документов
👉 @PythonPortal
Это специализированная модель для извлечения структурированных данных из документов
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤7👍3
Расширение PostgreSQL для RAG и агентских приложений: pgai
Питоновская библиотека, которая превращает PostgreSQL в нормальный, продовый retrieval-движок для RAG и агент-приложений.
Автоматом создает и синхронизирует векторные эмбеддинги из данных в PostgreSQL и документов в S3. Эмбеддинги автоматически обновляются при изменении данных.
Мощный векторный и семантический поиск на pgvector и pgvectorscale.
Есть batch-обработка для эффективной генерации эмбеддингов, плюс встроенная обработка падений модели, rate limit’ов и всплесков латентности.
Работает с любым PostgreSQL, включая Timescale Cloud, Amazon RDS, Supabase и т.д.
👉 @PythonPortal
Питоновская библиотека, которая превращает PostgreSQL в нормальный, продовый retrieval-движок для RAG и агент-приложений.
Автоматом создает и синхронизирует векторные эмбеддинги из данных в PostgreSQL и документов в S3. Эмбеддинги автоматически обновляются при изменении данных.
Мощный векторный и семантический поиск на pgvector и pgvectorscale.
Есть batch-обработка для эффективной генерации эмбеддингов, плюс встроенная обработка падений модели, rate limit’ов и всплесков латентности.
Работает с любым PostgreSQL, включая Timescale Cloud, Amazon RDS, Supabase и т.д.
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 пересобирает слои начиная с этого места (и это правильно, потому что зависимости поменялись)
Без такого разделения любое изменение кода заставит заново переустанавливать все зависимости.
👉 @PythonPortal
Иногда полезно ставить зависимости в несколько шагов.
Например, чтобы лучше работал кэш слоев при сборке Docker-образа.
Сначала ставим только зависимости.
Потом копируем проект и ставим уже сам проект.
Зачем делить на два шага?
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
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
Новая 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, фильтры, телеметрию, плюс широкую поддержку моделей и эмбеддингов.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍6
This media is not supported in your browser
VIEW IN TELEGRAM
Google выкатил бесплатного убийцу Duolingo
Называется Little Language Lessons. Он генерит кастомных собеседников для практики, гайды по сленгу и визуальные колоды словаря для 40+ языков.
✓ 40+ языков (английский, немецкий, китайский и т.д.)
✓ 0% подписок и платных планов
✓ 100% практическая польза
👉 @PythonPortal
Называется Little Language Lessons. Он генерит кастомных собеседников для практики, гайды по сленгу и визуальные колоды словаря для 40+ языков.
✓ 40+ языков (английский, немецкий, китайский и т.д.)
✓ 0% подписок и платных планов
✓ 100% практическая польза
Please open Telegram to view this post
VIEW IN TELEGRAM
👍35❤8🤯6🤔1🤣1
Please open Telegram to view this post
VIEW IN TELEGRAM
1👀35👍18❤3🤔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
Внутри:
Глава 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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3
Паттерны проектирования это проверенные решения типовых проблем в разработке. Если ты ловил себя на том, что постоянно пишешь одно и то же при создании объектов или мучаешься с управлением разными типами объектов, то фабрика (factory pattern) может быть ровно тем, что нужно.
В этом туториале ты узнаешь, что такое фабрика, зачем она полезна и как её реализовать в Python. Соберём практичные примеры, которые покажут, когда и как применять этот паттерн в реальных задачах.
Код можно найти на GitHub
👉 @PythonPortal
В этом туториале ты узнаешь, что такое фабрика, зачем она полезна и как её реализовать в Python. Соберём практичные примеры, которые покажут, когда и как применять этот паттерн в реальных задачах.
Код можно найти на GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6
Самая шокирующая статья, которую я сегодня прочитал: обязательно в стиле ШОК-КОНТЕНТ 😱
Автор этой истории: мейнтейнер популярной Python-библиотеки matplotlib.
Недавно ему прилетел PR от AI-агента. Автор по правилам просто закрыл PR.
И что сделал AI-агент дальше? Он самовольно пошел “мстить”: нагуглил историю вкладов автора в код, персональную инфу, после чего написал и публично опубликовал атакующую статью “Gatekeeping in Open Source: The Scott Shambaugh Story”.
Вот она😅
В статье в основном куча бреда, цель простая: унизить и надавить на автора, чтобы он принял этот PR.
Это реально крипово. Ощущение, что “Скайнет” уже где-то рядом.
Ссылка на PR, можно зайти посмотреть: https://github.com/matplotlib/matplotlib/pull/31132
👉 @PythonPortal
Автор этой истории: мейнтейнер популярной Python-библиотеки matplotlib.
Недавно ему прилетел PR от AI-агента. Автор по правилам просто закрыл PR.
И что сделал AI-агент дальше? Он самовольно пошел “мстить”: нагуглил историю вкладов автора в код, персональную инфу, после чего написал и публично опубликовал атакующую статью “Gatekeeping in Open Source: The Scott Shambaugh Story”.
Вот она
В статье в основном куча бреда, цель простая: унизить и надавить на автора, чтобы он принял этот PR.
Это реально крипово. Ощущение, что “Скайнет” уже где-то рядом.
Ссылка на PR, можно зайти посмотреть: https://github.com/matplotlib/matplotlib/pull/31132
Please open Telegram to view this post
VIEW IN TELEGRAM
😁24🌚5❤3🤯2🌭1
NVIDIA раздает бесплатные API-ключи.
Причем можно использовать не только их модели, но и сторонние, вроде Kimi-k2, Minimax и другие.
👉 @PythonPortal
Причем можно использовать не только их модели, но и сторонние, вроде Kimi-k2, Minimax и другие.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤20👍5🤔1
Используйте itertools вместо циклов
Хотя циклы это круто, но у них есть ограничения, особенно в современных стилях программирования и для некоторых типов задач. Понимание этих ограничений помогает выбрать правильный инструмент под задачу. Каждая итерация цикла в Python дает накладные расходы интерпретатора, например проверки типов и управление памятью. На больших датасетах это может заметно накапливаться.
Чтобы обойти это ограничение, в Python есть удобная встроенная библиотека itertools. Например, допустим, вам нужно сгенерировать все уникальные пары из заданного списка. Порядок не важен, и ни один элемент не должен образовывать пару сам с собой.
Чтобы не раздувать код и снизить риск багов, можно использовать библиотеку itertools. Функция itertools.combinations() напрямую генерирует все уникальные комбинации элементов из iterable без повторений и без учета порядка.
Вот как можно переписать код, используя combinations из itertools:
👉 @PythonPortal
Хотя циклы это круто, но у них есть ограничения, особенно в современных стилях программирования и для некоторых типов задач. Понимание этих ограничений помогает выбрать правильный инструмент под задачу. Каждая итерация цикла в 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')]
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26❤10