# ruoyi-ai **Repository Path**: mozf/ruoyi-ai ## Basic Information - **Project Name**: ruoyi-ai - **Description**: 基于 RuoYi 框架 的企业级 AI 助手管理系统,提供统一的接口管理多家 AI 厂商(DeepSeek、OpenAI 等),实现模型配置、API 密钥轮询、对话计费、流量控制等核心功能。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2026-04-18 - **Last Updated**: 2026-05-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ruoyi-ai智能助手管理平台
![Java](https://img.shields.io/badge/Java-17+-007396?logo=java) ![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.x-6DB33F?logo=springboot) ![Vue](https://img.shields.io/badge/Vue-3.0-4FC08D?logo=vue.js) ![MySQL](https://img.shields.io/badge/MySQL-8.0-4479A1?logo=mysql) ![Redis](https://img.shields.io/badge/Redis-7.0-DC382D?logo=redis) ![License](https://img.shields.io/badge/License-MIT-green) **基于 RuoYi 框架的智能助手管理平台 | 多厂商AI接入 | 流式对话 | 费用统计**
--- ## 📖 项目简介 智能助手管理平台是一个基于 **RuoYi 框架** 的企业级 AI 助手管理系统。它提供统一的接口来管理多家 AI 厂商(DeepSeek、OpenAI 等),实现模型配置、API 密钥轮询、对话计费、流量控制等核心功能。 ### ✨ 核心特性 - 🤖 **多厂商接入**:支持 DeepSeek、OpenAI 等主流 AI 厂商,轻松扩展 - 💬 **流式对话**:SSE 技术实现逐字输出,用户体验更流畅 - 💰 **精确计费**:基于 Token 的自动费用计算,成本透明可控 - 🔄 **多 Key 轮询**:支持多 API 密钥配置,自动加权轮询,提高可用性 - ⚡ **多级缓存**:Caffeine + Redis 双层缓存,提升响应速度 - 📊 **完整监控**:调用次数、Token 消耗、费用统计,数据一目了然 - 🎨 **开箱即用**:完整的后台管理页面,无需额外开发 - 🔐 **安全可靠**:API 密钥加密存储,权限控制完善 --- ## 🏗️ 系统架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ 智能助手管理平台 │ ├─────────────────────────────────────────────────────────────┤ │ Controller层 │ ├─────────────────────────────────────────────────────────────┤ │ Service层 │ │ ┌──────────────────────────────────────────────────────┐ │ │ │ 核心业务编排 (AiChatService) │ │ │ └──────────────────────────────────────────────────────┘ │ ├─────────────────────────────────────────────────────────────┤ │ Manager层 │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │厂商管理 │ │模型管理 │ │API配置 │ │助手配置 │ │ │ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘ │ │ └──────────────┴──────────────┴──────────────┘ │ ├─────────────────────────────────────────────────────────────┤ │ Infrastructure层 │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ Redis │ │Caffeine │ │ MySQL │ │ MQ │ │ │ │ 缓存/限流│ │本地缓存 │ │ 主存储 │ │异步日志 │ │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ └─────────────────────────────────────────────────────────────┘ ``` --- ## 📦 技术栈 ### 后端 | 技术 | 版本 | 说明 | | ----------- | ------ | ---------- | | Java | 17+ | 核心语言 | | Spring Boot | 3.x | 基础框架 | | MyBatis | 3.x | ORM 框架 | | Redis | 7.0+ | 分布式缓存 | | Caffeine | 3.x | 本地缓存 | | Jasypt | 3.x | 加密工具 | | Maven | 3.8+ | 构建工具 | ### 前端 | 技术 | 版本 | 说明 | | ------------ | ----- | ------------- | | Vue | 3.0+ | 前端框架 | | TypeScript | 5.0+ | 类型系统 | | Element Plus | 2.3+ | UI 组件库 | | ECharts | 5.4+ | 图表库 | | markdown-it | 14.0+ | Markdown 渲染 | --- ## 🚀 快速开始 ### 环境要求 - JDK 17 或更高版本 - MySQL 8.0 或更高版本 - Redis 7.0 或更高版本 - Node.js 18+ (前端开发) ### 后端启动 1. 导入数据库脚本 `sql/ruoyi-ai.sql` 2. 修改 `ruoyi-admin/src/main/resources/application.yml` 配置数据库和Redis连接 3. 运行 `RuoYiApplication.java` 启动后端服务 ### 前端启动 ```bash # 进入前端目录 cd ruoyi-ui-ts # 安装依赖 npm install # 启动开发服务器 npm run dev # 访问 http://localhost:80 ``` --- ## 📚 模块说明 ### 1. 厂商管理 (`/ai/factory`) 管理 AI 服务提供商,支持: - 增删改查厂商信息 - 配置厂商编码(如 openai、deepseek) - 显示顺序调整 ### 2. 模型管理 (`/ai/model`) 配置具体的 AI 模型,支持: - 模型名称与编码 - 输入/输出价格(每千 token) - 最大上下文长度 - 按厂商筛选 ### 3. API 配置管理 (`/ai/apiconfig`) 管理 API 密钥,支持: - 多密钥配置(主 Key、备用 Key) - 权重轮询策略 - 每分钟请求限流 - 密钥加密存储(Jasypt) ### 4. 助手管理 (`/ai/assistant`) 创建和管理 AI 助手,支持: - 绑定模型和 API 配置 - 系统提示词设置 - 温度参数、最大 Token 调整 - 启用/停用状态 ### 5. AI 对话 (`/ai/chat`) 核心对话功能,支持: - 普通对话模式 - 流式对话模式(SSE) - 历史上下文管理 - Token 费用计算 - 异步日志保存 ### 6. 对话消息 (`/ai/chat/message`) 消息管理功能,支持: - 会话列表查看 - 对话详情查询 - Token 使用统计 - 费用报表(图表展示) - 分表管理 --- ## 🔌 支持的厂商 | 厂商 | 编码 | 模型示例 | 状态 | | -------- | ---------- | -------------------------------- | -------- | | DeepSeek | `deepseek` | deepseek-chat, deepseek-reasoner | ✅ 已测试 | | OpenAI | `openai` | gpt-3.5-turbo, gpt-4 | ✅ 兼容 | --- ## 📊 数据库设计 ### 核心表结构 | 表名 | 说明 | | ------------------------- | ---------------------- | | `ai_factory` | 厂商表 | | `ai_model` | 模型表 | | `ai_api_config` | API 配置表 | | `ai_assistant` | 助手表 | | `ai_chat_message_YYYY_MM` | 对话消息表(按月分表) | ### 分表策略 对话消息表按月份自动分表: - 表名格式:`ai_chat_message_2026_03` - 支持动态创建新表 - 定时任务自动创建下月表 --- ## 🎯 核心 API ### 对话接口 ```http # 普通对话 POST /ai/chat/send Content-Type: application/json { "sessionId": "test-session", "assistantCode": "test01", "message": "你好" } # 流式对话 POST /ai/chat/stream Content-Type: application/json { "sessionId": "test-session", "assistantCode": "test01", "message": "你好", "stream": true } ``` ### 管理接口 | 模块 | 接口 | 说明 | | -------- | -------------------- | -------------------- | | 厂商 | `/ai/factory/*` | 增删改查、导出 | | 模型 | `/ai/model/*` | 增删改查、按厂商筛选 | | API配置 | `/ai/apiconfig/*` | 增删改查、可用配置 | | 助手 | `/ai/assistant/*` | 增删改查、状态切换 | | 对话消息 | `/ai/chat/message/*` | 历史查询、统计报表 | --- ## 📸 界面预览 ### 厂商管理 ![厂商管理](doc/images/factory.png) ### 模型管理 ![模型管理](doc/images/model.png) ### API配置管理 ![API配置](doc/images/apiconfig.png) ### 助手管理 ![助手管理](doc/images/assistant.png) ### AI对话 ![AI对话](doc/images/chat.png) ### 统计报表 ![统计报表](doc/images/stats.png) --- ## 🛠️ 配置说明 ### application.yml 关键配置 ```yaml # Jasypt 加密配置 jasypt: encryptor: password: ${JASYPT_PASSWORD:ruoyiAI2026} algorithm: PBEWithMD5AndDES iv-generator-classname: org.jasypt.iv.NoIvGenerator string-output-type: base64 ``` --- ## 🔧 常见问题 ### Q: API 密钥如何加密? A: 系统使用 Jasypt 自动加密,只需在界面上输入明文密钥,保存时会自动加密存储。 ### Q: 如何添加新的 AI 厂商? A: 在厂商表中添加记录,然后实现 `AiModelAdapter` 接口即可。如果接口格式与 OpenAI 兼容,可直接复用 `OpenAiAdapter`。 ### Q: 流式对话不显示? A: 检查后端 SSE 配置,确保 `produces = MediaType.TEXT_EVENT_STREAM_VALUE`。 ### Q: 费用统计不准确? A: 检查模型表中的价格配置是否正确(单位:元/千 token)。 --- ## 📄 许可证 本项目基于 MIT 许可证开源,详情请查看 [LICENSE](LICENSE) 文件。 --- ## 🤝 贡献指南 欢迎提交 Issue 和 Pull Request! 1. Fork 本项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 提交 Pull Request --- ## 📧 联系方式 - 项目主页:[Gitee](https://gitee.com/creepzzart/ruoyi-ai) - 问题反馈:https://gitee.com/creepzzart/ruoyi-ai/issues - 邮箱:2765077488@qq.com --- ## 🌟 致谢 - [RuoYi](https://gitee.com/y_project/RuoYi) - 优秀的 Java 后台管理系统 - [DeepSeek](https://deepseek.com/) - 强大的 AI 模型 - [Element Plus](https://element-plus.org/) - Vue 3 组件库 ---
Built with ❤️ by CreepZz