Files
RuoYi-Vue3-FastAPI/ruoyi-fastapi-frontend/plugins/ai
insistence 2a055ba648 feat: 新增插件系统 (#112)
* feat: 初始化插件系统

* refactor: 收口插件系统运行时重构

* perf: 优化插件系统类型提示

* fix&perf: 修复和优化插件系统

* fix: 修复gitignore规则误忽略插件文件的问题

* fix: 修复运行时插件根路径算错的问题

* fix: 加强插件发现和路由注册的防护措施

* revert: 回滚定时任务白名单

* fix: 移除未使用的应用路由注册探测

* revert: 恢复部分代码

* perf: 优化插件系统

* docs: 新增插件开发文档

* perf: 优化插件管理模块

* perf: 提升插件系统核心能力

* refactor: 重构生命周期 step runner

* fix: 修复lint错误

* test: 清理测试用例

* test: 调整测试目录名称

* fix: 修复前后端目录硬编码的问题

* fix: 修复插件系统安全性缺口

* refactor: 重新设计插件生命周期 Migration 事务与回滚

* perf: 优化插件系统边界问题

* refactor: 重构当前插件系统的依赖体系设计

* perf: 优化代码

* perf: 优化代码

* fix: 修复代码合并问题

* fix: 修复bug

* perf: 优化代码

* perf&fix: 优化代码和修复bug

* docs: 优化文档格式

* feat: 适配Vue2版本

* docs: 更新README文档

* fix: 修复ruff lint错误

* chore: 更新后端依赖文件
2026-07-28 20:35:18 +08:00
..
2026-07-28 20:35:18 +08:00
2026-07-28 20:35:18 +08:00
2026-07-28 20:35:18 +08:00

AI 管理前端插件

AI 管理前端插件提供模型管理页面和 AI 对话页面。页面源码放在前端插件目录下,由后端插件清单 plugins/ai/plugin.yaml 声明菜单、组件路径和 npm 依赖。

页面

菜单与组件路径对应关系:

模型管理:plugin/ai/model/index -> plugins/ai/views/model/index.vue
AI 对话:plugin/ai/chat/index  -> plugins/ai/views/chat/index.vue

功能入口:

  • 「AI 管理 / 模型管理」:维护供应商、模型编码、模型名称、API Key、Base URL、温度、最大 Token、推理能力、图片能力和状态。
  • 「AI 管理 / AI 对话」:选择已启用模型进行会话,支持会话历史、全局参数配置、系统提示词、历史上下文、图片输入和流式输出。

目录说明

plugins/ai/
  api/
    model.js
    chat.js
  views/
    model/index.vue
    chat/index.vue
  README.md
  • api/model.js:模型管理接口封装。
  • api/chat.js:AI 对话、会话历史和用户配置接口封装。
  • views/model/index.vue:模型管理页面。
  • views/chat/index.vueAI 对话页面。

权限

页面和按钮权限由后端插件清单写入系统菜单:

  • ai:model:list:进入模型管理页面。
  • ai:model:add:新增模型。
  • ai:model:edit:修改模型。
  • ai:model:remove:删除模型。
  • ai:model:query:查询模型。
  • ai:chat:list:进入 AI 对话页面。

前端页面继续使用系统原有的 v-hasPermi 指令控制按钮可见性。

依赖

前端运行依赖在后端 plugin.yaml 中声明,包括 Markdown 渲染、代码高亮、图表和 Monaco 编辑器相关包。插件检查和依赖安装流程会读取这些声明。

涉及的主要依赖:

  • markstream-vue
  • stream-markdown
  • stream-monaco
  • shiki
  • mermaid
  • katex
  • @antv/infographic
  • vite-plugin-monaco-editor-esm

开发约定

  • 插件页面必须放在 plugins/ai/views 下,组件路径使用 plugin/ai/...
  • 插件接口封装放在 plugins/ai/api 下,保持与页面同目录管理。
  • 新增页面时,需要同步更新后端 plugins/ai/plugin.yamlfrontend.menus
  • 新增按钮权限时,需要同步更新后端 permissions,并在页面中使用 v-hasPermi
  • 不要在前端源码中硬编码 API Key 或模型密钥;模型凭证由后端模型管理页面维护。

验证

前端插件没有单独的测试命令。修改页面或依赖后,建议执行项目构建验证:

npm run build:prod

若只修改文档,不需要执行前端构建。