Структура mim.lua

Подробное описание структуры конфигурационного файла mim.lua

Файл mim.lua является основой любого mim-инструмента. В этом разделе разберём его структуру подробно.

Общая структура

Типичный файл mim.lua содержит следующие компоненты:

local mim = {
    -- Метаданные
    name = "Название инструмента",
    description = "Описание инструмента"
}

-- Схема данных
mim.columns = {
    -- определение полей
}

-- Промпт для нейросети
mim.prompt = [[
    инструкции для AI
]]

return mim

Метаданные

name

Отображаемое название инструмента.

name = "Проверка товаров"

description

Краткое описание назначения инструмента.

description = "Инструмент для работы с каталогом товаров"

Схема данных (mim.columns)

Раздел mim.columns определяет входные и выходные поля инструмента.

Структура поля

mim.columns = {
    A = {
        label = "Название",      -- Отображаемое имя поля
        field_type = "STRING",   -- Тип данных
        is_required = true,      -- Обязательность
        readonly = false         -- Только для чтения
    }
}

Идентификаторы полей

Поля именуются буквами латинского алфавита (A, B, C, ...), что соответствует колонкам в табличном представлении.

mim.columns = {
    A = { label = "Входные данные", field_type = "STRING" },
    B = { label = "Результат", field_type = "STRING", readonly = true },
    C = { label = "Статус", field_type = "STRING", readonly = true }
}

Атрибуты поля

АтрибутТипОписание
labelstringОтображаемое название поля
field_typestringТип данных (STRING, NUMBER, BOOLEAN)
is_requiredbooleanОбязательно ли поле для заполнения
readonlybooleanПоле только для чтения (результат обработки)

Промпт (mim.prompt)

Раздел mim.prompt содержит инструкции для нейросети.

Статический промпт

mim.prompt = [[
Проанализируй товар и определи его категорию.
Верни только название категории без объяснений.
]]

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

Благодаря Lua можно создавать динамические промпты:

local categories = {"Электроника", "Одежда", "Продукты"}

mim.prompt = [[
Определи категорию товара из списка: ]] .. table.concat(categories, ", ") .. [[

Верни только название категории.
]]

Полный пример

local mim = {
    name = "Классификатор товаров",
    description = "Автоматически определяет категорию товара по названию и описанию"
}

mim.columns = {
    A = {
        label = "Название товара",
        field_type = "STRING",
        is_required = true
    },
    B = {
        label = "Описание",
        field_type = "STRING",
        is_required = false
    },
    C = {
        label = "Категория",
        field_type = "STRING",
        readonly = true
    },
    D = {
        label = "Уверенность",
        field_type = "NUMBER",
        readonly = true
    }
}

mim.prompt = [[
Ты — система классификации товаров.

На основе названия товара и его описания определи наиболее подходящую категорию.

Доступные категории:
- Электроника
- Одежда и обувь
- Продукты питания
- Товары для дома
- Спорт и отдых

Верни результат в формате JSON:
{
    "category": "название категории",
    "confidence": число от 0 до 100
}
]]

return mim

Рекомендации