ИИ-чат внутри сайта, который работает с данными самого сайта, через gtsAPI.
ИИ-чат внутри сайта на MODX, который работает с данными самого сайта, через gtsAPI. Отвечает на вопросы по таблицам, разбирает приложенные файлы и правит записи — но только с подтверждением и с кнопкой отката. Доступ к данным идёт через gtsAPI, поэтому потолком остаются права того пользователя, от чьего имени открыт чат: ИИ не может больше, чем человек. Для сводных цифр есть второй путь — SELECT к базе отдельным пользователем MySQL с правом только на чтение, он описан ниже.

Внимание. Пакет разрабатывался под MODX 2.8 и тестировался на MySQL 5.7. Требуется gtsAPI 1.2.0-beta или новее — он ставится автоматически как зависимость. Нужен ключ доступа к шлюзу ИИ, говорящему протоколом Anthropic (Messages API) или OpenAI; свой ключ и адрес шлюза вы вписываете сами, пакет ничего не отправляет мимо вас.
Быстрый старт
После установки зайти в админке в Компоненты->ИИ (gtsAI).
Во вкладке «Подключения» уже создано подключение к шлюзу gtsai.ru — впишите в него свой ключ. Можно указать любой другой шлюз или собственный: протокол и адрес задаются в том же подключении.
Во вкладке «Настройки чатов» лежат заготовки. Настройка чата — это имя, за которым стоят промпт, модель, права, лимиты (шагов, секунд, расход в сутки), группы пользователей и признак «хранить историю». Один сайт может иметь сколько угодно чатов с разными правами: например, чат менеджера по заказу и чат администратора по всей базе.
Чат ставится на любую страницу сниппетом:
Доступ к данным через gtsAPI
Таблица не видна ИИ, пока её не открыли явно. В настройках таблицы gtsAPI появились флаг «ai» и описание — текст, по которому модель понимает, что это за таблица и что значат поля. Разрешение выдаётся отдельно каждому действию:
— действие не объявлено — ИИ получает отказ, а не молчаливый обход;
— права пользователя остаются потолком: закрытую для него таблицу ИИ не прочитает;
— для правок обязательно включённое версионирование строки (save_version_row) — иначе откатывать будет нечем, и такой доступ просто не разрешается.
Правка от ИИ по умолчанию не применяется сразу: в чат приходит карточка «было — стало», и пишется она только по кнопке. Применённую пачку можно откатить целиком — она записана одним пакетом. Обрыв посреди работы откатывается сам. Кто, что и когда менял, видно в журнале вызовов вместе с расходом токенов и стоимостью.
Доступ к базе на чтение (SQL) — для администраторов
Инструменты таблиц хороши для обычных данных, но на вопрос «почему в сентябре просела прибыль» ответить ими нельзя: нужны сводные цифры и группировки. Для этого есть второй путь — прямой SELECT к базе.
Ходит он отдельным пользователем MySQL, у которого есть только право SELECT. Так сделано намеренно: фильтр по словам в запросе обходится точкой с запятой, комментарием или SELECT… INTO OUTFILE, а права пользователя базы обойти нельзя. Проверки в коде эту защиту дополняют, а не заменяют: один запрос за раз, только SELECT/WITH/SHOW/EXPLAIN/DESCRIBE, обязательный LIMIT (по умолчанию 50, максимум 200) и чёрный список таблиц, которые не показываются даже на чтение (по умолчанию туда входят таблицы пользователей).
Заводится всё одним скриптом из пакета —
Важно: у инструментов таблиц права пользователя работают, у SQL — нет: запрос видит всё, что видит пользователь базы. Поэтому включать его стоит только в том чате, который и так открыт администраторам, а чувствительные таблицы держать в чёрном списке. По умолчанию SQL выключен.
Файлы в чате
Картинки и PDF уходят модели как есть. Таблицы Excel (xlsx, xlsm, xls) и CSV разбираются на сервере и уходят текстом — с ограничителями по размеру, числу строк и объёму, чтобы прайс на три тысячи строк не съел контекст и деньги. Файл можно перетащить в окно чата или вставить из буфера.
Что ещё внутри
— Ответ идёт потоком, по мере генерации; разметка, таблицы и блоки кода — с подсветкой и кнопкой копирования.
— История чатов: свои чаты видит каждый, все — администратор. Хранение истории можно выключить для отдельного чата.
— Лимиты на чат: число шагов, секунды и расход в сутки.
— Выбор модели прямо в чате, список берётся у шлюза.
— Тёмная и светлая схемы оформления — цвета из токенов темы gtsAPI.
Гитхаб tuniekov/gtsAI
Гитхаб gtsAPI touol/gtsAPI
Гитхаб PVTables touol/PVTables
Шлюз ИИ gtsai.ru

Внимание. Пакет разрабатывался под MODX 2.8 и тестировался на MySQL 5.7. Требуется gtsAPI 1.2.0-beta или новее — он ставится автоматически как зависимость. Нужен ключ доступа к шлюзу ИИ, говорящему протоколом Anthropic (Messages API) или OpenAI; свой ключ и адрес шлюза вы вписываете сами, пакет ничего не отправляет мимо вас.
Быстрый старт
После установки зайти в админке в Компоненты->ИИ (gtsAI).
Во вкладке «Подключения» уже создано подключение к шлюзу gtsai.ru — впишите в него свой ключ. Можно указать любой другой шлюз или собственный: протокол и адрес задаются в том же подключении.
Во вкладке «Настройки чатов» лежат заготовки. Настройка чата — это имя, за которым стоят промпт, модель, права, лимиты (шагов, секунд, расход в сутки), группы пользователей и признак «хранить историю». Один сайт может иметь сколько угодно чатов с разными правами: например, чат менеджера по заказу и чат администратора по всей базе.
Чат ставится на любую страницу сниппетом:
[[!mixVue? &app=`gtsai` &config=`{"setting":"default","dock":"right"}`]]Панель можно разместить слева, справа, сверху, снизу или встроить в поток страницы; выбор запоминается у пользователя.Доступ к данным через gtsAPI
Таблица не видна ИИ, пока её не открыли явно. В настройках таблицы gtsAPI появились флаг «ai» и описание — текст, по которому модель понимает, что это за таблица и что значат поля. Разрешение выдаётся отдельно каждому действию:
{
"actions": {
"read": {"ai": 1},
"update": {"ai": 1},
"create": {"ai": 1}
},
"save_version_row": true,
"fields": {
"name": {"type": "text", "class": "myTableClass"},
"count": {"type": "number", "class": "myTableClass"}
}
}Что это даёт:— действие не объявлено — ИИ получает отказ, а не молчаливый обход;
— права пользователя остаются потолком: закрытую для него таблицу ИИ не прочитает;
— для правок обязательно включённое версионирование строки (save_version_row) — иначе откатывать будет нечем, и такой доступ просто не разрешается.
Правка от ИИ по умолчанию не применяется сразу: в чат приходит карточка «было — стало», и пишется она только по кнопке. Применённую пачку можно откатить целиком — она записана одним пакетом. Обрыв посреди работы откатывается сам. Кто, что и когда менял, видно в журнале вызовов вместе с расходом токенов и стоимостью.
Доступ к базе на чтение (SQL) — для администраторов
Инструменты таблиц хороши для обычных данных, но на вопрос «почему в сентябре просела прибыль» ответить ими нельзя: нужны сводные цифры и группировки. Для этого есть второй путь — прямой SELECT к базе.
Ходит он отдельным пользователем MySQL, у которого есть только право SELECT. Так сделано намеренно: фильтр по словам в запросе обходится точкой с запятой, комментарием или SELECT… INTO OUTFILE, а права пользователя базы обойти нельзя. Проверки в коде эту защиту дополняют, а не заменяют: один запрос за раз, только SELECT/WITH/SHOW/EXPLAIN/DESCRIBE, обязательный LIMIT (по умолчанию 50, максимум 200) и чёрный список таблиц, которые не показываются даже на чтение (по умолчанию туда входят таблицы пользователей).
Заводится всё одним скриптом из пакета —
_install/sql_readonly.sql. В нём сверху три строки: имя базы, префикс таблиц и пароль, который вы придумываете. Скрипт сам создаёт пользователя, выдаёт ему SELECT только на вашу базу, ограничивает 200 запросами в час и прописывает логин с паролем в системные настройки. Адрес базы вписывать не нужно — берётся тот же, которым ходит сам сайт.Важно: у инструментов таблиц права пользователя работают, у SQL — нет: запрос видит всё, что видит пользователь базы. Поэтому включать его стоит только в том чате, который и так открыт администраторам, а чувствительные таблицы держать в чёрном списке. По умолчанию SQL выключен.
Файлы в чате
Картинки и PDF уходят модели как есть. Таблицы Excel (xlsx, xlsm, xls) и CSV разбираются на сервере и уходят текстом — с ограничителями по размеру, числу строк и объёму, чтобы прайс на три тысячи строк не съел контекст и деньги. Файл можно перетащить в окно чата или вставить из буфера.
Что ещё внутри
— Ответ идёт потоком, по мере генерации; разметка, таблицы и блоки кода — с подсветкой и кнопкой копирования.
— История чатов: свои чаты видит каждый, все — администратор. Хранение истории можно выключить для отдельного чата.
— Лимиты на чат: число шагов, секунды и расход в сутки.
— Выбор модели прямо в чате, список берётся у шлюза.
— Тёмная и светлая схемы оформления — цвета из токенов темы gtsAPI.
Гитхаб tuniekov/gtsAI
Гитхаб gtsAPI touol/gtsAPI
Гитхаб PVTables touol/PVTables
Шлюз ИИ gtsai.ru
Техническая поддержка MODX
Сайт лежит, тормозит или остался без разработчика?
Переезд с MODX 2 на 3, PHP 7 на 8, скорость и безопасность. Поддержка со сроками и ответственностью, а не совет в чате.
Подробнее
Реклама
0
Комментарии: 0