🐍 Лайфхак: Ленивая загрузка огромных JSON-файлов с помощью ijson
Ситуация:
У вас огромный JSON-файл (гигабайты данных), который не помещается в память.
Стандартный json.load() просто упадёт с OOM.
Решение:
Используйте библиотеку ijson — это парсер JSON "на лету", который читает данные потоково, как SAX для XML.
Пример:
Плюсы:
Поддерживает вложенные структуры, сложные схемы JSON
Минимальное потребление памяти
Подходит для любых задач потоковой обработки
🔥 Если часто работаете с большими файлами — этот инструмент реально спасает время и ресурсы!
Ситуация:
У вас огромный JSON-файл (гигабайты данных), который не помещается в память.
Стандартный json.load() просто упадёт с OOM.
Решение:
Используйте библиотеку ijson — это парсер JSON "на лету", который читает данные потоково, как SAX для XML.
Пример:
import ijson
with open('huge.json', 'rb') as f:
# Предположим, внутри файла — массив объектов
for obj in ijson.items(f, 'item'):
# obj — очередной элемент массива, не вся структура целиком!
# Можно обрабатывать на лету и не держать в памяти гигабайты
process(obj) # Ваш код обработки
Плюсы:
Поддерживает вложенные структуры, сложные схемы JSON
Минимальное потребление памяти
Подходит для любых задач потоковой обработки
🔥 Если часто работаете с большими файлами — этот инструмент реально спасает время и ресурсы!
QA-митап от YADRO — уже 19 июня
📍 Санкт-Петербург и онлайн
🕕 Сбор гостей с 18:00
🎫 Участие бесплатное
Мероприятие будет полезно специалистам в области автоматизированного тестирования, особенно тем, кто работает с Python и внедряет собственные инструменты и процессы в тестовую инфраструктуру.
В программе:
— Обзор TestY — системы управления тестированием (TMS) с открытым исходным кодом и плагинной архитектурой.
— Подход к автоматизации тестирования оборудования: от простого Bash до интеграции с тестовыми планами.
— Анализ метрик качества, которые оказывают влияние на принятие решений в IT-продуктах и проектах.
Спикеры — эксперты YADRO и приглашенные гости из Сбера, Т-банка и других компаний с опытом построения QA-процессов в крупных IT-командах.
Офлайн-участников ждут демозона с оборудованием YADRO, интерактивные стенды, технический квест, кофе-брейк и неформальное общение на афтепати.
👉 Регистрация уже открыта, участие бесплатное. До встречи!
📍 Санкт-Петербург и онлайн
🕕 Сбор гостей с 18:00
🎫 Участие бесплатное
Мероприятие будет полезно специалистам в области автоматизированного тестирования, особенно тем, кто работает с Python и внедряет собственные инструменты и процессы в тестовую инфраструктуру.
В программе:
— Обзор TestY — системы управления тестированием (TMS) с открытым исходным кодом и плагинной архитектурой.
— Подход к автоматизации тестирования оборудования: от простого Bash до интеграции с тестовыми планами.
— Анализ метрик качества, которые оказывают влияние на принятие решений в IT-продуктах и проектах.
Спикеры — эксперты YADRO и приглашенные гости из Сбера, Т-банка и других компаний с опытом построения QA-процессов в крупных IT-командах.
Офлайн-участников ждут демозона с оборудованием YADRO, интерактивные стенды, технический квест, кофе-брейк и неформальное общение на афтепати.
👉 Регистрация уже открыта, участие бесплатное. До встречи!
🐍 Задача на Python — Топ‑3 самых популярных товаров
Допустим, у нас есть список покупок пользователей:
🎯 Задание:
Найти 3 самых популярных товара по количеству покупок (не по числу пользователей, а по общему количеству упоминаний).
✅ Ожидаемый результат:
💡 Решение:
📌 Что тренирует задача:
• Работа со словарями и списками
• Использование Counter из модуля collections
• Умение работать с вложенными структурами
• Сортировка по частоте с помощью most_common()
#python #задача #кодинг #алгоритмы #учимпитон #collections
Допустим, у нас есть список покупок пользователей:
orders = [
{"user": "alice", "items": ["apple", "banana", "apple"]},
{"user": "bob", "items": ["banana", "orange"]},
{"user": "carol", "items": ["banana", "apple", "orange", "banana"]},
{"user": "dave", "items": ["apple"]},
]
🎯 Задание:
Найти 3 самых популярных товара по количеству покупок (не по числу пользователей, а по общему количеству упоминаний).
✅ Ожидаемый результат:
[('banana', 4), ('apple', 4), ('orange', 2)]
💡 Решение:
from collections import Counter
# Собираем все товары в один список
all_items = []
for order in orders:
all_items.extend(order["items"])
# Считаем количество каждого товара
item_counts = Counter(all_items)
# Получаем топ-3 самых популярных
top_3 = item_counts.most_common(3)
print(top_3)
📌 Что тренирует задача:
• Работа со словарями и списками
• Использование Counter из модуля collections
• Умение работать с вложенными структурами
• Сортировка по частоте с помощью most_common()
#python #задача #кодинг #алгоритмы #учимпитон #collections
Уверены в своих навыках кодинга?
Тогда заглядывайте в канал Selectel. Всю неделю в канале будут выходить полезные материалы для разработчиков:
● Подробная инструкция, как сделать приложение на базе веб-технологий;
● Технические задачи для настоящих Python-энтузиастов;
● Идеи для pet-проектов: от генерации сложных паролей до нейросети для создания изображений;
● И даже выгодные продуктовые предложения, которые помогут воплотить идеи на инфраструктуре Selectel.
Подписывайтесь на канал и прокачивайте знания в сфере разработки ➡️
Реклама, АО «Селектел», ИНН: 7810962785, ERID: 2VtzquikcTx
Тогда заглядывайте в канал Selectel. Всю неделю в канале будут выходить полезные материалы для разработчиков:
● Подробная инструкция, как сделать приложение на базе веб-технологий;
● Технические задачи для настоящих Python-энтузиастов;
● Идеи для pet-проектов: от генерации сложных паролей до нейросети для создания изображений;
● И даже выгодные продуктовые предложения, которые помогут воплотить идеи на инфраструктуре Selectel.
Подписывайтесь на канал и прокачивайте знания в сфере разработки ➡️
Реклама, АО «Селектел», ИНН: 7810962785, ERID: 2VtzquikcTx
Каким будет вывод этого кода?
Anonymous Quiz
57%
['AB', 'CD']
8%
['ab', 'cd']
11%
Ошибка
10%
Ни один из вариантов не подходит
13%
Посмотреть ответ
Forwarded from Machinelearning
This media is not supported in your browser
VIEW IN TELEGRAM
📚 ArXiv Research Agent — отличный помощник для научных исследований.
Агент самостоятельно:
• Найдёт релевантные статьи с arXiv, bioRxiv, medRxiv и Semantic Scholar
• Проведёт полноценный литературный обзор
• Покажет, что упущено, и предложит, что добавить
• Даст инсайты и цитаты из миллионов научных работ
• Генерирует готовые конспекты
И др.
Вскоре обещают добавить поддержку MCP.
🔜 Попробовать: https://www.alphaxiv.org/assistant
@ai_machinelearning_big_data
#agent #ArXiv #ai #ml
Агент самостоятельно:
• Найдёт релевантные статьи с arXiv, bioRxiv, medRxiv и Semantic Scholar
• Проведёт полноценный литературный обзор
• Покажет, что упущено, и предложит, что добавить
• Даст инсайты и цитаты из миллионов научных работ
• Генерирует готовые конспекты
И др.
Вскоре обещают добавить поддержку MCP.
@ai_machinelearning_big_data
#agent #ArXiv #ai #ml
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Анализ данных (Data analysis)
🧠 BREAKING: MIT опубликовал первое исследование мозга пользователей ChatGPT
Результаты звучат тревожно:
> 🧪 У пользователей наблюдаются измеримые изменения в мозге
> 🤖 Формируется зависимость от ИИ
> 📉 Способность к самостоятельному мышлению снижается
> 📝 83.3% участников не смогли вспомнить эссе, которое «написали» с помощью ChatGPT
> 🧠 Количество активных нейронных связей упало с 79 до 42
MIT буквально фиксирует "мягкую когнитивную атрофию" после регулярного использования LLM.
💬 Мы — не просто наблюдатели ИИ-революции. Мы её подопытные.
🤔 Вопрос не в том, заменит ли ИИ человека.
А в том, кем мы станем, если полностью передадим ему мыслительные функции.
📌 Почитать
Результаты звучат тревожно:
> 🧪 У пользователей наблюдаются измеримые изменения в мозге
> 🤖 Формируется зависимость от ИИ
> 📉 Способность к самостоятельному мышлению снижается
> 📝 83.3% участников не смогли вспомнить эссе, которое «написали» с помощью ChatGPT
> 🧠 Количество активных нейронных связей упало с 79 до 42
MIT буквально фиксирует "мягкую когнитивную атрофию" после регулярного использования LLM.
💬 Мы — не просто наблюдатели ИИ-революции. Мы её подопытные.
🤔 Вопрос не в том, заменит ли ИИ человека.
А в том, кем мы станем, если полностью передадим ему мыслительные функции.
📌 Почитать
Forwarded from Machinelearning
Теперь у всех есть пример, как сделать продакшн-агентов с маршрутизацией, безопасностью и интерфейсом — от запроса до ответа.
Что это такое:
• Многоагентная система для поддержки клиентов (например: бронирование мест, отмена рейса, статус рейса, FAQ)
• Демка написана на Python + Next.js
• Использует OpenAI Agents SDK
• Встроены guardrails: защита от неуместных запросов и попыток обхода правил
• UI: внутри готовый интерфейс чат-бота
Как работает:
1. Пользователь пишет запрос
2. Система выбирает подходящего агента (например, `SeatBooking`)
3. Агент отвечает или передаёт диалог другому
4. Есть fallback на человека, если нужно
Как запустить:
# Backend
cd python-backend
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
uvicorn api:app --reload --port 8000
# Frontend
cd ui
npm install
npm run dev
Далее открываем:
http://localhost:3000
Особенности
• MIT-лицензия — можно адаптировать под свои задачи
• Удобно расширять: добавлять новых агентов, инструменты, правила
• Простой код, всё задокументировано
• Рабочий кейс от OpenAI
🔗 GitHub: github.com/openai/openai-cs-agents-demo
Если вы хотите собрать систему из агентов — это отличная точка старта.
@ai_machinelearning_big_data
#chatgpt #openai #aiagents #ai
Please open Telegram to view this post
VIEW IN TELEGRAM
🧠 Сложная и интересная задача для Python-инженеров:
"Запусти чужой Python-код... но так, чтобы он не сломал твой сервер"
Представь, ты разрабатываешь платформу, где пользователи могут запускать произвольные Python-скрипты:
например, в формате онлайн-компилятора, песочницы для тестов, или генератора графиков.
📌 Условия задачи:
Ты должен написать систему, которая:
• Принимает произвольный Python-код от пользователя
• Выполняет его безопасно и изолированно
• Ограничивает время выполнения до 2 секунд
• Ограничивает память до 128 MB
• Блокирует доступ к файловой системе, сети, subprocess, fork
• Возвращает
🛡️ Безопасность — ключ:
• Скрипт может попытаться сделать
• Ваша система не должна пострадать. Даже если кто-то пошлёт fork-бомбу или запросит весь RAM.
📦 Технические ограничения:
• Решение должно быть на Python
• Можно использовать Docker, podman, или Firecracker — но обоснуй выбор
• Стандартная библиотека разрешена, но доступ к
• Никаких внешних HTTP-запросов, файловых сокетов или pip install
🔧 Что ожидается:
1. Функция запуска:
Изоляция среды:
• Вариант 1: через запуск контейнера с ограничениями (docker run --rm --net=none --memory=128m)
• Вариант 2: через Firejail / chroot / seccomp / AppArmor профили
• Вариант 3: через интерпретатор Python внутри subprocess с ограничениями через resource, signal, ast и multiprocessing.Process
Блокировка опасных импортов и функций:
• Запретить import os, import subprocess, import, eval, exec, open, globals()
• Пример: AST-парсер удаляет запрещённые ноды до запуска
Обработка ошибок и ограничений:
• TimeoutExceededError — если код работает > 2 сек
• MemoryLimitError — если процесс превысил лимит
• SecurityViolation — при попытке запрещённого импорта или доступа
Опционально — FastAPI API:
→ Ответ:
🎯 Цель:
Собрать систему, которая запускает потенциально опасный код от незнакомцев — и не падает, не зависает, не открывает доступ к хосту.
🤯 Challenge:
• Как отследить попытку from os import system?
• Что делать с __import__('os').system('ls')?
• Как гарантировать остановку при while True: pass?
• Как контролировать память на уровне Python?
✅ Если решишь — ты разберёшься с:
• AST-парсингом и безопасностью исполнения Python
• Управлением ресурсами (CPU, RAM, время) на уровне ОС
• Изоляцией через контейнеры и sandbox-окружения
• Построением безопасных API и интерпретаторов
"Запусти чужой Python-код... но так, чтобы он не сломал твой сервер"
Представь, ты разрабатываешь платформу, где пользователи могут запускать произвольные Python-скрипты:
например, в формате онлайн-компилятора, песочницы для тестов, или генератора графиков.
📌 Условия задачи:
Ты должен написать систему, которая:
• Принимает произвольный Python-код от пользователя
• Выполняет его безопасно и изолированно
• Ограничивает время выполнения до 2 секунд
• Ограничивает память до 128 MB
• Блокирует доступ к файловой системе, сети, subprocess, fork
• Возвращает
stdout
, stderr
и статус выполнения🛡️ Безопасность — ключ:
• Скрипт может попытаться сделать
os.remove('/')
, import socket
, while True:
и т.п. • Ваша система не должна пострадать. Даже если кто-то пошлёт fork-бомбу или запросит весь RAM.
📦 Технические ограничения:
• Решение должно быть на Python
• Можно использовать Docker, podman, или Firecracker — но обоснуй выбор
• Стандартная библиотека разрешена, но доступ к
os
, sys.modules
, inspect
, eval
, __import__
— должен быть отключён или переопределён • Никаких внешних HTTP-запросов, файловых сокетов или pip install
🔧 Что ожидается:
1. Функция запуска:
result = run_code_safely(code="print(2 + 2)")
# result = { "stdout": "4\n", "stderr": "", "exit_code": 0, "status": "ok" }
Изоляция среды:
• Вариант 1: через запуск контейнера с ограничениями (docker run --rm --net=none --memory=128m)
• Вариант 2: через Firejail / chroot / seccomp / AppArmor профили
• Вариант 3: через интерпретатор Python внутри subprocess с ограничениями через resource, signal, ast и multiprocessing.Process
Блокировка опасных импортов и функций:
• Запретить import os, import subprocess, import, eval, exec, open, globals()
• Пример: AST-парсер удаляет запрещённые ноды до запуска
Обработка ошибок и ограничений:
• TimeoutExceededError — если код работает > 2 сек
• MemoryLimitError — если процесс превысил лимит
• SecurityViolation — при попытке запрещённого импорта или доступа
Опционально — FastAPI API:
POST /run
{
"code": "for i in range(10): print(i)"
}
→ Ответ:
{
"stdout": "0\n1\n2\n...\n",
"stderr": "",
"status": "ok",
"time": 0.032
}
🎯 Цель:
Собрать систему, которая запускает потенциально опасный код от незнакомцев — и не падает, не зависает, не открывает доступ к хосту.
🤯 Challenge:
• Как отследить попытку from os import system?
• Что делать с __import__('os').system('ls')?
• Как гарантировать остановку при while True: pass?
• Как контролировать память на уровне Python?
✅ Если решишь — ты разберёшься с:
• AST-парсингом и безопасностью исполнения Python
• Управлением ресурсами (CPU, RAM, время) на уровне ОС
• Изоляцией через контейнеры и sandbox-окружения
• Построением безопасных API и интерпретаторов