Привет, мир ИИ!

Привет, мир ИИ!

ㅡ Рефлексия ленивого бэкенд-разработчика ㅡ

Динамическое проектирование CMS

В январе 2026 года я вернулся в штаб-квартиру и присоединился к проекту «Система управления туристическим контентом (Pinlime)». Мы работали над переработкой проекта, который ранее применялся в одной компании, на основе новейшей архитектуры. Проект был спроектирован так, чтобы гибко хранить структуру JSON для удобного управления множеством туристических ресурсов и свободно изменять пользовательский интерфейс.

image1.png

Динамическое проектирование CMS

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

Система, трудная в использовании

Как разработчику, мне явно понравилась эта структура, так как она была гибкой и привлекательной. Однако, когда я начал определять поля ввода для ввода данных о туристических объектах, собирать поля ввода в группы и определять контент-модель, подходящую для определенного типа категории туристического объекта, у меня начали возникать сомнения.

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

image2.png

image3.png

image4.png

Легко предсказуемая ситуация на месте

AI - Встреча с LLM

На тот момент я не знал, как пользоваться такими инструментами, как ClaudeCode или Codex, которые все использовали, и лишь на уровне спрашивал и проверял знания о коде и проектировании на сайте LLM. Иными словами, я был полным новичком в AI. Когда я думал о том, что такое AI-инженер, мне казалось, что это создание и обучение моделей для разработки продуктов, подобных AlphaGo, и я жил с такой мыслью. Поэтому, единственное, что я мог придумать, чтобы упростить использование этой системы на практике, это улучшение пользовательского интерфейса.

В это время было решено добавить функцию "AI-путешественник" в Pinlime. Эта функция разрабатывается командой Lakey, и я стал частью подключения потоков данных между Pinlime и Lakey. Моя задача заключалась в передаче данных команде Lakey и отображении полученных данных на экране, но из-за некоторого любопытства и необходимости создать удобный интерфейс, я решил исследовать это более подробно.

Использовать ИИ для создания систем оказалось неожиданно простым заданием. Мы не ушли далеко за пределы простых вопросов к LLM на веб-сайте Gemini. На самом деле, многие функции ИИ “Написание промпта -> Вызов LLM -> Показ результатов”Происходит на уровне.

  • Путешественник: данные о туристических местах + подсказка для написания эссе + запрос = результат эссе

  • Многоязычный перевод: текст для перевода + подсказка для перевода + запрос = результат перевода

image5.png

Сложность применения ИИ

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

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

image6.png

Руками немного больше, но миграция контента упростилась

Переход на разработку с использованием AI-Native

Конечно, разработка приложений с использованием LLM/LMM не так проста, как в приведенном примере. Если традиционное программирование представляет собой «входные данные -> правило -> установленный вывод», то разработка с использованием LLM/LMM подразумевает «входные данные -> вероятностное рассуждение -> переменный вывод», поэтому просто закрепить результаты может вызвать серьезные проблемы. Существует множество факторов, которые необходимо учитывать, которые отличаются от традиционного программирования, таких как контроль галлюцинаций, структурирование формата вывода, безопасность подсказок и блокировка злонамеренных входных данных, предотвращение утечки конфиденциальной информации, контроль затрат на токены и т. д.

Тем не менее, причина, по которой необходимо перейти от традиционного программирования к разработке на основе LLM/LMM, ясна. Чтобы решить проблему традиционным способом, необходимо много затрат и времени, или реализовать это сложнее для LLM/LMM, который решает это с подавляющей эффективностью, хотя и не с 100% точностью.

image7.png

image8.png

Возможно, я нахожусь на стадии Hello World разработки программного обеспечения AI-Native. Оставлять такие заметки с уровня знаний, достаточного для того, чтобы напечатать Hello World, на самом деле немного стыдно. Вызов API LLM/LMM — задача простая, но правильно обращаться с подсказками и полностью контролировать процесс с помощью традиционных методов разработки программного обеспечения — это задача совершенно другого уровня. Даже если это ИИ, работающий по вероятностному принципу, продукт, который мы создаем, всегда должен работать в пределах предсказуемого диапазона надежно. Только тогда пользователь сможет спокойно им пользоваться. Думаю, это и есть наша роль как разработчиков в эпоху ИИ.

zacca

Site footer