AI 工具

AI Tools 扩展组件可以为 Jmix 应用程序添加由大型语言模型(LLM)驱动的 AI 助手。该组件提供了一个开箱即用的聊天 UI,用户可以用自然语言提问,助手通过调用 工具 来回答这些问题。该扩展组件包含了为 Jmix 应用程序量身定制的预定义工具,并支持添加自己的工具。

组件基于 Spring AI 构建。不捆绑特定的模型 provider。开发者可以选择并配置 Spring AI 模型,例如 OpenAI、Anthropic、DeepSeek、Azure OpenAI 或 Ollama,然后扩展组件通过标准的 Spring AI ChatClient 进行使用。

概述

该组件提供三组功能:

  • 预定义工具。扩展组件包含助手可以调用的预定义工具。数据加载工具(目前已提供),支持助手读取实体及其属性,然后生成、验证并运行只读 JPQL 查询以加载所请求的数据。请参见 工具

  • 注册扩展工具。任何 Spring bean 都可以贡献自己的工具,而且能覆盖预定义的工具。AiToolRegistry 收集所有应用程序内的工具。请参见 自定义工具与注册

  • 聊天 UI。提供视图和可复用的 fragment,支持在应用程序中嵌入完整的聊天窗口,包括带有对话历史的聊天中心以及单对话视图。聊天历史会被持久化。请参见 用户界面

此外,还可以在不需要 UI 的情况下,在自定义的 bean 中通过 编程方式 使用助手。

扩展组件结构

该扩展组件分为多个层,因此可以只包含所需的部分:

Starter 描述

jmix-aitools-starter

核心层:工具注册、预定义工具和编程式助手 API。没有 UI,也没有持久化。

jmix-aitools-flowui-starter

Flow UI 层:聊天视图、fragment 和安全角色。提供 UI 外壳,但聊天服务是空的桩代码。

jmix-aitools-flowui-data-starter

持久化层:将对话和消息存储在数据库中,并提供聊天服务的实际实现。

这些 starter 之间的依赖:jmix-aitools-flowui-data-starterjmix-aitools-flowui-starterjmix-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 模型。完整设置请参见 开始使用

应用程序使用单一菜单模式

如果你的应用程序使用的是 单一菜单模式,需要在扩展组件安装完成后手动添加菜单项。

  1. 在 Jmix Studio 中打开 菜单设计器

  2. 切换至 Structure 标签页。

  3. 左侧面板显示可用的菜单项。

    add menu items
  4. 添加菜单项:

    • 左侧选择需要添加的菜单项后,点击 > 按钮添加至右侧。

    • 或者也可以直接从左侧拖拽菜单至右侧结构中。

当应用程序是 单一 菜单模式时,Studio 不会自动合并组件的菜单,因此必须手动执行该步骤。