🐍 Итоги недели в мире Python и обзоры новых инструментов: 9 типичных для новичков ошибок

🐍 Итоги недели в мире 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 типов транспортных средств на заданных участках дороги.
  • Определяет направление движения автомобилей.
  • Передает данные во внешние системы для дальнейшей обработки.
<p>Эффективность описанного в статье решения в сравнении с Nomeroff-net</p>

Эффективность описанного в статье решения в сравнении с Nomeroff-net

💪 Нагрузочное тестирование API

Locust позволяет проводить тестирование производительности веб-приложений и API под нагрузкой – он симулирует поведение множества пользователей, которые одновременно обращаются к серверу. Это почти идеальный инструмент:

  • Бесплатный и опенсорсный.
  • Очень простой в использовании, управляется Python-скриптами.
  • Имеет удобный интерфейс.
  • После завершения теста результаты можно скачать в формате HTML.
  • Поддерживает плагины, которые позволяют добавлять дополнительные возможности, например, использование параметров запросов из CSV-файла для более реалистичного тестирования.
  • С недавних пор эффективно поддерживает многопроцессорность.

Этот туториал подробно объясняет основы работы с Locust, а сам инструмент доступен на официальном сайте.

<p>Данные о нагрузочном тестировании API в реальном времени</p>

Данные о нагрузочном тестировании API в реальном времени

🔥 Интересные проекты

Danswer работает как ваш собственный ChatGPT:

  • Отвечает на вопросы по локальным и облачным документам, файлам, сообщениям.
  • Позволяет создавать различных ИИ-ассистентов для выполнения конкретных задач.
  • Поддерживает практически все приложения для совместной работы и менеджеры для управления проектами.
  • Отличается умеренными требованиями к ресурсам – можно запускать на ноутбуке.
  • Способен обучаться на фидбеке пользователя.

AlphaCodium – проект от создателей платформы CodiumAI. AlphaCodium предназначен специально для решения задач по программированию – в отличие от обычных LLM, этот инструмент:

  • Обучен учитывать все нюансы в условиях задач.
  • Действует пошагово, проверяя промежуточные решения.

Для тренировки разработчики использовали датасет Code Contests, который содержит множество задач с каверзными деталями в условии.

<p>Процесс поиска решения в AlphaCodium происходит итеративно</p>

Процесс поиска решения в AlphaCodium происходит итеративно

Langroid – продвинутый фреймворк для создания ИИ-агентов. Основные возможности:

  • Позволяет быстро настраивать агентов, оснащать их необходимыми компонентами, назначать им задачи и организовывать совместную работу для выполнения сложных многоэтапных заданий.
  • Не требует глубоких знаний ИИ и особенностей работы моделей.
  • Поддерживает API всех существующих провайдеров и позволяет подключать локальные модели для работы с конфиденциальными данными.
  • Использует векторные базы данных (LanceDB, Qdrant, Chroma) для реализации RAG-технологии, которая позволяет значительно повысить качество ответов LLМ за счет извлечения релевантной информации из локальных данных.
  • Кэширует ответы моделей с использованием Redis или Momento, что позволяет оптимизировать нагрузку.

🤖 Как использовать генеративный ИИ в Python-проектах

28-часовой бесплатный курс Generative AI предлагает насыщенную практическую программу, которая охватывает все ключевые инструменты и технологии в области генеративного ИИ – модели, API, векторные базы данных, веб-сервисы и вспомогательные фреймворки. Обучение строится вокруг создания реальных проектов, главный из которых – разработка медицинского чат-бота.

Автор рассылки: Наталья Кайда

55
Начать дискуссию