AI-инструменты

Всё, что AI-помощник умеет, одинаково в любом магазине Melbis: файлы, данные, деревья, витрина. AI-инструменты — исключение: их пишет владелец под свой магазин. Завести товар так, как заводит его именно он, с его проверкой дублей и его расчётом цены; закрыть заказ по его правилам.

Список инструментов — данные, а не код: заведённая строка появляется у помощника со следующим подключением, и обновлять для этого ни программу, ни движок не нужно.

Инструмент стоит завести, когда видно одно из двух:

Где заводят

«Проектирование → AI-инструменты». Слева каталог инструментов, справа — команды выбранного и разрешения на каждую из них.

Каталог устроен как остальные деревья программы: разделы-папки для группировки, признак группы ставится кнопкой на панели. Папка инструментом не является — у неё нет ни команд, ни разрешений, и помощнику она не видна.

Карточка инструмента

Поле Что задаёт
Наименование имя строки в каталоге; помощник видит его как название инструмента
Модуль имя файла модуля в папке units; им же помощник зовёт инструмент
Описание для AI-помощника что инструмент делает и когда его звать

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

Модуль готовит разработчик — как устроен такой модуль, описано в разделе «AI-инструменты» руководства разработчика.

Команды

Поле Что задаёт
Команда слово, которым помощник называет одно дело инструмента
Описание для AI-помощника что команда делает, когда её звать и чего она не делает

Порядок строк задаётся стрелками — в этом же порядке команды видит помощник.

Имя команды — это имя функции модуля, которая её выполняет: CmdList, CmdAdd, CmdUpdate, CmdRemove. Приставка Cmd отличает команду от внутренних функций модуля, которых помощник не видит.

Список команд — ещё и защита от выдумки: слово, которого инструмент не объявлял, движок отбивает сразу и перечисляет в ответе объявленные.

Поля команды тоже объявляются здесь, по строке на поле: имя, описание, тип (число, строка, да/нет, день, час, json, поток строк, файлы), обязательность и значение по умолчанию. По этим строкам движок сам проверяет каждый вызов до модуля: лишнее поле, пропущенное обязательное или число, присланное словом, возвращаются отказом — разработчику модуля эта рутина не достаётся вовсе.

К типу можно дописать /json — тогда поле принимает и одно значение, и список: int/json для «одного товара или сразу нескольких», float/json для диапазона цены, datetime/json для «с такого дня по такой». Каждое значение списка движок проверяет тем же типом, поэтому список остаётся таким же защищённым, как одиночное значение.

Отдельно стоит тип «поток строк» (jsonl) — для инструментов, которые грузят пачку однородных записей: товары из прайса, значения характеристик, цены. Помощник передаёт в такое поле либо сами строки, либо файл со своей машины, по записи на строку — и тогда данные едут в магазин, минуя переписку. Разница ощутима: сотню товаров помощник надиктовывает минутами, а файлом, который написал его же скрипт, грузит за секунду.

Права

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

Права раздаются людям, а не помощнику. Помощник работает от имени сотрудника, который его запустил (см. «AI-помощник»), и грант считается по этому человеку. Отсюда и то, что один и тот же инструмент у разных сотрудников умеет разное.

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

Перечень инструментов и команд помощник видит целиком, независимо от прав, — и про невыданную команду отвечает адресом, а не «доступа нет»: какая команда какого инструмента и где её выдают. Этот адрес и стоит передать администратору как есть. Сотрудник, которому разрешено сохранять настройки AI, владеет всеми командами автоматически — о чём и говорит сноска под таблицами разрешений.

Готовые инструменты

С демонстрационным магазином идёт готовый набор: товары с ценами и описаниями, каталог и характеристики, файлы и профили картинок, реестр настроек, сотрудники, задачи планировщика. Точный перечень в документации не живёт — он данные магазина: полный и всегда свежий список стоит в «Проектирование → AI-инструменты», и его же помощник видит при каждом подключении.

Пара примеров, как это выглядит:

Они же служат образцами для разработки собственных.