5 Commits

Author SHA1 Message Date
zhouweiyi
cbe882af66 chore: 更新百炼模型配置的API密钥
将开发环境和本地环境的百炼模型配置中的API密钥统一更新为占位符'sk-xxxx'
2025-06-04 18:02:26 +08:00
zhouweiyi
1d51a103d0 feat: 集成阿里百炼API实现图片内容识别功能
添加DashscopeService接口及实现,用于调用阿里百炼API进行图片内容识别
修改PdfImageExtractService增加基于百炼API的图片处理逻辑
新增OSS服务方法支持临时文件处理和删除
更新配置文件添加百炼模型相关配置
2025-06-04 17:55:47 +08:00
ageerle
53e3180658 Merge pull request #93 from janzhou123/pdf-image
feat:增加knowledge_attach_pic表结构sql
2025-05-20 09:29:40 +08:00
zhouweiyi
e43e14454d feat:增加knowledge_attach_pic表结构sql 2025-05-20 09:22:41 +08:00
ageerle
a4e995d46c feat: 新增pdf图片解析分支 2025-05-19 15:33:29 +08:00
888 changed files with 172795 additions and 3295 deletions

View File

@@ -36,37 +36,30 @@
## 快速启动 ## 快速启动
### 拉取镜像(最低配置2H2G):
```bash
script/deploy/deploy目录下执行: docker-compose up -d
```
### 通过脚本启动(最低配置4H4G):
1. 确认系统内已经安装好以下软件 1. 确认系统内已经安装好以下软件
- docker docker
- docker-compose docker-compose
- git git
- unzip unzip
2. **克隆项目** 2. **克隆项目**
```bash ```bash
git clone https://github.com/ageerle/ruoyi-ai git clone https://github.com/ageerle/ruoyi-ai
cd ruoyi-ai/script/deploy/one-step-script cd ruoyi-ai/docker-deploy/one-step-script/
``` ```
3. **启动部署脚本** 3. **启动部署脚本**
中文界面部署脚本(拉取gitee仓库) 中文界面部署脚本:
```bash ```bash
./deploy-cn.sh ./deploy-cn.sh
``` ```
按照脚本提示一步步操作,如果是一台新服务器,选择默认配置,直接回车即可。 ![c383c5030bd6c2d0b577d5efb068137](https://github.com/user-attachments/assets/58f55889-f29c-47cf-ab32-8a098e3afadd)
<img src="image/deploy-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);"/> ![ee04e0c99b9ae733c7ad89bf507ab65](https://github.com/user-attachments/assets/884af2ab-16a8-44b5-acef-712155568b50)
![0c8006ea926b10fbada82b09084c5b5](https://github.com/user-attachments/assets/c7bd2a8d-b365-4734-922a-12d1ac28a8fe)
耐心等待安装完成... 英文界面部署脚本:
英文界面部署脚本(拉取github仓库)
```bash ```bash
./deploy-en.sh ./deploy-en.sh
@@ -97,6 +90,7 @@
- [项目演示](#项目演示) - [项目演示](#项目演示)
- [管理端](#管理端) - [管理端](#管理端)
- [用户端](#用户端) - [用户端](#用户端)
- [小程序端](#小程序端)
- [开发环境](#开发环境) - [开发环境](#开发环境)
- [项目结构](#项目结构) - [项目结构](#项目结构)
- [ruoyi-ai](#ruoyi-ai) - [ruoyi-ai](#ruoyi-ai)
@@ -111,20 +105,20 @@
### 系统体验 ### 系统体验
- 用户端https://web.pandarobot.chat - 用户端https://web.pandarobot.chat
- 演示账号: demo 密码demo123
- 管理端https://admin.pandarobot.chat - 管理端https://admin.pandarobot.chat
- 演示账号: admin 密码admin123 - 用户名: admin 密码admin123
- 商业版体验商业版请联系下方小助手获取演示地址预计6月份上线
### 源码地址 ### 源码地址
[1]github [1]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-ai - 后端服务https://github.com/ageerle/ruoyi-ai
[2]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-ai - 后端服务https://gitcode.com/ageerle/ruoyi-ai
### 配套文档 ### 配套文档
@@ -133,7 +127,7 @@
### 核心功能与技术亮点 ### 核心功能与技术亮点
#### 1. 全栈式开源系统 #### 1. 全栈式开源系统
- 全套开源系统:提供完整的前端应用、后台管理,基于MIT协议开箱即用。 - 全套开源系统:提供完整的前端应用、后台管理以及小程序应用,基于MIT协议开箱即用。
#### 2. 本地化 RAG 方案 #### 2. 本地化 RAG 方案
- 基于 **Langchain4j** 框架,支持 Milvus/Weaviate/Qdrant 向量库,结合 BGE-large-zh-v1.5 本地向量化模型 实现高效文档检索与知识库构建。 - 基于 **Langchain4j** 框架,支持 Milvus/Weaviate/Qdrant 向量库,结合 BGE-large-zh-v1.5 本地向量化模型 实现高效文档检索与知识库构建。
- 支持 本地 LLM 接入,结合私有知识库实现安全可控的问答系统,避免依赖云端服务的隐私风险。 - 支持 本地 LLM 接入,结合私有知识库实现安全可控的问答系统,避免依赖云端服务的隐私风险。
@@ -157,6 +151,13 @@
<img src="image/mcp-04.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-04.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;">
<img src="image/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/03.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/04.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 style="display: flex; flex-wrap: wrap; gap: 20px; justify-content: center;"> <div style="display: flex; flex-wrap: wrap; gap: 20px; justify-content: center;">
@@ -166,15 +167,12 @@
<img src="image/11.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/11.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: flex-start;">
<img src="image/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/06.png" alt="drawing" style="width: 320px; height: 600px; border: 2px solid #ddd; border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);"/>
<img src="image/03.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/07.png" alt="drawing" style="width: 320px; height: 600px; border: 2px solid #ddd; border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);"/>
<img src="image/04.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>
### 开发环境 ### 开发环境
1. jdk 17 1. jdk 17
@@ -318,19 +316,16 @@
### 附:技术讨论群 ### 附:技术讨论群
#### 技术交流(如需进群请添加小助手)
<div style="display: flex; flex-wrap: wrap; gap: 20px; justify-content: center;">
<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);"/>
</div>
#### 进群学习 #### 进群学习
🏠 小助手wxruoyi-ai加人备注ruoyi-ai 🏠 wxruoyi-ai加人备注ruoyi-ai
🏠 小助手qq1603234088 加人备注ruoyi-ai
👏👏👏 ruoyi-ai官方交流群qq区 <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
👏👏👏 ruoyi-ai官方交流1群qq区1034554687
<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/qq.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>

View File

@@ -1,4 +1,4 @@
import {defineConfig} from '@vben/vite-config'; import { defineConfig } from '@vben/vite-config';
// 自行取消注释来启用按需导入功能 // 自行取消注释来启用按需导入功能
// import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers'; // import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers';

View File

@@ -0,0 +1,6 @@
#!/bin/bash
rm -f /root/ruoyi-ai-docker/deploy/mysql-init/*.sql
cp /root/ruoyi-ai-docker/source-code/ruoyi-ai-backend/script/sql/ruoyi-ai.sql /root/ruoyi-ai-docker/deploy/mysql-init/01_ruoyi-ai.sql
cp /root/ruoyi-ai-docker/source-code/ruoyi-ai-backend/script/sql/update/20250407.sql /root/ruoyi-ai-docker/deploy/mysql-init/02_update_20250407.sql
cp /root/ruoyi-ai-docker/source-code/ruoyi-ai-backend/script/sql/update/20250505.sql /root/ruoyi-ai-docker/deploy/mysql-init/03_update_20250505.sql
cp /root/ruoyi-ai-docker/source-code/ruoyi-ai-backend/script/sql/update/20250509.sql /root/ruoyi-ai-docker/deploy/mysql-init/04_update_20250509.sql

View File

@@ -0,0 +1,4 @@
INSERT INTO `chat_model` (`id`, `tenant_id`, `category`, `model_name`, `model_describe`, `model_price`, `model_type`, `model_show`, `system_prompt`, `api_host`, `api_key`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (1907575746601119746, '000000', 'vector', 'text-embedding-3-small', 'text-embedding-3-small', 0, '2', '0', NULL, 'https://api.pandarobot.chat/', 'sk-cdBlIaZcufccm2RaDe547cBd054d49C7B0782eCa72A0052b', 103, 1, '2025-04-03 07:27:54', 1, '2025-04-03 07:27:54', 'text-embedding-3-small');
INSERT INTO `chat_model` (`id`, `tenant_id`, `category`, `model_name`, `model_describe`, `model_price`, `model_type`, `model_show`, `system_prompt`, `api_host`, `api_key`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (1907576007017066497, '000000', 'vector', 'quentinz/bge-large-zh-v1.5', 'bge-large-zh-v1.5', 0, '2', '0', NULL, 'http://127.0.0.1:11434/', 'cdBlIaZcufccm2RaDe547cBd054d49C7B0782eCa72A0052b', 103, 1, '2025-04-03 07:28:56', 1, '2025-04-03 07:28:56', 'bge-large-zh-v1.5');
INSERT INTO `chat_model` (`id`, `tenant_id`, `category`, `model_name`, `model_describe`, `model_price`, `model_type`, `model_show`, `system_prompt`, `api_host`, `api_key`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (1907576806191362049, '000000', 'vector', 'nomic-embed-text', 'nomic-embed-text', 0, '2', '0', NULL, 'http://127.0.0.1:11434/', 'nomic-embed-text', 103, 1, '2025-04-03 07:32:06', 1, '2025-04-03 07:32:06', 'nomic-embed-text');
INSERT INTO `chat_model` (`id`, `tenant_id`, `category`, `model_name`, `model_describe`, `model_price`, `model_type`, `model_show`, `system_prompt`, `api_host`, `api_key`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (1907577073490161665, '000000', 'vector', 'snowflake-arctic-embed', 'snowflake-arctic-embed', 0, '2', '0', NULL, 'http://127.0.0.1:11434/', 'snowflake-arctic-embed', 103, 1, '2025-04-03 07:33:10', 1, '2025-04-03 07:33:10', 'snowflake-arctic-embed');

View File

@@ -0,0 +1,42 @@
/*
Navicat MySQL Data Transfer
Source Server : 129.211.24.7
Source Server Type : MySQL
Source Server Version : 50744
Source Host : 129.211.24.7:3306
Source Schema : ry-vue
Target Server Type : MySQL
Target Server Version : 50744
File Encoding : 65001
Date: 05/05/2025 15:01:08
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for chat_session
-- ----------------------------
DROP TABLE IF EXISTS `chat_session`;
CREATE TABLE `chat_session` (
`id` bigint(20) NOT NULL COMMENT '主键',
`user_id` bigint(20) NULL DEFAULT NULL COMMENT '用户id',
`session_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '会话标题',
`session_content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '会话内容',
`create_dept` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '部门',
`create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建者',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_by` bigint(20) NULL DEFAULT NULL COMMENT '更新者',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '会话管理' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
ALTER TABLE `chat_message`
ADD COLUMN `session_id` bigint(20) NULL COMMENT '会话id' AFTER `id`;

View File

@@ -0,0 +1,4 @@
ALTER TABLE `chat_model`
ADD COLUMN `api_url` varchar(50) NULL COMMENT '请求后缀' AFTER `api_key`;
INSERT INTO `chat_config` (`id`, `category`, `config_name`, `config_value`, `config_dict`, `create_dept`, `create_time`, `create_by`, `update_by`, `update_time`, `remark`, `version`, `del_flag`, `update_ip`, `tenant_id`) VALUES (1779450794872414211, 'chat', 'apiUrl', 'v1/chat/completions', 'API 请求后缀', 103, '2024-04-14 18:05:05', '1', '1', '2025-04-23 22:29:04', NULL, NULL, '0', NULL, 0);

View File

@@ -0,0 +1,2 @@
#!/bin/bash
sed -i 's#127.0.0.1:6038#weaviate:8080#g' ./mysql-init/01_ruoyi-ai.sql

View File

@@ -235,7 +235,7 @@ if [[ "${BUILD_CHOICE}" == [Bb]* ]]; then
echo "正在删除现有目录..." echo "正在删除现有目录..."
rm -rf ${DEPLOY_DIR}/ruoyi-ai rm -rf ${DEPLOY_DIR}/ruoyi-ai
echo "正在克隆 ruoyi-ai-backend 仓库..." echo "正在克隆 ruoyi-ai-backend 仓库..."
cd ${DEPLOY_DIR} && git clone https://gitee.com/ageerle/ruoyi-ai cd ${DEPLOY_DIR} && git clone https://github.com/ageerle/ruoyi-ai
# 提示选择分支 # 提示选择分支
read -p "请输入 ruoyi-ai 仓库的分支名称 [main]: " RUOYI_AI_BRANCH read -p "请输入 ruoyi-ai 仓库的分支名称 [main]: " RUOYI_AI_BRANCH
@@ -253,7 +253,7 @@ if [[ "${BUILD_CHOICE}" == [Bb]* ]]; then
esac esac
else else
echo "正在克隆 ruoyi-ai-backend 仓库..." echo "正在克隆 ruoyi-ai-backend 仓库..."
cd ${DEPLOY_DIR} && git clone https://gitee.com/ageerle/ruoyi-ai cd ${DEPLOY_DIR} && git clone https://github.com/ageerle/ruoyi-ai
# 提示选择分支 # 提示选择分支
read -p "请输入 ruoyi-ai 仓库的分支名称 [main]: " RUOYI_AI_BRANCH read -p "请输入 ruoyi-ai 仓库的分支名称 [main]: " RUOYI_AI_BRANCH
@@ -272,7 +272,7 @@ if [[ "${BUILD_CHOICE}" == [Bb]* ]]; then
echo "正在删除现有目录..." echo "正在删除现有目录..."
rm -rf ${DEPLOY_DIR}/ruoyi-admin rm -rf ${DEPLOY_DIR}/ruoyi-admin
echo "正在克隆 ruoyi-admin 仓库..." echo "正在克隆 ruoyi-admin 仓库..."
cd ${DEPLOY_DIR} && git clone https://gitee.com/ageerle/ruoyi-admin cd ${DEPLOY_DIR} && git clone https://github.com/ageerle/ruoyi-admin
# 提示选择分支 # 提示选择分支
read -p "请输入 ruoyi-admin 仓库的分支名称 [main]: " RUOYI_ADMIN_BRANCH read -p "请输入 ruoyi-admin 仓库的分支名称 [main]: " RUOYI_ADMIN_BRANCH
@@ -290,7 +290,7 @@ if [[ "${BUILD_CHOICE}" == [Bb]* ]]; then
esac esac
else else
echo "正在克隆 ruoyi-ai-admin 仓库..." echo "正在克隆 ruoyi-ai-admin 仓库..."
cd ${DEPLOY_DIR} && git clone https://gitee.com/ageerle/ruoyi-admin cd ${DEPLOY_DIR} && git clone https://github.com/ageerle/ruoyi-admin
# 提示选择分支 # 提示选择分支
read -p "请输入 ruoyi-admin 仓库的分支名称 [main]: " RUOYI_ADMIN_BRANCH read -p "请输入 ruoyi-admin 仓库的分支名称 [main]: " RUOYI_ADMIN_BRANCH
@@ -309,7 +309,7 @@ if [[ "${BUILD_CHOICE}" == [Bb]* ]]; then
echo "正在删除现有目录..." echo "正在删除现有目录..."
rm -rf ${DEPLOY_DIR}/ruoyi-web rm -rf ${DEPLOY_DIR}/ruoyi-web
echo "正在克隆 ruoyi-ai-web 仓库..." echo "正在克隆 ruoyi-ai-web 仓库..."
cd ${DEPLOY_DIR} && git clone https://gitee.com/ageerle/ruoyi-web cd ${DEPLOY_DIR} && git clone https://github.com/ageerle/ruoyi-web
# 提示选择分支 # 提示选择分支
read -p "请输入 ruoyi-web 仓库的分支名称 [main]: " RUOYI_WEB_BRANCH read -p "请输入 ruoyi-web 仓库的分支名称 [main]: " RUOYI_WEB_BRANCH
@@ -327,7 +327,7 @@ if [[ "${BUILD_CHOICE}" == [Bb]* ]]; then
esac esac
else else
echo "正在克隆 ruoyi-ai-web 仓库..." echo "正在克隆 ruoyi-ai-web 仓库..."
cd ${DEPLOY_DIR} && git clone https://gitee.com/ageerle/ruoyi-web cd ${DEPLOY_DIR} && git clone https://github.com/ageerle/ruoyi-web
# 提示选择分支 # 提示选择分支
read -p "请输入 ruoyi-web 仓库的分支名称 [main]: " RUOYI_WEB_BRANCH read -p "请输入 ruoyi-web 仓库的分支名称 [main]: " RUOYI_WEB_BRANCH
@@ -493,9 +493,9 @@ cp -pr ${SCRIPT_DIR}/mysql-init ${DEPLOY_DIR}/
# 使用配置值更新 SQL 文件 # 使用配置值更新 SQL 文件
echo "正在更新 SQL 配置值..." echo "正在更新 SQL 配置值..."
sed -i "s|'weaviate', 'host', '127.0.0.1:6038'|'weaviate', 'host', 'weaviate:8080'|g" ${DEPLOY_DIR}/mysql-init/ruoyi-ai.sql sed -i "s|'weaviate', 'host', '127.0.0.1:6038'|'weaviate', 'host', 'weaviate:8080'|g" ${DEPLOY_DIR}/mysql-init/01_ruoyi-ai.sql
sed -i "s|'weaviate', 'protocol', 'http'|'weaviate', 'protocol', '${WEAVIATE_PROTOCOL}'|g" ${DEPLOY_DIR}/mysql-init/ruoyi-ai.sql sed -i "s|'weaviate', 'protocol', 'http'|'weaviate', 'protocol', '${WEAVIATE_PROTOCOL}'|g" ${DEPLOY_DIR}/mysql-init/01_ruoyi-ai.sql
sed -i "s|'weaviate', 'classname', 'LocalKnowledge'|'weaviate', 'classname', '${WEAVIATE_CLASSNAME}'|g" ${DEPLOY_DIR}/mysql-init/ruoyi-ai.sql sed -i "s|'weaviate', 'classname', 'LocalKnowledge'|'weaviate', 'classname', '${WEAVIATE_CLASSNAME}'|g" ${DEPLOY_DIR}/mysql-init/01_ruoyi-ai.sql
# 使用 Docker Compose 部署 # 使用 Docker Compose 部署
echo "正在使用 Docker Compose 进行部署..." echo "正在使用 Docker Compose 进行部署..."

View File

@@ -493,9 +493,9 @@ cp -pr ${SCRIPT_DIR}/mysql-init ${DEPLOY_DIR}/
# Update SQL file with configuration values # Update SQL file with configuration values
echo "Updating SQL configuration values..." echo "Updating SQL configuration values..."
sed -i "s|'weaviate', 'host', '127.0.0.1:6038'|'weaviate', 'host', 'weaviate:8080'|g" ${DEPLOY_DIR}/mysql-init/ruoyi-ai.sql sed -i "s|'weaviate', 'host', '127.0.0.1:6038'|'weaviate', 'host', 'weaviate:8080'|g" ${DEPLOY_DIR}/mysql-init/01_ruoyi-ai.sql
sed -i "s|'weaviate', 'protocol', 'http'|'weaviate', 'protocol', '${WEAVIATE_PROTOCOL}'|g" ${DEPLOY_DIR}/mysql-init/ruoyi-ai.sql sed -i "s|'weaviate', 'protocol', 'http'|'weaviate', 'protocol', '${WEAVIATE_PROTOCOL}'|g" ${DEPLOY_DIR}/mysql-init/01_ruoyi-ai.sql
sed -i "s|'weaviate', 'classname', 'LocalKnowledge'|'weaviate', 'classname', '${WEAVIATE_CLASSNAME}'|g" ${DEPLOY_DIR}/mysql-init/ruoyi-ai.sql sed -i "s|'weaviate', 'classname', 'LocalKnowledge'|'weaviate', 'classname', '${WEAVIATE_CLASSNAME}'|g" ${DEPLOY_DIR}/mysql-init/01_ruoyi-ai.sql
# Deploy using Docker Compose # Deploy using Docker Compose
echo "Deploying with Docker Compose..." echo "Deploying with Docker Compose..."

View File

@@ -0,0 +1,4 @@
INSERT INTO `chat_model` (`id`, `tenant_id`, `category`, `model_name`, `model_describe`, `model_price`, `model_type`, `model_show`, `system_prompt`, `api_host`, `api_key`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (1907575746601119746, '000000', 'vector', 'text-embedding-3-small', 'text-embedding-3-small', 0, '2', '0', NULL, 'https://api.pandarobot.chat/', 'sk-cdBlIaZcufccm2RaDe547cBd054d49C7B0782eCa72A0052b', 103, 1, '2025-04-03 07:27:54', 1, '2025-04-03 07:27:54', 'text-embedding-3-small');
INSERT INTO `chat_model` (`id`, `tenant_id`, `category`, `model_name`, `model_describe`, `model_price`, `model_type`, `model_show`, `system_prompt`, `api_host`, `api_key`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (1907576007017066497, '000000', 'vector', 'quentinz/bge-large-zh-v1.5', 'bge-large-zh-v1.5', 0, '2', '0', NULL, 'http://127.0.0.1:11434/', 'cdBlIaZcufccm2RaDe547cBd054d49C7B0782eCa72A0052b', 103, 1, '2025-04-03 07:28:56', 1, '2025-04-03 07:28:56', 'bge-large-zh-v1.5');
INSERT INTO `chat_model` (`id`, `tenant_id`, `category`, `model_name`, `model_describe`, `model_price`, `model_type`, `model_show`, `system_prompt`, `api_host`, `api_key`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (1907576806191362049, '000000', 'vector', 'nomic-embed-text', 'nomic-embed-text', 0, '2', '0', NULL, 'http://127.0.0.1:11434/', 'nomic-embed-text', 103, 1, '2025-04-03 07:32:06', 1, '2025-04-03 07:32:06', 'nomic-embed-text');
INSERT INTO `chat_model` (`id`, `tenant_id`, `category`, `model_name`, `model_describe`, `model_price`, `model_type`, `model_show`, `system_prompt`, `api_host`, `api_key`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (1907577073490161665, '000000', 'vector', 'snowflake-arctic-embed', 'snowflake-arctic-embed', 0, '2', '0', NULL, 'http://127.0.0.1:11434/', 'snowflake-arctic-embed', 103, 1, '2025-04-03 07:33:10', 1, '2025-04-03 07:33:10', 'snowflake-arctic-embed');

View File

@@ -0,0 +1,42 @@
/*
Navicat MySQL Data Transfer
Source Server : 129.211.24.7
Source Server Type : MySQL
Source Server Version : 50744
Source Host : 129.211.24.7:3306
Source Schema : ry-vue
Target Server Type : MySQL
Target Server Version : 50744
File Encoding : 65001
Date: 05/05/2025 15:01:08
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for chat_session
-- ----------------------------
DROP TABLE IF EXISTS `chat_session`;
CREATE TABLE `chat_session` (
`id` bigint(20) NOT NULL COMMENT '主键',
`user_id` bigint(20) NULL DEFAULT NULL COMMENT '用户id',
`session_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '会话标题',
`session_content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '会话内容',
`create_dept` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '部门',
`create_by` bigint(20) NULL DEFAULT NULL COMMENT '创建者',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_by` bigint(20) NULL DEFAULT NULL COMMENT '更新者',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '会话管理' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
ALTER TABLE `chat_message`
ADD COLUMN `session_id` bigint(20) NULL COMMENT '会话id' AFTER `id`;

View File

@@ -0,0 +1,4 @@
ALTER TABLE `chat_model`
ADD COLUMN `api_url` varchar(50) NULL COMMENT '请求后缀' AFTER `api_key`;
INSERT INTO `chat_config` (`id`, `category`, `config_name`, `config_value`, `config_dict`, `create_dept`, `create_time`, `create_by`, `update_by`, `update_time`, `remark`, `version`, `del_flag`, `update_ip`, `tenant_id`) VALUES (1779450794872414211, 'chat', 'apiUrl', 'v1/chat/completions', 'API 请求后缀', 103, '2024-04-14 18:05:05', '1', '1', '2025-04-23 22:29:04', NULL, NULL, '0', NULL, 0);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 MiB

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 563 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 392 KiB

BIN
image/wx-msg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

BIN
image/wx-msg2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

Some files were not shown because too many files have changed in this diff Show More