Разработка форм при помощи AI. cloud x.. cloud x. Блог компании Cloud X.. cloud x. Блог компании Cloud X. генерация форм.. cloud x. Блог компании Cloud X. генерация форм. искусственный интеллект.. cloud x. Блог компании Cloud X. генерация форм. искусственный интеллект. Облачные сервисы.. cloud x. Блог компании Cloud X. генерация форм. искусственный интеллект. Облачные сервисы. формы.. cloud x. Блог компании Cloud X. генерация форм. искусственный интеллект. Облачные сервисы. формы. формы ввода.
Генерация форм с помощью AI проще, чем кажется

Генерация форм с помощью AI проще, чем кажется

Есть ли смысл тратить время на разработку форм с нуля, если есть возможность сгенерировать их? С каждым месяцем все больше людей склоняются к тому, что «не стоит». Но есть нюанс: вопрос безопасности. В этой статье мы поговорим о том, в чем заключаются угрозы работы с LLM для генерации, а также рассмотрим пример создания формы на базе DeepSeek.

Обилие LLM моделей, обученных под различные типы задач и размещенных в публичном доступе, безусловно соблазняет разработчика. Но за использованием публичных AI сервисов кроется угроза, о которой не принято говорить. И угроза эта серьезна, на первый взгляд может быть и не очевидная – утечка данных. Если верить цифрам из открытых источников, то на 2025 год до 77% утечек могут быть связаны с генеративным AI. С точки зрения разработки основной проблемой может быть утечка кода. Дето в том, что многие LLM производят дообучение (fine-tuning) модели на данных, предоставляемых пользователем. К каким же последствиям могут привести утечки кодовой базы в LLM? Давайте рассмотрим некоторые риски:

Вероятное событие

Вероятный результат

Вероятные последствия

В AI модель утекли исходные коды части проекта

Код теряет уникальность

Могут возникать споры об авторстве

Информация становится общедоступной

Код не является нематериальным активом компании

В модель утекли конфигурации инфраструктуры

Злоумышленник может восстановить топологию сети и/или сервисов

Повышение вероятности получения несанкционированного доступа к системам

В модель утекли уникальные алгоритмы, являющиеся коммерческой тайной

Алгоритмы могут быть использованы другими разработчиками

Упущенная прибыль и убытки компании

Таблицу можно еще продолжить, то даже с приведенными выше историями нет желания сталкиваться.

Что же делать?

Есть несколько вариантов:

·       установить приватную LLM модель и использовать ее во внутреннем контуре разработки;

·       установить на рабочее место программиста легковесную LLM;

·       использовать публичные LLM модели, но только на открытых данных;

·       отказаться от генеративного AI.

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

Давайте посмотрим, что мы отдаем пользователю, когда он загружает страницу:

– html разметку;

– Java Script сценарии;

– CSS таблицы;

– структурированные данные запросов и ответов.

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

Здесь я бы хотел обратить внимание не на сами данные, а на структуры данных. В первую очередь меня интересует структура данных запросов к API. Исходя из того, что данные мы передаем в формате JSON, то структуру этих данных можно описать по стандартам JSON Schema (https://json-schema.org/).

Готовим форму при помощи LLM

Давайте вернемся к предыдущему примеру и сделаем схему при помощи LLM. Для этого нам понадобится любая ваша любимая LLM и JSON схема, которой должна следовать LLM. Я уже подготовил файл схемы, описывающий целевую схему данных, в качестве LLM я возьму DeepSeek (https://www.deepseek.com/ ). Далее загружаю схему в DeepSeek и пишу промпт: «Напиши JSON схему, в которой есть свойства: name – строка, phone – строка, zip – число, address – строка, comment – строка, agreement – булево значение. Свойства name и phone объединены в свойство personal. Свойства zip и address объединены в свойство address. Все поля не обязательны для заполнения и могут оставаться пустыми. Полученная схема должна валидироваться схемой из файла

В результате получаю схему:

export const exampleScheme =
{
  "type": "object",
  "properties": {
    "personal": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "phone": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "address": {
      "type": "object",
      "properties": {
        "zip": {
          "type": "number"
        },
        "address": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "comment": {
      "type": "string"
    },
    "agreement": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
} as const;

Теперь я воспользуюсь пакетом “@cloudx/react-ui-kit-forms-builder” и создам реактивную форму на основе полученной схемы:

const formModel = buildFormModel(exampleScheme);

Всё, модель готова!

Теперь я поступлю так же и с UI составляющей. Здесь я также воспользуюсь утверждением, что разметка страницы не является конфиденциальной информацией и создам схему разметки. Так как в наших проектах мы используем UIKit собственной разработки, то мне достаточно создать схему расположения элементов на странице, а не опускаться на уровень HTML верстки. Файл такой схемы я также заготовил заранее. Дальше загружаю схему в DeepSeek и пишу промпт: «Напиши JSON схему, в которой есть поля: name – input, phone – input, zip – number, address – input, comment – text area, agreement – checkbox. Полученная схема должна валидироваться схемой из файла».

В полученном результате я скорректирую свойство path объекта control согласно полученной выше модели данных:

export const UiScheme = {
  "elements": [
    {
      "type": "field",
      "label": "Name",
      "control": {
        "type": "input",
        "path": "personal/name",
        "placeholder": "Enter your full name",
        "size": "md"
      }
    },
    {
      "type": "field",
      "label": "Phone",
      "control": {
        "type": "input",
        "path": "personal/phone",
        "placeholder": "+1 (555) 000-0000",
        "mode": "tel",
        "size": "md"
      }
    },
    {
      "type": "field",
      "label": "ZIP Code",
      "control": {
        "type": "number",
        "path": "address/zip",
        "placeholder": "12345",
        "minValue": 0,
        "maxValue": 99999,
        "step": 1,
        "hideSpinButtons": false,
        "size": "md"
      }
    },
    {
      "type": "field",
      "label": "Address",
      "control": {
        "type": "input",
        "path": "address/address",
        "placeholder": "Street, city, state",
        "size": "md"
      }
    },
    {
      "type": "field",
      "label": "Comment",
      "control": {
        "type": "textarea",
        "path": "comment",
        "placeholder": "Additional information...",
        "autoResize": true,
        "maxLength": 500,
        "rows": 4,
        "size": "md"
      }
    },
    {
      "type": "field",
      "label": "I agree to the terms and conditions",
      "control": {
        "type": "checkbox",
        "path": "agreement",
        "checked": false,
        "inline": true,
        "reverse": false
      }
    }
  ]
};

Теперь я повторно воспользуюсь пакетом “@cloudx/react-ui-kit-forms-builder” и создам UI формы:

const formElement = buildFormUI({
                model: formModel,
                scheme: UiScheme,
            });

Последним штрихом будет установка формы на страницу:

<FormLayout>{formElement}</FormLayout>

Получаем вот такую форму:

Разработка форм при помощи AI - 2

И с такой моделью на выходе:

Разработка форм при помощи AI - 3

Заключение

В результате мы получили готовую форму, используя ресурсы публичной модели, но при этом не компрометируя никакой информации. Это еще один пример эффективного применения нашей библиотеки @cloudx/react-ui-kit-forms-builder, так что пользуйтесь на здоровье! Ведь искусственный интеллект – это действительно ресурсоемкий актив, который иногда не стоит развертывать локально, ведь публичные модели и так вполне можно использовать для работы с формами.

Автор: SLapin_CloudX

Источник