Сказ о том, как мы, дата-сайентист и аналитик данных, на троих с ChatGPT, без программиста и девопса, создали сервис пересказа новостей TechMix с текстом и озвучкой. ChatGPT писал код, а мы ему только поддакивали.

Авторы: Эдуард Ланчев, Илья Кузнецов, ChatGPT

Третьим будешь? (вместо вступления)

Собрались мы с Ильёй написать сервис, который берет зарубежные Tech‑новости и пересказывает их на русский. И не простой сервис в монолите, а с кучей микросервисов, шиной, базой данных, логированием, парой моделек машинного обучения под капотом, работой с парой внешних API, да еще и с CI/CD. И не просто написать, а чтобы потом можно было масштабировать, добавляя другие сервисы.

Собрались, а рядом ни программиста, ни девопса нет. А хотя бы третий в команду точно нужен — факт, известный всем. Время идет, ничего не меняется, ночь сменяется днем и так по кругу. И в какой‑то момент открыли мы браузер и написали первому, кто под руку попал:

 — Третьим будешь?

 — Какой контекст у этой фразы в вашем случае?

 — Нам программист нужен. Будешь третьим в команде?

 — Звучит интересно!

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

Я б в Архитекторы пошёл, пусть меня научат

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

«Для синхронизации ваших микросервисов идеально подойдёт RabbitMQ,» — предложил он однажды вечером, когда мы с Ильёй уже были готовы сдаться после нескольких часов бессмысленных споров и разойтись спать. Его аргументы о надёжности и масштабируемости RabbitMQ вместе с обещанием его настроить звучали так убедительно, что мы не могли не согласиться. Странно, что мы не догадались тогда спросить, а сможет ли ChatGPT настроить Kafka ?

Kafka vs RabbitMQ (автор ChatGPT)

Kafka vs RabbitMQ (автор ChatGPT)

Выбор между Kafka и RabbitMQ часто зависит от конкретных требований проекта и предпочтений разработчиков, а также от тех задач, которые должны быть решены с помощью системы обмена сообщениями. Каждая из этих систем имеет свои особенности и предназначена для решения различных проблем в области обработки сообщений и данных.

Kafka

Apache Kafka разработан для обработки потоковых данных и может эффективно работать с большими объемами данных благодаря своей архитектуре, основанной на журналах (logs). Kafka обеспечивает высокую пропускную способность и гарантирует упорядоченность сообщений внутри одного топика. Она отлично подходит для сценариев, где необходима высокая производительность и надёжная персистентность сообщений, таких как логирование событий, мониторинг в реальном времени и обработка потоков данных.

Настройка Kafka может быть более сложной, поскольку требуется настроить кластеры, управлять разделами и репликациями. К тому же, для обеспечения высокой доступности и отказоустойчивости потребуется тщательное планирование и конфигурирование.

RabbitMQ

RabbitMQ — это более традиционная система обмена сообщениями с широким спектром возможностей по маршрутизации сообщений. Она поддерживает несколько моделей обмена сообщениями, включая точка-точка, публикация-подписка и маршрутизация по ключам. RabbitMQ проще в настройке для меньших или менее сложных систем, где не требуется масштабирование на уровне, как у Kafka.

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

Сравнение легкости настройки

  • Kafka требует более внимательного подхода к настройке, особенно в больших системах с высокими требованиями к пропускной способности и надёжности.

  • RabbitMQ может быть проще настроить для базовых сценариев использования и предлагает более простую интеграцию с многими языками программирования и фреймворками благодаря множеству клиентских библиотек.

Таким образом, если ваш проект требует высокой производительности и масштабируемости для работы с потоковыми данными, Kafka может быть предпочтительнее, хотя и потребует более сложной настройки. Если же вам нужна система, которая легко настраивается для маршрутизации и управления разнообразными сообщениями с меньшим объемом данных, RabbitMQ может оказаться более подходящим выбором.

Затем настал черёд выбора базы данных. «ClickHouse будет вашим лучшим выбором для обработки больших данных с молниеносной скоростью» — сказал ChatGPT нам рано утром. Мы даже не стали спорить и ничего не спрашивали. К тому же, мы не раз сталкивались с ClickHouse на других проектах. В команде царило единодушие! Мы чувствовали, что держим в руках ключ к созданию чего‑то по‑настоящему великого. (последнее предложение написал ChatGPT, высокопарно получилось, но он же третий член команды, и эту статью пишем все вместе)

ClickHouse vs PostgreSQL (автор ChatGPT)

ClickHouse vs PostgreSQL (автор ChatGPT)

ClickHouse и PostgreSQL являются системами управления базами данных, но они предназначены для разных сценариев использования и оптимизированы для выполнения различных задач. Вот краткое сравнение их основных характеристик и предназначений:

ClickHouse

ClickHouse — это колоночная СУБД, разработанная для онлайн-аналитической обработки (OLAP). Она особенно хорошо подходит для выполнения быстрых аналитических запросов над большими объёмами данных.

Особенности ClickHouse:

  • Производительность: ClickHouse оптимизирован для быстрого выполнения запросов на чтение, которые могут обрабатывать миллиарды строк за секунды. Он использует колоночное хранение, что позволяет эффективно выполнять агрегации и операции чтения.

  • Масштабируемость: Поддерживает горизонтальное масштабирование, позволяя распределять данные и запросы по множеству узлов.

  • Хранение данных: Применяет сжатие данных для эффективного хранения, что снижает затраты на хранение и ускоряет операции чтения.

  • Работа с данными в реальном времени: Отлично подходит для работы с потоковыми данными и может обновляться в реальном времени.

  • Открытый исходный код: Разработка ведётся с открытым исходным кодом.

PostgreSQL

PostgreSQL — это объектно-реляционная система управления базами данных (ORDBMS), которая известна своей надёжностью, гибкостью и соответствием стандартам SQL. Это универсальная система, которая подходит для множества различных сценариев, включая OLTP (онлайновая транзакционная обработка) и начальный уровень OLAP.

Особенности PostgreSQL:

  • Универсальность: PostgreSQL поддерживает как текстовые, так и числовые данные, JSON, геопространственные данные и многое другое.

  • Расширяемость: Система известна своей высокой степенью настройки и расширяемости. Разработчики могут писать свои собственные функции и операторы, а также использовать множество доступных расширений.

  • Транзакции: Поддерживает ACID-транзакции, обеспечивая надёжность данных через механизмы контроля согласованности.

  • Безопасность: Обеспечивает высокий уровень безопасности данных благодаря мощной системе управления доступом и шифрованию данных.

  • Открытый исходный код: Постоянно развивается большим сообществом и является полностью открытым исходным кодом.

Когда использовать каждую СУБД

  • ClickHouse лучше использовать для сценариев, где требуется быстрая обработка и анализ больших объёмов данных, таких как аналитика больших данных, веб-аналитика, мониторинг и анализ логов.

  • PostgreSQL является более подходящим выбором для приложений, требующих надёжных транзакций, сложной бизнес-логики на стороне сервера или работы с разнообразными типами данных и запросов, включая приложения для управления контентом, финансовые системы и другие корпоративные приложения.

Выбор между этими двумя системами зависит от специфических требований вашего проекта и типа задач, которые вы хотите решить.

Сплошной схематоз

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

Мы за работой. Редкий кадр. Жена сфотографировала.
Мы за работой. Редкий кадр. Жена сфотографировала.

Получился отличный пайплайн, который ознаменовывал жизненный путь каждого сообщения (новости).

Парсер

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

Препроцессинг

Затем вступает в игру сервис препроцессинга, обрабатывающий и структурирующий сырые данные, готовя их к пересказу. Очистка текста, выделение ключевых слов и фактов — всё это на его плечах.

YandexGPT

Следующий этап — сервис пересказа с использованием YandexGPT API, который берёт подготовленный текст и преобразовывает его в удобоваримый, интересный пересказ. Этот микросервис — сердце нашей системы, добавляет к текстам понимание и новую жизнь.

Отвлечение раз

Давайте на этом месте немного отвлечёмся, любопытно же. Представляете, что получается? Мы с помощью одного искусственного интеллекта оборачиваем в сервис другой искусственный интеллект. Крышу от осознания этого сносит, и начинает беспокоить вопрос: «А я‑то здесь зачем нужен?».

Два ИИ в нашем гараже создают Telegram-сервис.
Два ИИ в нашем гараже создают Telegram‑сервис.

Но вас, уважаемый коллега и читатель, может интересовать совсем другой вопрос: «Почему YandexGPT, а не GPT-4 Turbo?» Этим вы как бы намекаете на то, что код нам пишет ChatGPT (OpenAI), поэтому можно было использовать их API. Рассказываем без утайки. Не знаем, как другие модели Яндекса, но именно модель YandexGPT Pro для наших задач подошла очень хорошо: стоит дешевле и наши российские IP не блокирует.

Отвлечение закончено. Снова к работе сервисов.

Постпроцессинг

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

Озвучка

«Озвучка» синтезирует из текста речь, делая новости доступными не только для чтения, но и для прослушивания. С этой целью мы используем сервис Yandex SpeechKit, общаясь с ним также через API.

Телеграм паблишер

И, наконец, сервис публикации, который отвечает за отправку готового контента в канал Телеграма.

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

Вот одна из схем верхнеуровневой архитектуры одного из этапов обсуждения. Как видите, она немного отличается от того, что написано (выбор между Kafka и RabbitMQ на ней под вопросом, а парсера в привычном нам сейчас виде нет — их там аж N). И откроем один секрет: по архитектуре мы советовались не только с ChatGPT. О чём это говорит? О том, что доверие приходит со временем.

Одна из наших первых схем с Ильёй. Раритет. Когда-нибудь мы выпустим на нее NFT и продадим на аукционе.
Одна из наших первых схем с Ильёй. Раритет. Когда-нибудь мы выпустим на нее NFT и продадим на аукционе.

Осталось это запрограммировать.

И чуть не забыли. Мы же ещё хотели CI/CD. Это когда пишешь, пишешь код, а потом одной кнопкой пуш — и он уже крутится на сервере, всё работает как по мановению волшебной палочки, и сообщения сыпятся в наш новостной канал.

Итого

Оказалось, что нам надо:

  • закодить пяток микросервисов,

  • настроить обменники с очередями в RabbitMQ и подключить к ним микросервисы,

  • настроить связку ClickHouse с RabbitMQ,

  • настроить CI/CD (ChatGPT настоял, чтобы это был Docker Compose в связке с Github Actions),

  • и ещё по мелочи разные девопсовские штучки типа настройки сервака и т. д.

Про тестирование и документирование мы скромно промолчим, это идёт по умолчанию.

Примечание. Уже при реализации выяснилось, что нам остро не хватает микросервиса фильтрации рекламы, которой изобилуют некоторые источники новостей. А дальнейшее развитие нашего сервиса в целом требует ещё и классификатор новостей по темам, которым мы прямо сейчас занимаемся. И о том, и о другом мы обязательно напишем в следующих статьях.

А это один из первых вариантов от ChatGPT. Да, да, его тоже иногда заносит.
А это один из первых вариантов от ChatGPT. Да, да, его тоже иногда заносит.

Мы с Ильёй смотрели на это и думали: «Ничего себе работы для ChatGPT». Сами‑то мы ничего этого делать не собирались. И, признаться, мы поначалу сомневались, что он справится за 20 баксов с таким объёмом работы.

Но работу он сделал. Да, были проблемы, а у кого их не бывает. Но главный результат есть — TechMix работает.

Отвлечение два

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

Давайте ответим на некоторые вопросы и попробуем составить начальный список рекомендаций, который, надеемся, поможет вам в работе с ИИ‑помощниками. Оговорка для читателей из недалёкого (через год, 2025 г.) будущего: не смейтесь над нами, мы, люди 2024 года, всё ещё привыкаем к работе с ИИ.

Начать хочется с последнего и наиболее часто задаваемого вопроса, который можно назвать высокомерным замечанием: «Он же джун. Он пишет слабый код». А как мы вообще нанимаем людей на работу и отделяем джунов от миддлов и сеньоров? Обычно через интервью. Расскажем один случай в качестве иллюстрации.

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

Мы в своей работе используем ChatGPT 4, платную версию. ChatGPT 4 был значительно улучшен по сравнению с ChatGPT 3.5, что делает его более мощным инструментом. Помимо улучшения понимания контекста, качества ответов, универсальности, обработки инструкций и минимизации предвзятости, в ChatGPT 4 были добавлены возможности работы с файлами и поиска в интернете. А с выходом ChatGPT 4o повысилась и скорость ответов — раньше приходилось ждать, пока допишет.

Уже на текущем уровне развития искусственный интеллект обладает знаниями и навыками, которые нам и до конца жизни не приобрести. В нашем айтишном мире это означает знание нескольких языков, сред разработки, огромного количества фреймворков и библиотек и так далее. Единственное, чего не хватает (но это решаемо) ChatGPT сейчас — это онлайн‑доступа к обновляемым базам знаний.

Так, может быть, дело не в ChatGPT?

Помните, как было в старой рекламе:

 — Вот за это я и не люблю кошек.
 — Ты просто не умеешь их готовить.

И здесь отвлечение два плавно переходит в cookbook.

Учимся готовить с ChatGPT (наш cookbook)

Что такое cookbook? (автор ChatGPT)

Что такое cookbook? (автор ChatGPT)

Cookbook — читается кукбук.

В IT‑мире термин «cookbook» обычно используется в нескольких контекстах, но в основном он относится к сборникам «рецептов» или лучших практик для решения определённых задач или проблем.

Вот несколько примеров использования термина:

  1. Программирование и разработка ПО: В контексте программирования cookbook может быть книгой или онлайн‑ресурсом, который содержит набор рецептов или руководств по программированию. Эти «рецепты» обычно описывают, как решать конкретные программные задачи или как использовать определённые технологии или языки программирования. Например, «Python Cookbook» содержит решения для различных задач программирования на Python.

  2. Инфраструктура и автоматизация: В области управления инфраструктурой и автоматизации, например, в инструментах управления конфигурациями, таких как Chef, термин «cookbook» используется для обозначения набора сценариев (рецептов), которые описывают, как автоматически настраивать программное обеспечение или системы. Каждый «рецепт» в таком cookbook определяет ресурсы и порядок действий, которые необходимы для достижения определённого состояния системы или приложения.

  3. Безопасность: В контексте информационной безопасности cookbook может содержать наилучшие практики, сценарии или методики, которые помогают обеспечить безопасность информационных систем. Это могут быть рекомендации по настройке безопасности, шаблоны политик безопасности или руководства по реагированию на инциденты.

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

В гараже над cookbook’ом.
В гараже над cookbook’ом.

Вот основные поинты нашего cookbook»а по разработке приложений и программированию с ChatGPT на основе нашего личного опыта, подтверждённого работающим прод‑решением (это мы о TechMix):

Психологический барьер экспертного сопротивления.

Чем больше вы знаете и умеете, тем сложнее вам будет относиться к ChatGPT как к помощнику и эксперту высокого уровня, которому можно доверять. Вполне допускаем, что на подсознательном уровне некоторыми нашими коллегами ChatGPT может ревностно восприниматься как конкурент. Это психологический барьер.

Но, если вы правильно ответите на вопрос из анекдота «вам шашечки или ехать?», то в машину надо запрыгивать, следующее такси будет дороже, а автобус придёт неизвестно когда и будет забит под завязку.

К ChatGPT надо относиться как к другу, как к себе.

Что это означает? Что все мы имеем право на ошибку. Что никто на земле не обладает исключительными знаниями. Никто не идеален — ни ваш друг, ни мы, ни вы. Поэтому не ждите идеального ответа с первого раза. Учитесь прощать и признавать право на ошибку, учитесь переспрашивать и уточнять. Признайтесь, вы с первого раза не можете написать правильный запрос. Так почему вы ждёте правильный ответ?

Вам тоже надо учиться — учиться выстраивать взаимоотношение с ChatGPT, учиться общаться с ним.

Промпт‑инжиниринг.

На наш взгляд, значение так называемого промпт‑инжиниринга (составление запросов к ChatGPT) сильно преувеличено.

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

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

Это диалог, это общение с целью, пусть и не всегда с первого раза, но найти решение. Поиск ответа и написание кода — это итерационные процессы и у людей, и при работе с ChatGPT.

Несколько советов по общению с ChatGPT:

  • Формулируйте чёткие и конкретные вопросы. Чем точнее вопрос, тем точнее будет ответ.

  • Вставляйте в запрос файлы, цитаты, код. В ChatGPT 4 вы можете прикрепить файлы, вставить цитату из раннего с ним диалога, вставить в текст запроса свой или чужой код, выдержки из документации и так далее. Это почти всегда помогает получать лучший ответ.

  • Оценивайте и корректируйте ответы. Не принимайте всё, что говорит ChatGPT, на веру. Да, он может ошибаться. Проверяйте, прощайте и уточняйте, как вы это обычно делаете при ревью кода коллег по работе. Никто не пишет код без ошибок с первого раза. Например, написанный ChatGPT код можно сразу запустить и, если он выдал ошибку, скопировать текст этой ошибки в диалог. ChatGPT ответит, что с этим делать. Возможно, он посоветует установить или обновить библиотеку, а возможно, извинится и перепишет код, а может быть, задаст вам уточняющий вопрос.

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

Пишем код. Идём от общего к частному и декомпозируем задачи:

  1. Сначала обсудите с ChatGPT верхнеуровневую структуру своего приложения.

  2. Дальше попросите набросать структуру одного из микросервисов (предположим, вы, как и мы, строите микросервисную архитектуру). Это будут модули, классы.

  3. Затем попросите написать один из классов. Мы говорим про классы и методы, но вы, возможно, используете другую парадигму программирования — для ChatGPT это не проблема.

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

    В ответе вы получите код класса с методами. Если класс большой, то часть методов класса будут «пустышками». Это не значит, что ChatGPT ленится. Это значит, что он не уложился в лимит токенов на вывод сообщения.

  4. В следующих запросах вы можете попросить написать каждый метод класса отдельно (в первую очередь «пустышек»).

  5. Посмотрите весь код. Если чего‑то не хватает, он забыл, попросите его дописать.

    Возможно, вы сами забыли попросить его написать обработку ошибок (и он это не сделал почему‑то), не поздно это сделать сейчас.

    Возможно, вам нужны докстринги, вставьте весь код класса и попросите составить более подробные комментарии к коду и верхний докстринг с описанием класса.

    Возможно, вы захотите составить unit‑тесты, попросите, и он сделает. Если вам что‑то в коде не понятно, не стесняйтесь, спрашивайте ChatGPT и он объяснит.

  6. Теперь запускаем получившийся код. Если есть ошибки, копируйте эти ошибки в ChatGPT, он вам поможет отладить код.

DevOps

В современном мире администратор уже не администратор со скромной зарплатой, а devops, получающий зачастую больше топовых программистов. А почему? Потому что растущее количество и сложность всевозможных платформ, систем и приложений и необходимость заставить их все как‑то дружить между собой вселяет благоговейный ужас в каждого, кто с этим сталкивался хотя бы раз в жизни.

Мы не девопсы. В нашем случае ChatGPT помог решить наши девопс‑задачи настолько легко и быстро на тестовом сервере, что мы даже расслабились. За что были наказаны при переезде на прод‑сервер.

И вспоминается ещё один старый анекдот:
 — Какой вывод из этого, сынок?
 — Не надо расслабляться.

Правда, виноват в этом не столько ChatGPT… Но об этом мы расскажем в следующей статье. А пока лишь скажем, что ChatGPT стал ещё и нашим девопсом, совершив для нас несколько технических чудес.

Принцип решения devops‑задач с ChatGPT тот же, что и при программировании. Вы чётко описываете свою проблему, он даёт вам рекомендацию, вы её применяете. И, если вдруг не сработало, отправляете ему ошибку. И так до тех пор, пока у вас всё не заработает.

Зацикленность

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

Как выходить из такой ситуации, чтобы не терять время? Единственного универсального совета нет. Вот несколько идей:

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

  • Если у вас проблема с библиотекой, сервисом, фреймворком и т. д., зайдите на их сайт с документацией (чаще либо запутанной, либо чрезвычайно скупой и без примеров) и скопируйте части, относящиеся, как вам кажется, к вашей проблеме, в ChatGPT. ChatGPT скажет: «Ого! Теперь всё стало понятно. В соответствии с обновлённой документацией, вам надо сделать так…».

Время

К хорошему быстро привыкаешь. И поэтому, когда с ChatGPT не удаётся что‑то сделать с первого раза за 2–5 минут, возникает возмущение: «Ну, как так?!». Это неблагодарность с нашей стороны. Надо быть более терпеливыми и помнить, что в большинстве случаев ChatGPT экономит не минуты и часы, а дни! Более того, ChatGPT позволяет нам быть теми, кем мы по факту не являемся (программистами, дата‑сайентистами, аналитиками, архитекторами, девопсами), и при этом чувствовать себя уверенно!

Отвлечение два вместе с cookbook закончено.

От слов к делу

Пора переходить к демонстрации практики, промптам, диалогам, настройкам, коду... Простите, вот прямо сейчас меня дергает за локоть ChatGPT, намекая, что пора заканчивать языком молоть и надо продолжать работать над проектом. А почему? А потому, что без нас ChatGPT даже копипаст сделать не может. Так что всё ещё в наших руках, руках людей, а не искусственного интеллекта. Поэтому ещё раз простите, но нам пора. Пошли работать, пока ещё нужны. Но в следующей статье мы расскажем всё, что не успели сегодня. А, возможно, это будет ещё и не одна статья.

До новых встреч, друзья!
Будем рады ответить на ваши вопросы в комментариях.
И заходите к нам на огонёк за свежими новостями в TechMix.

Продолжение следует...

Мы вас ждем ❤️
Мы вас ждем ❤️

Комментарии (30)


  1. iGeophysix
    15.05.2024 09:24

    Воооот! Отличный результат и канал читаемый получился.
    Говорю же, что заменит ГПТ программистов и опсов!
    Прогресс и ИИ тупо отрицать: раньше на перфокартах шарашили, и были зануды, которые говорили что языки программирования - ни о чем и без них не справятся :-D
    Ну конечно же в самых сложных ситуациях нужно подкрутить тут-там-сям. А за программистами не надо подкручивать? Код-ревью для чего придумали.

    Очень рад, что есть живой кейс, который могу теперь показывать всем хейтерам, которые считают, что "ГПТ никогда не заменит человека"



    1. EddyLan Автор
      15.05.2024 09:24
      +1

      Большое спасибо за интересный комментарий! Да, прогресс идет независимо от нас. Мы же только и успеваем под него подстраиваться. Спасибо еще раз!


      1. rukhi7
        15.05.2024 09:24
        +1

        Прогресс идет давно и как-то волнами.

        На смену античному рассвету приходит Святая инквизиция,

        на смену научным прорывам, период мировых войн...

        В общем скрипач, то есть программист не нужен, нужно КЦ.


        1. EddyLan Автор
          15.05.2024 09:24
          +1

          Огонь комментарий! На самом деле, я считаю, что программисты будут нужны, вернее, инженеры-разработчики. И потребуется их больше, чем сейчас. И поможет в этом, кажется, ИИ. То есть средства разработки сильно упростятся и станут доступны большему количеству людей. Конечно, ценность этой профессии может упасть в следствии массовости. Но гениальные умы найдут свое место, где им будет чем заняться, кроме нажатия на одну кнопку ))


          1. rukhi7
            15.05.2024 09:24

            То есть средства разработки сильно упростятся и станут доступны большему количеству людей.

            Как вы считаете физика сильно упростилась после того как была сформулирована теория относительности?

            А после открытия транзистора и замены им ламповой техники, насколько упростилась эта техника? А транзисторы ведь проще чем лампы... или нет? Или проще только в каком то смысле?

            Не надо ничего придумывать, надо просто вспомнить как что происходило-развивалось раньше.

            Кстати лично для меня средства разработки ОЧЕНЬ сильно упростились с начала 90-х годов прошлого века, но я не сказал бы что они стали доступнее большему количеству людей, хотя количество людей которые ими пользуются или пытаются пользоваться безусловно сильно возросло.


            1. EddyLan Автор
              15.05.2024 09:24
              +1

              Я точно знаю, что отсутствия знаний по физике не мешает миллионам китайцев, работающих на конвейерах, собирать лучшую электронику в мире.

              Совершенствование средств производства зачастую приводило к росту числа тех, кто их использует.


              1. rukhi7
                15.05.2024 09:24

                Совершенствование средств производства зачастую приводило к росту числа тех, кто их использует.

                Мне кажется пример с конвеером в контексте кто кого использует очень не однозначный :). Непонятно это милионы используют конвеер или это владельцы конвеера испльзуют миллионы посредством конвеера.

                Кстати конвеер сам по себе тоже очень интересное изобретение, не знаю можно ли сравнивать с ГПТ, но у меня аналогия явно напрашивается.


                1. EddyLan Автор
                  15.05.2024 09:24
                  +1

                  Сергей, да, в истории были аналогии и в одну сторону и в другую. Например, изобретение станков сделало крестьян рабочими, а ремесленники исчезли. И рабочих стало намного больше, чем было ремесленников. Причину мы знаем, снижение себестоимости, больший спрос и все такое.
                  Но знаем и другой пример - станки с ЧПУ - или автономные роботизированные комплексы. В этом случае, рабочих почти не стало.

                  С ИИ мне кажется мы скорее подходим пока под первый вариант. От ремесленников к рабочим из крестьян ;) Почему так? Потому то впереди не просто ИИ, а IoT во всем, роботизация. И это все кто-то должен программировать, обслуживать, учить. Сейчас столько программистов нет. А автономности у ИИ (чтобы взять все это на себя) пока маловато. Поэтому скорее ИИ будет использоваться как улучшенное средство производства, которое повышает производительность труда инженера при снижении себестоимости. Инженером сможет стать чуть ли не каждый. Название инженер - условное.


                  1. rukhi7
                    15.05.2024 09:24

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

                    Я бы так однозначно не утверждал, что мы знаем причину или даже просто можем ее так легко сформулировать.

                    Вы вот вспомните как люди построили множество пирамид в пустыне, был тогда спрос на пирамиды? -Конечно был! А что с производительностью? А производительность была не важна, важна была осуществимость идеи! То есть бывает так что производительность не надо упоминать, и мы с вами про какое направление человеческой деятельности говорим, не совсем понятно, и непонятно, соответственно, актуальность упоминания производительности.

                    А вот Алан Тьюринг не был фараоном, но смог организовать людей сделать машину которая умеет делать расчеты. Я к чему, важна не производительность, а правильное целеполагание, правильное понимание результата и того каким способом достичь этого результата. Я боюсь что у ИИ целепологание резко отличается от человеческого, если оно вообще есть.

                    С ИИ мне кажется мы скорее подходим пока под первый вариант. От ремесленников к рабочим из крестьян

                    я думаю крестьяне не оценили бы вашего позитива, вот что говорят крестьяне в лице Григория из Тихого Дона, примерно, по этому вопросу:

                    - ошибаешься ты, Аксинья, ошибаешься! Гутаришь, а  послухать  нечего.  Ну,  куда  я

                    пойду от хозяйства? Опять же, на службу  мне  на  энтот  год.  Не  годится

                    дело... От земли я никуда не тронусь. Тут степь, дыхнуть есть чем, а  там?

                    Прошлую зиму ездил я с батей  на  станцию,  так  было-к  пропал.  Паровозы

                    ревут, дух там чижелый от горелого угля. Как народ живет - не знаю, может,

                    они привыкли к этому самому угару...  -  Григорий  сплевывает  и  еще  раз

                    говорит: - Никуда я с хутора не пойду.


                    1. EddyLan Автор
                      15.05.2024 09:24
                      +1

                      Как-то ушли от темы.
                      Вернусь. Программист в ближайшие годы еще будет нужен, но немного в другом статусе. И таких "новых" программистов будет больше, чем сейчас.
                      Это мое мнение. Кратко я свои аргументы высказал выше.
                      Извиняюсь, но дальше углубляться в философию, историю и литературу (Тихий Дон очень люблю) прямо сейчас не могу себе позволить.
                      Спасибо вам за комментарии и общение!


    1. Le0Wolf
      15.05.2024 09:24

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

      По факту, таким образом можно начать портотип чего то несложного, ровно как и с использованием подходов LowCode и NoCode, но разработать серьезный продукт либо вовсе не получится, либо будет дольше, чем если бы этим занимался профессионал.