- v2.2.0.patch: Git补丁文件(56KB) - git_patch_deploy_v2.2.sh: 自动化部署脚本 - DEPLOY_v2.2.0.md: 完整部署指南 - DEPLOY_v2.2_CHECKLIST.md: 部署检查清单
9.3 KiB
9.3 KiB
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文件):
# 博查 Web Search API配置(必需!)
BOCHA_API_KEY=your_api_key_here
BOCHA_BASE_URL=https://api.bocha.cn
如果没有配置BOCHA_API_KEY:
- 新闻功能不会运行
- 不会影响其他功能
- 详情页会正常显示,只是没有新闻模块
3. 备份数据库
在1Panel中备份数据库:
# 或者使用命令行
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命令:
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终端:
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.py(News字段扩展)
- 更新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. 数据库验证
-- 检查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:
# 在服务器上
cd /opt/1panel/apps/zjpb
source venv/bin/activate
# 运行测试脚本
python test_news_feature.py
5. 日志检查
# 查看应用日志
./manage.sh logs
# 或者查看Gunicorn日志
tail -f logs/gunicorn_error.log
配置博查API(重要)
1. 获取API Key
如果还没有博查API Key:
- 访问 https://api.bocha.cn
- 注册并获取API Key
- 充值(建议至少10元,用于测试)
2. 配置.env文件
编辑生产服务器的.env文件:
nano /opt/1panel/apps/zjpb/.env
添加或更新:
# 博查 Web Search API配置
BOCHA_API_KEY=sk-your-actual-api-key-here
BOCHA_BASE_URL=https://api.bocha.cn
3. 重启应用
cd /opt/1panel/apps/zjpb
./manage.sh restart
定期任务配置(可选)
如果想定期批量更新所有网站的新闻,可以配置cron任务:
1. 编辑crontab
crontab -e
2. 添加定时任务
# 每天凌晨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. 查看定期任务日志
tail -f /opt/1panel/apps/zjpb/logs/cron_news.log
常见问题排查
1. 新闻不显示
检查项:
- BOCHA_API_KEY是否配置正确?
- API Key是否有余额?
- 网站是否有相关新闻?
- 查看应用日志是否有错误
测试命令:
cd /opt/1panel/apps/zjpb
source venv/bin/activate
python test_news_feature.py
2. 数据库迁移失败
症状:source_name或source_icon字段不存在
解决方案:
cd /opt/1panel/apps/zjpb
source venv/bin/activate
python migrate_news_fields.py
3. 页面报错
检查:
# 查看错误日志
./manage.sh logs
# 检查进程状态
./manage.sh status
# 重启应用
./manage.sh restart
4. 补丁应用失败
症状:git apply --check 失败
原因:可能有未提交的本地修改冲突
解决方案:
# 查看冲突文件
git status
# 备份本地修改
git stash
# 重新应用补丁
git apply v2.2.0.patch
# 如需恢复本地修改
git stash pop
回滚方案
如果部署后发现问题,可以快速回滚:
1. 回滚代码
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. 回滚数据库(如需要)
# 删除新添加的字段
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管理 | ✅ | ✅ |
| 标签生成 | ✅ | ✅ |
| 功能生成 | ✅ | ✅ |
| 详细介绍生成 | ✅ | ✅ |
| 新闻搜索 | ❌ | ✅ |
| 新闻展示 | ❌ | ✅ |
| 智能更新 | ❌ | ✅ |
| 新闻来源信息 | ❌ | ✅ |
| 定期任务 | ❌ | ✅ |
后续优化建议
- 新闻模块异步加载:使用AJAX加载新闻,不阻塞页面
- 缓存优化:使用Redis缓存新闻数据
- 全文搜索:支持在新闻内容中搜索关键词
- RSS订阅:为网站新闻生成RSS feed
- 新闻分类:根据新闻类型自动分类
- 新闻推荐:基于用户行为推荐相关新闻
完整部署命令(一键复制)
# 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
技术支持
如有问题,请检查:
- 应用日志:
./manage.sh logs - 数据库连接:检查.env中的DB_配置
- API配置:检查BOCHA_API_KEY是否正确
- 网络连接:确认服务器可以访问 api.bocha.cn
更新日志
v2.2.0 (2025-12-30)
- 新增博查Web Search API集成
- 新增智能新闻更新机制
- News模型扩展(source_name, source_icon)
- 新增网站详情页新闻模块
- 新增定期任务脚本和测试工具
- 优化详情页布局(新闻左侧,推荐右侧)
部署文档版本: v1.0 最后更新: 2025-12-30 维护者: ZJPB开发团队