AI Tools

Дополнение AI Tools добавляет в приложение Jmix ассистента на базе большой языковой модели (LLM). Оно предоставляет готовый UI чата, в котором пользователи задают вопросы на естественном языке, а ассистент отвечает на них, вызывая инструменты. Дополнение включает предопределенные инструменты для приложений Jmix и позволяет добавлять собственные.

Дополнение построено на основе Spring AI. Оно не включает конкретного провайдера модели. Вместо этого вы выбираете и настраиваете модель Spring AI, например OpenAI, Anthropic, Azure OpenAI или Ollama, а дополнение использует ее через стандартный Spring AI ChatClient.

Обзор

Дополнение предоставляет три группы возможностей:

  • Предопределенные инструменты. Дополнение включает готовые инструменты, которые может вызывать ассистент. Текущая группа, инструменты Data Load, позволяет ассистенту анализировать доступные сущности и их атрибуты, а затем генерировать, валидировать и выполнять запрос JPQL только для чтения, чтобы загрузить запрошенные данные. См. Инструменты.

  • Расширяемый реестр инструментов. Любой Spring-бин может добавить собственные инструменты, а предопределенные инструменты можно переопределить. AiToolRegistry собирает все инструменты приложения. См. Пользовательские инструменты и реестр.

  • UI чата. Готовые экраны и переиспользуемые фрагменты позволяют встроить в приложение полноценный чат, включая стартовый экран чатов с историей чатов и экран отдельного чата. История чатов сохраняется. См. Пользовательский интерфейс.

Кроме того, ассистента можно использовать программно из собственных бинов без UI.

Если диалог относится к вашей собственной предметной области или интерфейс чата должен быть вашим, создайте собственный чат с помощью дополнения AI Chat. Оно предоставляет готовый чат, список сообщений и поле ввода сообщений, из которых он собран, а также блок кода.

Структура дополнения

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

Стартер Описание

jmix-aitools-starter

Базовый слой: реестр инструментов, предопределенные инструменты и программный API ассистента. Не содержит UI и механизма сохранения данных.

jmix-aitools-flowui-starter

Слой Flow UI: экраны чата, фрагменты и роль безопасности. Сам по себе предоставляет оболочку UI, но сервисы чата остаются заглушками без функциональности.

jmix-aitools-flowui-data-starter

Слой сохранения данных: хранит чаты и сообщения в базе данных и предоставляет рабочие реализации сервисов чата.

Стартеры зависят друг от друга: jmix-aitools-flowui-data-starter → jmix-aitools-flowui-starter → jmix-aitools-starter.

Установка

Для автоматической установки через Jmix Marketplace следуйте инструкциям в разделе Дополнения.

Для ручной установки добавьте следующие зависимости в build.gradle:

implementation 'io.jmix.aitools:jmix-aitools-starter'
implementation 'io.jmix.aitools:jmix-aitools-flowui-starter'
implementation 'io.jmix.aitools:jmix-aitools-flowui-data-starter'

Дополнению также требуется настроенная модель Spring AI. Полная настройка описана в Начало работы.

Важное примечание для приложений в режиме меню Single mode

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

  1. Откройте Дизайнер меню в Jmix Studio.

  2. Перейдите на вкладку Structure.

  3. Доступные пункты меню отображаются на левой панели.

    add menu items
  4. Чтобы добавить пункты:

    • Выберите нужные пункты и нажмите кнопку > кнопка (Add Selected).

    • Или перетащите их с левой панели в текущую структуру меню справа.

Этот шаг необходим, потому что приложения в режиме Single mode не выполняют автоматическое слияние меню дополнений с существующей структурой.