项目简介

RuoYi AI 是一个快速搭建属于您自己的 AI 助手平台的开源项目。它提供完整的前端、后台管理和后端服务,集成了本地 RAG、AI 绘画、多媒体处理、丰富插件等功能,并通过 MCP (Model Context Protocol) 向 LLM 客户端提供标准化的上下文信息和功能接口。

主要功能点

  • 全套开源系统: 提供用户端、管理端、小程序端及后端服务,基于主流技术栈构建。
  • 本地 RAG 方案: 支持集成 Milvus/Weaviate 向量库、本地向量化模型与 Ollama,实现本地知识检索。
  • 丰富工具集成: 支持联网、SQL 查询、Text2API 等插件,扩展 AI 能力。
  • 多模型支持: 内置 SSE、WebSocket 等协议,支持对接多种大语言模型(包括 GPT 系列、MidJourney、DALLE 等)。
  • 多媒体处理: 提供 AI 翻译、PPT 制作、语音克隆/翻唱等功能。
  • MCP 服务器实现: 作为应用后端,以标准化的方式提供资源、工具和 Prompt 能力给 LLM 客户端。

安装步骤

详细的安装部署指南请参考官方文档:https://doc.pandarobot.chat/guide/introduction/

通常需要以下环境和步骤:

  1. 环境准备: 安装 JDK 17+, MySQL 5.7/8.0, Redis 5.X+, Maven 3.8+, Node.js 20+, pnpm。
  2. 获取源码: Clone 或下载项目代码。
  3. 数据库初始化: 执行 SQL 脚本创建数据库和表结构。
  4. 配置修改: 根据实际环境修改 'application.yml' 等配置文件,特别是数据库连接、Redis 连接、OpenAI API Key 等。
  5. MCP 配置: 参考以下服务器配置说明启用和配置 MCP 功能。
  6. 构建与启动: 使用 Maven 构建后端项目,Node.js/pnpm 构建前端项目,并启动各个服务。

MCP 服务器配置

该项目包含一个 MCP 服务器组件(或其功能)。LLM 客户端需要连接到此后端提供的 MCP 服务。MCP 客户端的配置信息通常需要指定如何启动或连接到该服务器。

典型的 MCP 客户端配置(JSON 格式)会包含以下信息,但不限于此:

  • 'serverName': MCP 服务器的名称,例如 "RuoYi AIMCP Server"。
  • 'command': 启动 MCP 服务器进程的命令(如果使用 Stdio 传输协议)。例如,可以是 '["java", "-jar", "path/to/ruoyi-ai-backend.jar", "--mcp-server-mode=true"]',具体取决于 RuoYi AI 后端的启动方式和参数。
  • 'args': 传递给启动命令的参数列表。
  • 'url': MCP 服务器的访问地址(如果使用 WebSocket 或 SSE 等网络协议)。例如,'"ws://localhost:8080/websocket"' 或 '"http://localhost:8080/mcp"'。具体地址取决于 RuoYi AI 的部署配置。
  • 其他可能的配置:如 'env' 环境变量、'workingDirectory' 工作目录等。

请注意,MCP 客户端需要根据您实际部署的 RuoYi AI 后端服务的位置和启动方式来填写上述配置。项目的 'ruoyi-admin/src/main/resources/application.yml' 文件中有一个 'mcp.client.enabled' 参数,将其设置为 'true' 可以启用 'ruoyi-admin' 作为 MCP 客户端的功能,但这通常是用于 RuoYi 内部组件之间(例如 admin 与 mcp-server 组件)的通信,而不是 LLM 客户端连接的配置。LLM 客户端连接的配置应基于后端实际暴露的 MCP 接口。服务器端的 'mcp-server.json' 文件用于配置 MCP 服务器自身的功能,例如文件系统工具的路径等。

基本使用方法

一旦 RuoYi AI 后端服务启动并启用了 MCP 功能,LLM 客户端即可通过配置指定的连接方式(如启动命令或网络地址)连接到该 MCP 服务器。连接成功后,客户端可以发送 JSON-RPC 请求来:

  • 访问服务器托管的资源 (Resources)。
  • 调用服务器注册的工具 (Tools),例如执行联网搜索、SQL 查询等。
  • 获取或渲染服务器定义的 Prompt 模板。
  • 与服务器进行会话管理和能力协商。

LLM 客户端将通过这些 MCP 接口获取上下文信息和执行外部操作,从而增强其功能。具体如何利用这些功能取决于 LLM 客户端的设计和用户交互模式。

信息

分类

AI与计算