Программируем на Python с использованием искусственного интеллекта. llm.. llm. python.. llm. python. Блог компании Издательство БХВ.. llm. python. Блог компании Издательство БХВ. искусственный интеллект.. llm. python. Блог компании Издательство БХВ. искусственный интеллект. книги.. llm. python. Блог компании Издательство БХВ. искусственный интеллект. книги. нейросети.. llm. python. Блог компании Издательство БХВ. искусственный интеллект. книги. нейросети. Программирование.. llm. python. Блог компании Издательство БХВ. искусственный интеллект. книги. нейросети. Программирование. Профессиональная литература.. llm. python. Блог компании Издательство БХВ. искусственный интеллект. книги. нейросети. Программирование. Профессиональная литература. Читальный зал.
Программируем на Python с использованием искусственного интеллекта - 1

Какому программисту не захочется прокачать свои навыки с ИИ и десятикратно умножить эффективность разработки? Когда мы получили оригинал книги «Modern Python Programming using ChatGPT» (Шивакумар Гопалакришнан), то увидели как плюсы, так и минусы.

Плюсы. Автор предлагает не просто набор промптов, а реально стройную методологию: использовать ИИ на всех этапах разработки — от сбора OKR до мониторинга в Grafana. Да еще подкрепляет это сквозным примером.

Минусы. Оригинальный текст явно был написан с активной помощью самого ChatGPT. Местами «уши» LLM торчали так сильно, что текст было трудно читать из-за воды и повторов.

Возникла главная задача: как сделать так, чтобы русскоязычный читатель получил максимум пользы от применения ИИ в своих разработках, и при этом не забросал нас камнями, обнаружив примитивный перевод текста, сгенерированного тем же самым ИИ?

И тут начинается история о том, как мы перевели и отредактировали книгу, которая сама была частично «сгенерирована», и почему в итоге она стала (по нашему скромному мнению) реальным практическим руководством по работе с ИИ для Python-разработчиков, особенно в условиях современной России.

Мы решили пойти по жесткому пути. Да, автор не скрывал, что для написания книги по ChatGPT он намеренно использовал сам ChatGPT, и это было нормально для 2025 года. Но сегодня, когда первое восхищение от способности ИИ генерировать текст или находить ошибки в коде прошло и сменилось на прагматизм и разумный консерватизм, перед нами встала задача «очеловечить» книгу, сохранив всю ее техническую глубину.

Мы не просто переводили. Мы перерабатывали структуру предложений, убирали «воду», свойственную генерациям ранних версий GPT, и унифицировали терминологию. По сути, мы сделали за ИИ его же работу, но с пониманием контекста. Результат представляем на суд широкой публики.

Почему эта книга — must read (особенно в России)?

Главная фишка книги, которая подчеркивается в предисловии к русскому изданию — она не про ChatGPT. Она про методологию. Автор использует ChatGPT как пример, как популярную модель, но все принципы, все промпты и подходы, описанные в книге, применимы к любому ИИ-ассистенту,  доступному в России. А девиз «Прокачайте навыки с ИИ — десятикратно умножьте эффективность разработки» – не маркетинг. Шивакумар Гопалакришнан, инженер с 25-летним стажем и экс-архитектор в Fortune 100, проводит читателя через полный жизненный цикл разработки (SDLC) на примере сквозного проекта — USB T-Shirt Launcher.

Внутри книги нет примеров, как написать того или иного бота. Путешествие по главам выглядит как путь по этапам разработки продукта в тесном и непосредственном симбиозе программиста и ИИ:

  • Сбор требований. Забудьте про «напиши ТЗ». Книга учит формулировать OKR и цели по SMART, вместе с ИИ создавать персонажей, пользователей и карты эмпатии.

  • Проектирование. Как ИИ помогает не нарушать SOLID еще на этапе архитектуры? Здесь об этом рассказывают.

  • Разработка (Core). Генерация кода, рефакторинг, отладка. Показано на реальных примерах с конкретными промптами. Вы увидите, как ChatGPT помогал писать логику движения для камеры того самого T-Shirt Launcher.

  • Качество кода. Отдельный блок про принципы SOLID (целая глава 8) и написание тестов. Это важно: автор учит не просто просить код, а просить хороший код.

  • DevOps-культура. Настройка CI/CD, описание коммитов, управление PR (Pull Requests) и мониторинг с помощью Grafana Cloud.

Да, купив книгу, местами вы можете почувствовать некоторую «академичность» изложения, но мы постарались вырезать те самые моменты, когда ИИ «льет воду» или ходит по кругу. Особенно ценной с нашей точки зрения получилась глава про ограничения и подводные камни (глава 13) — её автор явно писал сам, потому что она очень честная. Там рассказывается о том, как не стать рабом галлюцинаций нейросети и всегда критически оценивать результат.

Мы проделали большую работу, чтобы этот текст стал эталонным руководством именно для российского разработчика. Если вы хотите перестать бояться, что ИИ заменит вас, и начать использовать его, чтобы работать в 10 раз эффективнее — эта книга ваш инструмент.

Отдельное спасибо автору за то, что он выбрал такой «прикольный», но показательный проект, как USB-пусковая установка для футболок. Это доказывает: ИИ поможет управиться даже с «железом», если правильно его попросить.

Как ChatGPT помог спроектировать и реализовать USB-пусковую установку для футболок

Практический материал проекта оказался на удивление крепким. USB T-Shirt Launcher – это реальная «пушка», которая с помощью камеры и распознавания лиц автоматически наводится на цель и стреляет… футболками! Звучит как игрушка, но с инженерной точки зрения здесь есть всё: работа с «железом», компьютерное зрение, реальное время, ограниченные ресурсы (Raspberry Pi) и, конечно, активное использование ChatGPT на всех этапах.

Читатель проходит этот путь вместе с автором и ИИ: от первых требований до кода, который заставляет турель следить за лицом. И видит, как ИИ помог справиться с подводными камнями, о которые разбился бы не один новичок.

1. Что хочет заказчик? (Глава 5)

Представьте: вы должны написать софт для пусковой установки, которая подключается по USB и умеет поворачиваться влево-вправо и наклоняться вверх-вниз. На неё же установлена камера на Raspberry Pi. Задача: автоматически наводить устройство на лицо человека и, если хочется, стрелять в него футболкой. А для разработки и тестирования неплохо бы иметь возможность запускать код без реального железа — в симуляторе.

Все по требованиям (REQ):

  • REQ-4. Интеграция распознавания лиц с движением камеры — система должна идентифицировать лица и удерживать их в центре кадра.

  • REQ-5. Логика движения камеры на основе положения лица — камера двигается в реальном времени.

  • REQ-6. Интеграция движения камеры с наведением пусковой установки — куда смотрит камера, туда целится и пушка.

  • REQ-7. Функции безопасности — защита от случайного выстрела.

  • REQ-8/9. Обработка ошибок — стабильность при сбоях.

Кроме того, есть нефункциональные требования: код должен работать на Raspberry Pi (слабый процессор), быть тестируемым, а также позволять делать отладку без реального USB-устройства.

2. Проектируем архитектуру с ChatGPT

Скармливаем этот список ChatGPT и просим предложить архитектуру, используя принципы SOLID и шаблоны проектирования. Чат-бот предлагает использовать фабричный метод (Factory Method), чтобы во время разработки и тестирования подменять реальное USB-устройство симулятором.

Вот как выглядит диаграмма классов, сгенерированная ботом на языке Mermaid (рис. 5.6 из книги):

Программируем на Python с использованием искусственного интеллекта - 2

Суть решения: есть абстрактный класс Launcher с методом launch_tshirt(). От него наследуются USBLauncher (работа с реальным железом) и SimulatedLauncher (имитация для отладки). А LauncherFactory создаёт экземпляр нужного типа в зависимости от режима. LauncherController получает этот экземпляр через внедрение зависимости и работает с ним, не задумываясь, реальное это устройство или нет.

Фрагмент кода, сгенерированного ChatGPT (сильно сокращён):

class Launcher:
    def launch_tshirt(self): pass

class USBLauncher(Launcher):
    def launch_tshirt(self):
        # ... код отправки команды по USB
        print("Fire in the hole!")

class SimulatedLauncher(Launcher):
    def launch_tshirt(self):
        print("Boom! (simulated)")

class LauncherFactory:
    @staticmethod
    def get_launcher(launcher_type):
        if launcher_type == "USB":
            return USBLauncher()
        elif launcher_type == "Simulated":
            return SimulatedLauncher()
        # ...

Такая архитектура одновременно решает проблему тестирования и делает код гибким.

3. Переходим к реализации: подводные камни (Глава 6)

Итак, архитектура готова. Внешний вид «пушки» впечатляет.

Программируем на Python с использованием искусственного интеллекта - 3

Но дьявол, как всегда, в деталях. Когда мы начинаем писать код для реального устройства, всплывают неучтённые проблемы. Вот лишь некоторые из них:

  • Шаткое крепление. Raspberry Pi с камерой просто прикручен к подвижной части турели. При каждом движении конструкция вибрирует, и координаты лица «пляшут».

  • Неизвестное начальное положение. У дешёвых USB-сервоприводов нет энкодеров. При включении мы не знаем, куда направлена турель — она может смотреть в потолок или в пол.

  • Ограниченная вычислительная мощность. Raspberry Pi 3 еле тянет OpenCV. Сложные алгоритмы с предсказанием движения лица приведут к тормозам.

  • Цель движется. Пока турель поворачивается, человек может сместиться. Нужно постоянно корректировать траекторию.

  • Механические ограничения. Нельзя крутить моторы бесконечно — есть упоры.

Программируем на Python с использованием искусственного интеллекта - 4

4. Придумываем алгоритм (советуемся с  ИИ!)

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

  1. Получить от OpenCV координаты ограничивающей рамки лица.

  2. Вычислить центр лица.

  3. Сравнить с центром кадра.

  4. Если смещение по горизонтали больше допустимого порога — подать команду поворота в нужную сторону на небольшую фиксированную величину.

  5. То же для вертикали.

  6. Повторять цикл, пока лицо не окажется в центре (с допуском).

Это классический пропорциональный регулятор, но без обратной связи по положению. Такой подход не требует знания абсолютного угла, нечувствителен к вибрациям и легко реализуется на слабом процессоре.

Программируем на Python с использованием искусственного интеллекта - 5

5. Промпт для ChatGPT и полученный код

Теперь формулируем задачу для ChatGPT максимально подробно, с учётом всех ограничений:

«Как главный штатный инженер по Python, дайте мне код на Python для функции, которая будет выдавать команды для запуска на основе идентифицированных координат лица. У меня есть маломощное устройство, такое как Raspberry PI. На нем установлен модуль камеры Raspberry PI. Вся камера и RPI довольно шатко закреплены на панели запуска. Устройство запуска — это устройство, управляемое через USB, которое может выполнять повороты и наклоны. Используя OpenCV, я могу распознавать лица и получать их координаты… У пусковой установки нет команды «определить положение». Её текущее положение невозможно определить при запуске программы. Лица могут перемещаться во время движения пусковой установки…»

ChatGPT выдал код, который оказался очень близок к нашему алгоритму, но добавил важные детали: многопоточность (чтобы распознавание лиц не блокировало отправку команд) и временные интервалы (чтобы не дёргать сервомоторы слишком часто). Ниже — ключевые фрагменты (полный код занимает пару страниц, мы покажем только суть).

import cv2, numpy as np, threading, time

def move_launcher_pan(direction, amount):
    # здесь будет отправка USB-команды
    pass

def move_launcher_tilt(direction, amount):
    pass

cap = cv2.VideoCapture(0)
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
frame_center = np.array([cap.get(3)/2, cap.get(4)/2])
pan_threshold = frame_center[0] * 0.25
tilt_threshold = frame_center[1] * 0.25
last_command_time = time.time()
command_interval = 0.5

def launcher_control_loop():
    global last_command_time
    while True:
        ret, frame = cap.read()
        if not ret: continue
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        faces = face_cascade.detectMultiScale(gray, 1.1, 4)
        if len(faces) > 0:
            (x, y, w, h) = faces[0]
            face_center = np.array([x + w/2, y + h/2])
            displacement = face_center - frame_center
            now = time.time()
            if now - last_command_time > command_interval:
                if abs(displacement[0]) > pan_threshold:
                    move_launcher_pan('left' if displacement[0] < 0 else 'right', abs(displacement[0]))
                if abs(displacement[1]) > tilt_threshold:
                    move_launcher_tilt('down' if displacement[1] < 0 else 'up', abs(displacement[1]))
                last_command_time = now

threading.Thread(target=launcher_control_loop, daemon=True).start()

while True:
    ret, frame = cap.read()
    if ret: cv2.imshow('Frame', frame)
    if cv2.waitKey(1) & 0xFF == ord('q'): break

cap.release()
cv2.destroyAllWindows()

Обратите внимание: ChatGPT не просто скопировал наш алгоритм, но и профессионально организовал асинхронную отправку команд, защиту от слишком частых движений и корректное завершение потоков. Всё это позволяет коду работать на Raspberry Pi без подвисаний.

6. Итоги и выводы

За несколько итераций диалога с ChatGPT мы получили:

  • Чёткую архитектуру, отделяющую логику от железа.

  • Рабочий прототип алгоритма слежения, учитывающий реальные ограничения слабого железа.

  • Возможность тестирования без физического устройства благодаря фабрике и симулятору.

  • Готовую документацию (промпты, диаграммы, комментарии) — её сгенерировал ИИ по ходу дела.

Конечно, финальный код потребовал доработки: пришлось добавить обработку нескольких лиц, более плавное движение (через PID-регулятор) и механизмы безопасности. Но начальный каркас, созданный ChatGPT, позволил сэкономить дни, если не недели.

Проект USB T-Shirt Launcher — отличная песочница для отработки навыков программирования с ИИ. Мы убедились, что ChatGPT способен не только писать отдельные функции, но и предлагать архитектурные решения, учитывающие аппаратные ограничения. Главное — правильно ставить задачу и критически оценивать результат, как это делали авторы при подготовке русского издания книги.

Хотите попробовать сами? Весь код и документация доступны в репозитории. А если захочется больше примеров и разбора каждого этапа — добро пожаловать в книгу.

Мы полагаем, что книга получилась интересной как для начинающих программистов, которые хотят научиться правильно ставить задачи ИИ, чтобы он не генерировал ерунду, так и для продвинутых, которые хотят прокачать навыки рефакторинга и написания чистой архитектуры с минимальными затратами времени.

Если при покупке книги на сайте издательства “БХВ” использовать промокод HABRBHV, вы получите скидку 36%.

Автор: BHV_publishing

Источник