🐍 Итоги недели в мире Python и обзоры новых инструментов: 9 типичных для новичков ошибок
Привет!
Всю неделю мы мониторим интернет, чтобы в воскресенье прислать тебе интересное письмо. Наша цель – держать читателей в курсе последних открытий и тенденций в мире Python. В еженедельных письмах ты найдешь:
- Новые возможности в последних версиях Python
- Работа с базами данных и SQL в Python.
- Веб-разработка на Django и Flask.
- Машинное обучение и анализ данных с помощью Python.
- Автоматизация и работа с API на Python.
- Тестирование и отладка кода на Python.
- Задачи для новичков с решениями.
Избавляемся от антипаттернов в Django; Нагрузочное тестирование API с помощью Locust; 28-часовой бесплатный курс Generative AI и многое другое.
⛔ Избавляемся от антипаттернов в Django
Автор статьи «Некоторые антипаттерны проектирования в Django» отмечает, что разработчики часто используют общепринятые приемы, которые на первый взгляд кажутся правильными, но на деле негативно сказываются на производительности и масштабируемости приложения. К таким антипаттернам относятся:
- Толстые (содержащие множество методов) модели.
- Магические числа, логика выбора которых известна только автору.
- Жесткое кодирование (когда конфигурационные данные, пароли и секреты находятся прямо в коде).
- Спагетти-шаблоны, перегруженные логикой для всевозможных манипуляций с данными на фронтенде.
- Игнорирование продвинутых возможностей ORM (например, F и Q объектов).
Решения всех этих проблем прилагаются.
🆙 Как улучшить код
Автор публикации «Улучшаем свой код на Python» отмечает 9 типичных для новичков ошибок, и предлагает дельные советы по оптимизации кода. Особое внимание уделяется списочным выражениям, экономии памяти и оптимизации проверки условий. В заключении статьи приведена ссылка на еще один детальный разбор ошибок, которые часто делают джуны.
🎓 Туториалы
Распознавание изображений для начинающих
В публикации «How To Create an AI Photo App with Python» пошагово показан процесс создания веб-приложения и обучения модели для распознавания изображений. Автор использует набор данных CIFAR-10 и следующие инструменты:
- Библиотеки Numpy, PIL, os – для обработки и загрузки изображений, работы с файловой системой.
- TensorFlow – для создания и обучения нейронной сети, способной распознавать 10 категорий изображений. Модель сохраняется в папке model.
- Taipy – для создания удобного графического интерфейса.
В результате получается веб-приложение, в которое пользователь может загрузить изображение в формате .png. Приложение относит фото к одной из 10 категорий (самолет, автомобиль, кошка, собака и т. д.) и отображает результат классификации на странице.
Распознавание автомобильных номеров для продвинутых
В статье «Разработка производительного распознавателя автономеров для edge-устройств» подробно описаны способы решения множества проблем, с которыми авторы столкнулись в процессе создания собственного ПО для распознавания номеров. В результате получился инструмент, значительно превосходящий существующие на российском рынке аналоги. Основные достижения:
- Может распознавать и подсчитывать 10 типов транспортных средств на заданных участках дороги.
- Определяет направление движения автомобилей.
- Передает данные во внешние системы для дальнейшей обработки.
Эффективность описанного в статье решения в сравнении с Nomeroff-net
💪 Нагрузочное тестирование API
Locust позволяет проводить тестирование производительности веб-приложений и API под нагрузкой – он симулирует поведение множества пользователей, которые одновременно обращаются к серверу. Это почти идеальный инструмент:
- Бесплатный и опенсорсный.
- Очень простой в использовании, управляется Python-скриптами.
- Имеет удобный интерфейс.
- После завершения теста результаты можно скачать в формате HTML.
- Поддерживает плагины, которые позволяют добавлять дополнительные возможности, например, использование параметров запросов из CSV-файла для более реалистичного тестирования.
- С недавних пор эффективно поддерживает многопроцессорность.
Этот туториал подробно объясняет основы работы с Locust, а сам инструмент доступен на официальном сайте.
Данные о нагрузочном тестировании API в реальном времени
🔥 Интересные проекты
Danswer работает как ваш собственный ChatGPT:
- Отвечает на вопросы по локальным и облачным документам, файлам, сообщениям.
- Позволяет создавать различных ИИ-ассистентов для выполнения конкретных задач.
- Поддерживает практически все приложения для совместной работы и менеджеры для управления проектами.
- Отличается умеренными требованиями к ресурсам – можно запускать на ноутбуке.
- Способен обучаться на фидбеке пользователя.
AlphaCodium – проект от создателей платформы CodiumAI. AlphaCodium предназначен специально для решения задач по программированию – в отличие от обычных LLM, этот инструмент:
- Обучен учитывать все нюансы в условиях задач.
- Действует пошагово, проверяя промежуточные решения.
Для тренировки разработчики использовали датасет Code Contests, который содержит множество задач с каверзными деталями в условии.
Процесс поиска решения в AlphaCodium происходит итеративно
Langroid – продвинутый фреймворк для создания ИИ-агентов. Основные возможности:
- Позволяет быстро настраивать агентов, оснащать их необходимыми компонентами, назначать им задачи и организовывать совместную работу для выполнения сложных многоэтапных заданий.
- Не требует глубоких знаний ИИ и особенностей работы моделей.
- Поддерживает API всех существующих провайдеров и позволяет подключать локальные модели для работы с конфиденциальными данными.
- Использует векторные базы данных (LanceDB, Qdrant, Chroma) для реализации RAG-технологии, которая позволяет значительно повысить качество ответов LLМ за счет извлечения релевантной информации из локальных данных.
- Кэширует ответы моделей с использованием Redis или Momento, что позволяет оптимизировать нагрузку.
🤖 Как использовать генеративный ИИ в Python-проектах
28-часовой бесплатный курс Generative AI предлагает насыщенную практическую программу, которая охватывает все ключевые инструменты и технологии в области генеративного ИИ – модели, API, векторные базы данных, веб-сервисы и вспомогательные фреймворки. Обучение строится вокруг создания реальных проектов, главный из которых – разработка медицинского чат-бота.
Автор рассылки: Наталья Кайда