15 Commits

Author SHA1 Message Date
ageer
1a178d0ef8 Merge remote-tracking branch 'origin/main' 2025-05-11 21:38:01 +08:00
ageer
b64b758263 feat: 小助手wx 2025-05-11 21:37:55 +08:00
ageerle
a68c6481ba Update README.md 2025-05-11 21:37:09 +08:00
ageerle
3cbacb5ed9 Update README.md 2025-05-11 21:35:53 +08:00
ageerle
38667797d3 Update README.md 2025-05-11 21:34:42 +08:00
ageerle
9a6acb84a4 Update README.md 2025-05-11 21:33:59 +08:00
ageerle
e3c8a84849 Update README.md 2025-05-11 21:32:39 +08:00
ageerle
cc349f5954 Update README.md 2025-05-11 21:31:01 +08:00
ageerle
e4b78e0510 Update README.md 2025-05-11 21:30:08 +08:00
ageerle
15c6cd272e Update README.md 2025-05-11 21:28:59 +08:00
ageerle
1614eff008 Update README.md 2025-05-11 21:27:49 +08:00
ageerle
c86e88ebd1 Update README.md 2025-05-11 21:26:57 +08:00
ageerle
39ebd85f58 Update README.md 2025-05-11 21:25:50 +08:00
ageer
bde82fe516 feat: 忽略README.md 2025-05-11 19:45:57 +08:00
ageer
2ca650db76 feat: 代码优化 2025-05-11 19:37:52 +08:00
4 changed files with 30 additions and 46 deletions

2
.gitignore vendored
View File

@@ -13,6 +13,8 @@ target/
ruoyi-modules/ruoyi-generator/src/main/resources/vm/vben5 ruoyi-modules/ruoyi-generator/src/main/resources/vm/vben5
README.md
###################################################################### ######################################################################
# IDE # IDE

View File

@@ -59,24 +59,16 @@
### 系统体验 ### 系统体验
- 用户端https://web.pandarobot.chat - 用户端https://web.pandarobot.chat
- 管理端https://admin.pandarobot.chat - 管理端https://admin.pandarobot.chat
- 用户名: admin 密码admin123
用户名: admin 密码admin123
### 源码地址 ### 源码地址
[1]github
[1]gitee
- 前端服务-用户端: https://gitee.com/ageerle/ruoyi-web
- 前端服务-管理端: https://gitee.com/ageerle/ruoyi-admin
- 前端服务-小程序端: https://gitee.com/ageerle/ruoyi-uniapp
- 后端服务https://gitee.com/ageerle/ruoyi-ai
[2]github
- 前端服务-用户端: https://github.com/ageerle/ruoyi-web - 前端服务-用户端: https://github.com/ageerle/ruoyi-web
- 前端服务-管理端: https://github.com/ageerle/ruoyi-admin - 前端服务-管理端: https://github.com/ageerle/ruoyi-admin
- 前端服务-小程序端: https://github.com/ageerle/ruoyi-uniapp - 前端服务-小程序端: https://github.com/ageerle/ruoyi-uniapp
- 后端服务https://github.com/ageerle/ruoyi-ai - 后端服务https://github.com/ageerle/ruoyi-ai
[3]gitcode [2]gitcode
- 前端服务-用户端https://gitcode.com/ageerle/ruoyi-web - 前端服务-用户端https://gitcode.com/ageerle/ruoyi-web
- 前端服务-管理端: https://gitcode.com/ageerle/ruoyi-admin - 前端服务-管理端: https://gitcode.com/ageerle/ruoyi-admin
- 前端服务-小程序端: https://gitcode.com/ageerle/ruoyi-uniapp - 前端服务-小程序端: https://gitcode.com/ageerle/ruoyi-uniapp
@@ -86,27 +78,25 @@
- 配套文档: https://doc.pandarobot.chat - 配套文档: https://doc.pandarobot.chat
- 项目部署文档https://doc.pandarobot.chat/guide/introduction/ - 项目部署文档https://doc.pandarobot.chat/guide/introduction/
### 核心功能 ### 核心功能与技术亮点
1.开源系统提供完整的前端应用、后台管理以及小程序应用基于MIT协议开箱即用。 #### 1. 全栈式开源系统
2. 本地RAG方案集成Milvus/Weaviate向量库、本地向量化模型与Ollama实现本地化RAG - 全套开源系统提供完整的前端应用、后台管理以及小程序应用基于MIT协议开箱即用
3. 丰富插件功能支持联网、SQL查询插件及Text2API插件扩展系统能力与应用场景。 #### 2. 本地化 RAG 方案
4. 内置SSE、websocket等网络协议支持对接多种大语言模型同时还集成了MidJourney和DALLE AI绘画功能 - 基于 **Langchain4j** 框架,支持 Milvus/Weaviate/Qdrant 向量库,结合 BGE-large-zh-v1.5 本地向量化模型 实现高效文档检索与知识库构建
5. 强大的多媒体功能支持AI翻译、PPT制作、语音克隆和翻唱等 - 支持 本地 LLM 接入,结合私有知识库实现安全可控的问答系统,避免依赖云端服务的隐私风险
6. 扩展功能:支持将大模型接入个人或企业微信。 #### 3. 多模态 AI 引擎与工具集成
7. 支付功能:支持易支付、微信支付等多种支付方式 - 智能对话:支持 OpenAI GPT-4、Azure、ChatGLM 等主流模型,内置 SSE/WebSocket 协议实现低延迟交互,兼容 **扣子**、**DIFY** 等平台 API 调用
- **Spring AI MCP** 支持:通过注解快速定义本地工具,支持调用 MCP 广场 的海量 MCP Server 服务,扩展模型能力边界。
#### 4. 企业级扩展与商业化支持
- 即时通讯集成:支持对接个人微信、企业微信及微信公众号,实现消息自动回复、用户管理与智能客服。
- 支付系统集成易支付、微信支付、Stripe 国际信用卡支付,满足商业化场景需求。
#### 5. 多媒体处理与创新功能
- AI 绘画:集成 DALL·E-3、MidJourney、Stable Diffusion支持文生图、图生图及风格化创作适用于营销素材生成与创意设计。
- PPT 制作:根据文本输入自动生成结构化幻灯片,支持自定义模板(需要使用三方平台 如:文多多)。
### 项目演示 ### 项目演示
#### mcp支持 #### mcp支持
### 如何使用
1. ruoyi-admin\src\main\resources\application.yml中mcp.client.enabled改为true
2. application.yml中配置openai api-key(用于推理使用那个工具,并构建工具所需参数)
3. 启动[ruoyi-mcp-server]
4. [mcp-server.json]中配置fileSystem.command(npx本地安装路径)
5. 指定fileSystem操作目录(本地必须存在指定的目录)
6. 配置search1api.env.SEARCH1API_KEY 申请地址https://www.search1api.com/
7. 详情教程https://blog.csdn.net/weixin_42416319/article/details/147385808
<div style="display: flex; flex-wrap: wrap; gap: 20px; justify-content: center;"> <div style="display: flex; flex-wrap: wrap; gap: 20px; justify-content: center;">
<img src="image/mcp-01.png" alt="drawing" style="width: 600px; height: 300px; border: 2px solid #ddd; border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);"/> <img src="image/mcp-01.png" alt="drawing" style="width: 600px; height: 300px; border: 2px solid #ddd; border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);"/>
<img src="image/mcp-02.png" alt="drawing" style="width: 600px; height: 300px; border: 2px solid #ddd; border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);"/> <img src="image/mcp-02.png" alt="drawing" style="width: 600px; height: 300px; border: 2px solid #ddd; border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);"/>
@@ -122,7 +112,6 @@
<img src="image/05.png" alt="drawing" style="width: 600px; height: 300px; border: 2px solid #ddd; border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);"/> <img src="image/05.png" alt="drawing" style="width: 600px; height: 300px; border: 2px solid #ddd; border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);"/>
</div> </div>
#### 用户端 #### 用户端
<div style="display: flex; flex-wrap: wrap; gap: 20px; justify-content: center;"> <div style="display: flex; flex-wrap: wrap; gap: 20px; justify-content: center;">
<img src="image/08.png" alt="drawing" style="width: 600px; height: 300px; border: 2px solid #ddd; border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);"/> <img src="image/08.png" alt="drawing" style="width: 600px; height: 300px; border: 2px solid #ddd; border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);"/>
@@ -204,7 +193,6 @@
### 注意事项 ### 注意事项
- vben模板 - vben模板
Qvben5 的模板默认是没有的吗? Qvben5 的模板默认是没有的吗?
Avben模板是收费的 请联系vben-vue-plus作者获取。 Avben模板是收费的 请联系vben-vue-plus作者获取。
@@ -214,7 +202,6 @@
该项目使用Git进行版本管理。您可以在repository参看当前可用版本。 该项目使用Git进行版本管理。您可以在repository参看当前可用版本。
### 版权说明 ### 版权说明
该项目使用了MIT授权许可详情请参阅 [LICENSE.txt](https://github.com/ageerle/ruoyi-ai/blob/main/LICENSE) 该项目使用了MIT授权许可详情请参阅 [LICENSE.txt](https://github.com/ageerle/ruoyi-ai/blob/main/LICENSE)
@@ -251,7 +238,7 @@
#### 项目文档 #### 项目文档
1. 项目文档基于vitepress构建 1. 项目文档基于vitepress构建
2. 按照[如何参与开源项目](#如何参与开源项目)拉取 https://github.com/ageerle/ruoyi-doc 2. 按照[如何参与开源项目](#如何参与开源项目)拉取https://github.com/ageerle/ruoyi-doc
3. 安装依赖npm install 3. 安装依赖npm install
4. 启动项目npm run docs:dev 4. 启动项目npm run docs:dev
5. 主页路径docs/guide/introduction/index.md 5. 主页路径docs/guide/introduction/index.md
@@ -282,9 +269,11 @@
### 附:技术讨论群 ### 附:技术讨论群
#### 全面开放,欢迎加入 #### 进群学习
🏠 wxruoyi-ai加人备注ruoyi-ai 🏠 wxruoyi-ai加人备注ruoyi-ai
<img src="image/小助手wx.png" alt="drawing" style="width: 400px; height: 400px; border: 2px solid #ddd; border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);"/>
🏠 qq1603234088 加人备注ruoyi-ai 🏠 qq1603234088 加人备注ruoyi-ai
👏👏👏 ruoyi-ai官方交流1群qq区1034554687 👏👏👏 ruoyi-ai官方交流1群qq区1034554687
@@ -293,10 +282,3 @@
<img src="image/QQ区-官方交流1群.png" alt="drawing" style="width: 400px; height: 400px; border: 2px solid #ddd; border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);"/> <img src="image/QQ区-官方交流1群.png" alt="drawing" style="width: 400px; height: 400px; border: 2px solid #ddd; border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);"/>
</div> </div>
👏👏👏 ruoyi-ai官方交流4群微信区
<div style="display: flex; flex-wrap: wrap; gap: 20px; justify-content: center;">
<img src="image/WX区-官方交流4群.jpg" alt="drawing" style="width: 400px; height: 400px; border: 2px solid #ddd; border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);"/>
</div>

BIN
image/小助手wx.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 302 KiB

View File

@@ -146,12 +146,12 @@ public class OpenAiStreamClient {
} }
okHttpClient = builder.okHttpClient; okHttpClient = builder.okHttpClient;
this.openAiApi = new Retrofit.Builder() // this.openAiApi = new Retrofit.Builder()
.baseUrl(apiHost) // .baseUrl(apiHost)
.client(okHttpClient) // .client(okHttpClient)
.addCallAdapterFactory(RxJava2CallAdapterFactory.create()) // .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.addConverterFactory(JacksonConverterFactory.create()) // .addConverterFactory(JacksonConverterFactory.create())
.build().create(OpenAiApi.class); // .build().create(OpenAiApi.class);
} }
/** /**