Поддерживаемые возможности

Предварительные требования

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

Возможность ИИ-разработки плагинов работает на основе навыка nocobase-plugin-development. Если вы уже выполнили инициализацию через NocoBase CLI (nb init), этот навык устанавливается автоматически.

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

Примечание
  • NocoBase переходит с client (v1) на client-v2, при этом client-v2 всё ещё находится в разработке. Клиентский код, генерируемый при ИИ-разработке, основан на client-v2 и может использоваться только по пути /v/. Он доступен для раннего доступа и экспериментов, но не рекомендуется для использования в продакшене.
  • Сгенерированный ИИ код может быть не на 100% корректным. Рекомендуем проверить его перед включением. Если при выполнении возникают ошибки, отправьте сообщение об ошибке ИИ — он проанализирует и исправит проблему; обычно достаточно нескольких раундов диалога.
  • Для разработки рекомендуем использовать модели серии GPT или Claude — они дают лучшие результаты. Другие модели тоже подойдут, но качество генерации может отличаться.

Лучшие практики

  • Явно укажите ИИ, что нужно создать или изменить плагин NocoBase, и укажите имя плагина -- например, «Помоги мне использовать навык nocobase-plugin-development для разработки плагина NocoBase с именем @my-scope/plugin-rating». Без имени плагина ИИ может не понять, куда генерировать код.
  • Явно укажите в запросе использование навыка nocobase-plugin-development -- например, «Помоги мне использовать навык nocobase-plugin-development для разработки плагина NocoBase...». Это позволяет ИИ агенту напрямую получить доступ к возможностям навыков, избегая режима планирования, в котором навыки могут быть проигнорированы.
  • Запускайте ИИ агента в корневом каталоге репозитория исходного кода NocoBase -- так ИИ автоматически найдёт структуру проекта, зависимости и существующие плагины. Если вы не в корневом каталоге исходного кода, дополнительно укажите ИИ агенту путь к репозиторию исходного кода.

Краткий справочник

Я хочу…ИИ может помочь вам
Создать новый плагинСгенерировать полный каркас, включая структуру каталогов клиентской и серверной части
Определить коллекцииСгенерировать определения Collection со всеми типами полей и связями
Создать пользовательский блокСгенерировать BlockModel + панель настроек + зарегистрировать в меню «Добавить блок»
Создать пользовательское полеСгенерировать FieldModel + привязать к интерфейсу поля
Добавить пользовательскую кнопку действияСгенерировать ActionModel + всплывающее окно/выдвижной блок/диалог подтверждения
Создать страницу настроек плагинаСгенерировать форму на клиенте + API на сервере + хранилище
Написать пользовательский APIСгенерировать Resource Action + регистрацию маршрута + конфигурацию ACL
Настроить права доступаСгенерировать правила ACL для управления доступом по ролям
Поддержать несколько языковАвтоматически сгенерировать языковые пакеты на китайском и английском
Написать скрипт миграцииСгенерировать Migration с поддержкой DDL и миграции данных

Каркас плагина

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

Пример запроса:

Помоги мне создать плагин NocoBase с именем @my-scope/plugin-todo

ИИ выполнит yarn pm create @my-scope/plugin-todo и сгенерирует стандартную структуру каталогов:

packages/plugins/@my-scope/plugin-todo/
├── src/
│   ├── server/
│   │   └── plugin.ts
│   ├── client-v2/
│   │   └── plugin.tsx
│   └── locale/
│       ├── zh-CN.json
│       └── en-US.json
├── package.json
└── ...

Определения коллекций

ИИ может сгенерировать определения коллекций для всех типов полей NocoBase, включая связи (один-ко-многим, многие-ко-многим и т. д.).

Пример запроса:

Помоги мне использовать навык nocobase-plugin-development для разработки плагина NocoBase с именем @my-scope/plugin-order,
затем определи таблицу "orders" со следующими полями: номер заказа (автоинкремент),
имя клиента (строка), сумма (десятичное число), статус (одиночный выбор: ожидание/в обработке/завершён),
и время создания.
Заказы имеют связь многие-к-одному с клиентами.

ИИ сгенерирует определение defineCollection, включая типы полей, значения по умолчанию, конфигурацию связей и многое другое.

Пользовательские блоки

Блоки — самый фундаментальный способ расширения клиентской части NocoBase. ИИ может помочь сгенерировать модели блоков, панели настроек и регистрацию в меню.

Пример запроса:

Помоги мне использовать навык nocobase-plugin-development для разработки плагина NocoBase с именем @my-scope/plugin-simple-block.
Создай пользовательский блок отображения (BlockModel), в панели настроек которого пользователи могут вводить HTML-содержимое,
а блок отображает этот HTML. Зарегистрируй этот блок в меню «Добавить блок».

ИИ сгенерирует BlockModel, создаст панель настроек через registerFlow + uiSchema и зарегистрирует его в меню «Добавить блок».

Полный пример см. в разделе Создание пользовательского блока отображения.

Пользовательские компоненты полей

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

Пример запроса:

Помоги мне использовать навык nocobase-plugin-development для разработки плагина NocoBase с именем @my-scope/plugin-rating.
Создай пользовательский компонент отображения поля (FieldModel), который отображает поля целочисленного типа в виде звёзд,
с поддержкой рейтинга от 1 до 5. Клик по звезде должен напрямую изменять значение рейтинга и сохранять его в базу данных.

Эффект отображения компонента рейтинга

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

Пользовательские действия

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

Пример запроса:

Помоги мне использовать навык nocobase-plugin-development для разработки плагина NocoBase с именем @my-scope/plugin-simple-action.
Создай три пользовательские кнопки действия (ActionModel):
1. Кнопка уровня коллекции в верхней части блока, при клике показывающая сообщение об успехе
2. Кнопка уровня записи в столбце действий каждой строки таблицы, при клике отображающая ID текущей записи
3. Кнопка обоих уровней, отображающаяся в обоих местах, при клике показывающая информационное сообщение

ИИ сгенерирует ActionModel, управляет размещением кнопки через ActionSceneEnum и обрабатывает события клика через registerFlow({ on: 'click' }).

Полный пример см. в разделе Создание пользовательской кнопки действия.

Страница настроек плагина

Многим плагинам нужна страница настроек, чтобы пользователь мог настраивать параметры -- например, API-ключи сторонних сервисов, URL webhook и т. д.

Пример запроса:

Помоги мне использовать навык nocobase-plugin-development для разработки плагина NocoBase с именем @my-scope/plugin-settings-page.
Создай страницу настроек плагина, которая регистрирует пункт «Конфигурация внешнего сервиса» в меню «Настройки плагина» с двумя вкладками:
1. Вкладка «Конфигурация API»: форма с полями API-ключ (строка, обязательное), API-секрет (пароль, обязательное), Endpoint (строка, необязательное), сохраняемая в базу данных через API на сервере
2. Вкладка «О плагине»: отображает имя плагина и информацию о версии
На клиенте используй компоненты формы Ant Design, на сервере определи эндпоинты externalApi:get и externalApi:set.

Эффект страницы настроек плагина

ИИ сгенерирует компонент страницы настроек на клиенте, Resource Action на сервере, определение коллекции и конфигурацию ACL.

Полный пример см. в разделе Создание страницы настроек плагина.

Пользовательские API

Если встроенных CRUD-эндпоинтов недостаточно, ИИ может помочь написать пользовательские REST API. Ниже — полный пример клиент-сервер: на сервере определяются коллекции и API, на клиенте создаётся пользовательский блок для отображения данных.

Пример запроса:

Помоги мне использовать навык nocobase-plugin-development для разработки плагина NocoBase с именем @my-scope/plugin-todo.
Создай плагин управления данными Todo с интеграцией клиента и сервера:
1. На сервере определи таблицу todoItems с полями: title (строка), completed (булево), priority (строка, по умолчанию medium)
2. На клиенте создай пользовательский TableBlock, отображающий только данные todoItems
3. Поле priority должно использовать цветные теги Tag (high — красный, medium — оранжевый, low — зелёный)
4. Добавь кнопку «Новая задача», по клику открывающую форму для создания записи
5. Вошедшие пользователи могут выполнять все операции CRUD

Эффект плагина управления данными Todo

ИИ сгенерирует определения Collection на сервере, Resource Actions, конфигурацию ACL, а также TableBlockModel, пользовательский FieldModel и ActionModel на клиенте.

Полный пример см. в разделе Создание плагина управления данными с интеграцией фронтенда и бэкенда.

Конфигурация прав доступа

ИИ автоматически настроит подходящие правила ACL для сгенерированных API и ресурсов. Вы также можете явно указать требования к правам в запросе:

Пример запроса:

Помоги мне использовать навык nocobase-plugin-development для разработки плагина NocoBase с именем @my-scope/plugin-todo.
Определи коллекцию todoItems (с полями title, completed, priority).
Требования к правам: вошедшие пользователи могут просматривать, создавать и редактировать; удалять может только роль admin.

ИИ настроит соответствующие правила доступа на сервере через this.app.acl.allow().

Интернационализация

По умолчанию ИИ генерирует языковые пакеты на китайском и английском (zh-CN.json и en-US.json) -- отдельно запрашивать их не нужно.

Если нужны дополнительные языки:

Помоги мне использовать навык nocobase-plugin-development для разработки плагина NocoBase с именем @my-scope/plugin-order.
Мне нужны языковые пакеты на китайском, английском и японском.

Скрипты миграции

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

Пример запроса:

Помоги мне использовать навык nocobase-plugin-development для написания скрипта миграции для плагина NocoBase @my-scope/plugin-order.
Добавь поле "notes" (длинный текст, необязательное) в таблицу "orders",
и установи значение по умолчанию поля notes равным "N/A" для всех существующих заказов.

ИИ сгенерирует версионированный файл Migration, включая операции DDL и логику миграции данных.

Связанные ссылки