Files
schoolNews/doc/部署.md

182 lines
4.9 KiB
Markdown
Raw Normal View History

2025-11-26 16:03:06 +08:00
# 校园新闻系统部署
## 加载镜像
### 镜像目录结构
---docker 根目录
|---dify # dify的docker目录
|---dify 官方内容
|---schoolNews # schoolNews的docker目录
|---dify # dify工作流的2个yml
|---config # 前后端配置文件
|---init-db # 数据库标记
|---mysql # mysql配置
|---redis # redis配置
|---nginx # nginx配置
|---volumes # 数据卷
|---images # 镜像
|---docker-compose.yml # docker-compose配置
|---init-volumes.sh # 初始化数据卷
### 后端服务镜像
镜像来源由星洋智慧提供
2025-11-26 16:04:44 +08:00
超级管理员账号密码superadmin 123456
2025-11-26 16:03:06 +08:00
#### 镜像加载
```bash
2025-11-27 17:59:04 +08:00
# 递归查找指定目录下的所有镜像文件并加载 schoolNews修改镜像增加标签latest用于docker compose启动
find .docker/schoolNews/images -type f \( -name "*.tar" -o -name "*.tar.gz" -o -name "*.tgz" \) -exec sh -c '
docker load -i "$1"
# 获取刚导入的镜像名称和标签
IMAGE_INFO=$(docker images --format "{{.Repository}}:{{.Tag}}" | tail -n1)
if [ -n "$IMAGE_INFO" ]; then
# 分离仓库名和标签
REPO=$(echo "$IMAGE_INFO" | cut -d: -f1)
TAG=$(echo "$IMAGE_INFO" | cut -d: -f2)
# 只有当标签不是 latest 时才添加新标签
if [ "$TAG" != "latest" ]; then
docker tag "$IMAGE_INFO" "$REPO:latest"
echo "Tagged $IMAGE_INFO as $REPO:latest"
fi
fi
' sh {} \;
# 单独镜像加标签
docker tag school-news-xxx:yyyyMMdd_HHmmss school-news-xxx:latest
2025-11-26 16:03:06 +08:00
```
#### 服务启动
```bash
cd docker/schoolNews
docker-compose up -d
```
#### 服务停止
```bash
cd docker/schoolNews
docker-compose down
```
#### 服务重启
```bash
cd docker/schoolNews
docker-compose restart
```
### dify镜像启动
> 会进行镜像拉取
```bash
cd docker/dify
docker-compose up -d
```
## 配置dify工作流
> dify登录url 本地ip:8000
### 1. 注册账号
![alt text](部署.assets/image.png)
### 2. 导入工作流
工作流的yaml文件在dify目录下
![alt text](部署.assets/image-1.png)
安装工作流所需插件。
插件说明:
1. 安思派:工作流联网搜索插件
2. 硅基流动: LLM插件。应该替换成本地部署的模型内容
![alt text](部署.assets/image-2.png)
APIKEY授权
![alt text](部署.assets/image-3.png)
### 3. 创建一个测试知识库开启apikey
> APIKEY作用
给后端服务提供访问dify知识库内容的key权限
![alt text](部署.assets/image-4.png)
![alt text](部署.assets/image-5.png)
![alt text](部署.assets/image-6.png)
保存好知识库的apikey通常以dataset开头。所有知识库共用。
### 4.修改动态知识库检索工作流
![alt text](部署.assets/image-7.png)
修改点有2个
1. 修改http节点post请求的url内容。替换成实际的 ip:8000
2. 修改Authorization的值替换为 Bearer + 空格 + 知识库的apikey
![alt text](部署.assets/image-8.png)
#### 测试
如图即正常
![alt text](部署.assets/image-9.png)
![alt text](部署.assets/image-10.png)
#### 发布
要同时发布为工具,供工作流使用
![alt text](部署.assets/image-11.png)
### 5. 修改思政小帮手工作流
#### 删除“动态知识库检索”节点,重新添加
![alt text](部署.assets/image-12.png)
![alt text](部署.assets/image-13.png)
#### 修改节点输入、输出相关节点的引用
修改的输入参数有2个第1个是对话变量的datasets。表示该词对话中使用了那些知识库。
第2个是对话变量的query。表示用户输入的对话内容。
![alt text](部署.assets/image-14.png)
![alt text](部署.assets/image-15.png)
![alt text](部署.assets/image-16.png)
#### 修改知识库处理节点的引用
直接引用“动态知识库检索”的输出内容text即可
![alt text](部署.assets/image-17.png)
#### 测试发布
正常对话即正确
![alt text](部署.assets/image-18.png)
#### 获取工作流apikey
> 该apikey用于前端进行对话指定使用该工作流
![alt text](部署.assets/image-19.png)
### 6. 配置后端dify配置
```sql
-- 更新dify.apiBaseUrl
UPDATE `school_news`.`tb_sys_config` SET `config_value` = '实际ip:8000' WHERE `config_key` = 'dify.apiBaseUrl';
-- 更新dify.apiKey
UPDATE `school_news`.`tb_sys_config` SET `config_value` = '工作流的apikey' WHERE `config_key` = 'dify.apiKey';
-- 更新dify.dify.knowledgeApiKey
UPDATE `school_news`.`tb_sys_config` SET `config_value` = '知识库的apikey' WHERE `config_key` = 'dify.dify.knowledgeApiKey';
-- 更新智能体配置的api_key。该api_key的编辑权限前端未开放
UPDATE `school_news`.`tb_ai_agent_config` SET `dify_api_key`='工作流的apikey' WHERE `id` = 'agent_default_001';
```
### 7. 重启后端服务
即可进行对话
![alt text](部署.assets/image-20.png)
## 系统配置
### 消息模块配置
#### 短信
申请阿里云的短信服务,配置到后端
![alt text](部署.assets/image-21.png)
#### 邮箱
开启邮箱服务
![alt text](部署.assets/image-22.png)