Files
zjpb.net/DEPLOY_v2.2.0.md
Jowe 2e9f634caa docs: 添加v2.2.0部署文档和脚本
- v2.2.0.patch: Git补丁文件(56KB)
- git_patch_deploy_v2.2.sh: 自动化部署脚本
- DEPLOY_v2.2.0.md: 完整部署指南
- DEPLOY_v2.2_CHECKLIST.md: 部署检查清单
2025-12-30 22:34:24 +08:00

458 lines
9.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ZJPB v2.2.0 Git Patch 部署指南
## 版本信息
- **版本号**: v2.2.0
- **发布日期**: 2025-12-30
- **主要功能**: 博查新闻搜索集成
---
## 新功能概述
### 1. 博查Web Search API集成
- 自动获取网站相关新闻
- 支持手动和批量获取
- 新闻来源展示(网站名称+图标)
### 2. 智能新闻更新机制
- **每日首次访问触发更新**用户访问网站详情页时如果今天还没有更新过新闻自动获取最新3条
- **历史新闻保留**:如果没有访问,保留历史新闻不会被删除
- **一周内新闻**:只获取最近一周的相关新闻
- **自动去重**根据URL防止重复新闻
### 3. 数据库扩展
- News表新增字段
- `source_name`: 新闻来源网站名称
- `source_icon`: 新闻来源网站图标URL
### 4. 用户界面优化
- 网站详情页新增"相关新闻"模块
- 新闻展示包括:标题、摘要、来源、发布时间、阅读链接
- "相似推荐"移至右侧边栏,界面更加清晰
### 5. 管理功能
- 后台新闻管理界面优化
- 支持批量获取所有网站的新闻
- 定期任务脚本 `fetch_news_cron.py`
---
## 部署前准备
### 1. 环境要求
- Python 3.8+
- MySQL 5.7+
- Git已配置
- 虚拟环境已创建
### 2. 配置检查
**必需配置**(生产服务器.env文件
```bash
# 博查 Web Search API配置必需
BOCHA_API_KEY=your_api_key_here
BOCHA_BASE_URL=https://api.bocha.cn
```
如果没有配置BOCHA_API_KEY
- 新闻功能不会运行
- 不会影响其他功能
- 详情页会正常显示,只是没有新闻模块
### 3. 备份数据库
在1Panel中备份数据库
```bash
# 或者使用命令行
mysqldump -h 112.124.42.38 -u ai_nav -p ai_nav > backup_before_v2.2_$(date +%Y%m%d).sql
```
---
## 部署步骤
### 方法一Git Patch部署推荐
#### 1. 上传文件到服务器
需要上传2个文件到 `/opt/1panel/apps/zjpb/`
- `v2.2.0.patch` (56KB)
- `git_patch_deploy_v2.2.sh`
**使用1Panel文件管理器**或**SCP命令**
```bash
scp v2.2.0.patch root@your-server:/opt/1panel/apps/zjpb/
scp git_patch_deploy_v2.2.sh root@your-server:/opt/1panel/apps/zjpb/
```
#### 2. 执行部署脚本
SSH登录服务器或使用1Panel终端
```bash
cd /opt/1panel/apps/zjpb
# 赋予执行权限
chmod +x git_patch_deploy_v2.2.sh
# 执行部署
./git_patch_deploy_v2.2.sh
```
#### 3. 脚本自动完成的操作
```
1. 停止应用
2. 检查Git状态
3. 备份未提交的修改(如有)
4. 应用v2.2.0补丁
- 添加NewsSearcher工具类
- 更新app.py新闻路由+智能更新)
- 更新models.pyNews字段扩展
- 更新config.py博查API配置
- 更新detail_new.html新闻展示UI
- 添加数据库迁移脚本
- 添加测试脚本和定期任务脚本
5. 提交到Git
6. 激活虚拟环境
7. 安装依赖
8. 运行数据库迁移添加source_name和source_icon字段
9. 重启应用
10. 检查状态
```
---
## 部署后验证
### 1. 前台验证
**访问网站详情页**
```
http://your-domain.com/site/xxxxxxxx
```
检查项:
- [ ] 页面正常加载
- [ ] 如果配置了BOCHA_API_KEY首次访问会自动获取新闻
- [ ] "相关新闻"模块显示在左侧主栏
- [ ] "相似推荐"显示在右侧边栏
- [ ] 新闻显示来源名称和图标
- [ ] 点击新闻标题可以跳转到原文
### 2. 后台验证
**登录后台管理**
```
http://your-domain.com/admin/login
```
检查项:
- [ ] 进入"新闻管理" `/admin/newsadmin/`
- [ ] 列表显示包含source_name和source_icon
- [ ] 可以搜索和过滤新闻
- [ ] 编辑新闻时可以看到新字段
### 3. 数据库验证
```sql
-- 检查news表结构
DESCRIBE news;
-- 应该看到新字段
-- source_name VARCHAR(100)
-- source_icon VARCHAR(500)
-- 检查现有新闻数据
SELECT id, title, source_name, source_icon
FROM news
ORDER BY created_at DESC
LIMIT 5;
```
### 4. API测试可选
如果配置了BOCHA_API_KEY可以测试API
```bash
# 在服务器上
cd /opt/1panel/apps/zjpb
source venv/bin/activate
# 运行测试脚本
python test_news_feature.py
```
### 5. 日志检查
```bash
# 查看应用日志
./manage.sh logs
# 或者查看Gunicorn日志
tail -f logs/gunicorn_error.log
```
---
## 配置博查API重要
### 1. 获取API Key
如果还没有博查API Key
1. 访问 https://api.bocha.cn
2. 注册并获取API Key
3. 充值建议至少10元用于测试
### 2. 配置.env文件
编辑生产服务器的.env文件
```bash
nano /opt/1panel/apps/zjpb/.env
```
添加或更新:
```bash
# 博查 Web Search API配置
BOCHA_API_KEY=sk-your-actual-api-key-here
BOCHA_BASE_URL=https://api.bocha.cn
```
### 3. 重启应用
```bash
cd /opt/1panel/apps/zjpb
./manage.sh restart
```
---
## 定期任务配置(可选)
如果想定期批量更新所有网站的新闻可以配置cron任务
### 1. 编辑crontab
```bash
crontab -e
```
### 2. 添加定时任务
```bash
# 每天凌晨2点更新前10个网站的新闻每个网站获取3条
0 2 * * * cd /opt/1panel/apps/zjpb && source venv/bin/activate && python fetch_news_cron.py --limit 10 --count 3 >> logs/cron_news.log 2>&1
```
### 3. 查看定期任务日志
```bash
tail -f /opt/1panel/apps/zjpb/logs/cron_news.log
```
---
## 常见问题排查
### 1. 新闻不显示
**检查项**
- BOCHA_API_KEY是否配置正确
- API Key是否有余额
- 网站是否有相关新闻?
- 查看应用日志是否有错误
**测试命令**
```bash
cd /opt/1panel/apps/zjpb
source venv/bin/activate
python test_news_feature.py
```
### 2. 数据库迁移失败
**症状**source_name或source_icon字段不存在
**解决方案**
```bash
cd /opt/1panel/apps/zjpb
source venv/bin/activate
python migrate_news_fields.py
```
### 3. 页面报错
**检查**
```bash
# 查看错误日志
./manage.sh logs
# 检查进程状态
./manage.sh status
# 重启应用
./manage.sh restart
```
### 4. 补丁应用失败
**症状**`git apply --check` 失败
**原因**:可能有未提交的本地修改冲突
**解决方案**
```bash
# 查看冲突文件
git status
# 备份本地修改
git stash
# 重新应用补丁
git apply v2.2.0.patch
# 如需恢复本地修改
git stash pop
```
---
## 回滚方案
如果部署后发现问题,可以快速回滚:
### 1. 回滚代码
```bash
cd /opt/1panel/apps/zjpb
./manage.sh stop
# 回滚到上一个提交v2.1.0
git reset --hard HEAD~2
# 如果有stash备份恢复它
git stash list
git stash pop
./manage.sh start
```
### 2. 回滚数据库(如需要)
```bash
# 删除新添加的字段
mysql -h 112.124.42.38 -u ai_nav -p ai_nav
ALTER TABLE news DROP COLUMN source_name;
ALTER TABLE news DROP COLUMN source_icon;
```
---
## 性能说明
### 1. 智能更新策略
- **触发条件**:用户首次访问网站详情页 + 今天还没更新过新闻
- **更新频率**:每个网站每天最多更新一次
- **查询数量**每次获取3条新闻
- **时间范围**:最近一周内的新闻
- **API调用**:只有满足更新条件时才会调用
### 2. 对用户体验的影响
- **首次加载**如果触发新闻更新页面加载时间增加1-3秒
- **后续访问**:使用缓存的新闻,无额外延迟
- **错误处理**API调用失败不影响页面正常显示
- **异步加载**:后续可优化为异步加载新闻模块
### 3. 成本估算
- 假设每天100个网站被访问每个网站触发一次新闻更新
- 每次查询约0.01元参考博查API定价
- 每天成本约1元每月约30元
---
## 版本对比
| 功能 | v2.1.0 | v2.2.0 |
|------|--------|--------|
| Prompt管理 | ✅ | ✅ |
| 标签生成 | ✅ | ✅ |
| 功能生成 | ✅ | ✅ |
| 详细介绍生成 | ✅ | ✅ |
| 新闻搜索 | ❌ | ✅ |
| 新闻展示 | ❌ | ✅ |
| 智能更新 | ❌ | ✅ |
| 新闻来源信息 | ❌ | ✅ |
| 定期任务 | ❌ | ✅ |
---
## 后续优化建议
1. **新闻模块异步加载**使用AJAX加载新闻不阻塞页面
2. **缓存优化**使用Redis缓存新闻数据
3. **全文搜索**:支持在新闻内容中搜索关键词
4. **RSS订阅**为网站新闻生成RSS feed
5. **新闻分类**:根据新闻类型自动分类
6. **新闻推荐**:基于用户行为推荐相关新闻
---
## 完整部署命令(一键复制)
```bash
# SSH登录服务器后执行
cd /opt/1panel/apps/zjpb
# 检查上传的文件
ls -lh v2.2.0.patch git_patch_deploy_v2.2.sh
# 赋予执行权限
chmod +x git_patch_deploy_v2.2.sh
# 执行部署
./git_patch_deploy_v2.2.sh
# 配置API Key如果还没配置
nano .env
# 添加BOCHA_API_KEY=your-key-here
# 重启应用(如果修改了.env
./manage.sh restart
# 验证部署
./manage.sh status
git log --oneline -3
```
---
## 技术支持
如有问题,请检查:
1. 应用日志:`./manage.sh logs`
2. 数据库连接:检查.env中的DB_配置
3. API配置检查BOCHA_API_KEY是否正确
4. 网络连接:确认服务器可以访问 api.bocha.cn
---
## 更新日志
### v2.2.0 (2025-12-30)
- 新增博查Web Search API集成
- 新增智能新闻更新机制
- News模型扩展source_name, source_icon
- 新增网站详情页新闻模块
- 新增定期任务脚本和测试工具
- 优化详情页布局(新闻左侧,推荐右侧)
---
**部署文档版本**: v1.0
**最后更新**: 2025-12-30
**维护者**: ZJPB开发团队