Files
aiagents-stock/docs/Webhook功能完成说明.md

493 lines
11 KiB
Markdown
Raw Permalink 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.
# Webhook功能完成说明
## ✅ 功能概述
成功为系统添加了**Webhook通知功能**,支持钉钉和飞书群机器人推送。
## 📋 完成内容
### 1. 核心功能实现
#### ✅ notification_service.py - Webhook发送核心
**新增功能**
- `_send_webhook_notification()` - Webhook通知分发
- `_send_dingtalk_webhook()` - 钉钉消息发送
- `_send_feishu_webhook()` - 飞书消息发送
- `send_test_webhook()` - 测试Webhook配置
- `get_webhook_config_status()` - 获取配置状态
**支持特性**
- 📱 钉钉Markdown格式消息
- 📱 飞书交互式卡片消息
- ✅ 自动错误处理和重试
- ✅ 详细日志输出
#### ✅ sector_strategy_scheduler.py - 智策定时分析集成
**新增功能**
- `_send_webhook_direct()` - 直接发送webhook
- `_send_dingtalk()` - 发送钉钉消息
- `_send_feishu()` - 发送飞书消息
- `_format_webhook_summary()` - 格式化精简摘要
**特点**
- 同时支持邮件和Webhook
- 智能格式化报告(精简版)
- 分别统计发送成功数
- 完善的异常处理
### 2. 配置管理
#### ✅ config_manager.py - 配置项定义
**新增配置**
```python
EMAIL_ENABLED # 邮件通知开关
SMTP_SERVER # SMTP服务器
SMTP_PORT # SMTP端口
EMAIL_FROM # 发件人邮箱
EMAIL_PASSWORD # 邮箱授权码
EMAIL_TO # 收件人邮箱
WEBHOOK_ENABLED # Webhook开关
WEBHOOK_TYPE # Webhook类型(dingtalk/feishu)
WEBHOOK_URL # Webhook地址
```
**特性**
- 支持布尔、文本、密码、选择框类型
- 自动读取和写入.env文件
- 完整的配置验证
#### ✅ app.py - 可视化配置界面
**新增UI**
- 第4个标签页:"📢 通知配置"
- 左右分栏布局(邮件 | Webhook)
- 实时配置状态提示
- 完整的帮助说明
**交互特性**
- 启用开关自动禁用/启用输入框
- 配置完整性实时检查
- 保存后自动重新加载
- 显示当前.env文件内容
### 3. 通知集成
#### ✅ 实时监测模块
**集成点**`monitor_service.py``notification_service.send_notifications()`
**通知时机**
- ✅ 价格进入进场区间
- ✅ 价格达到止盈位
- ✅ 价格跌破止损位
- ✅ 量化交易执行
**发送逻辑**
```python
# 同时尝试Webhook和邮件
if webhook_enabled:
webhook_success = send_webhook()
if email_enabled:
email_success = send_email()
# 至少一个成功即为成功
```
#### ✅ 智策定时分析
**集成点**`sector_strategy_scheduler.py``_send_analysis_notification()`
**通知内容**
- 📊 板块多空预测(信心度≥7
- 🔄 潜力接力板块(TOP3
- 🌡️ 板块热度排行(TOP3
- 💡 核心投资机会
**消息格式**
- Webhook:精简版(适合移动端)
- 邮件:完整版(详细分析)
### 4. 完整文档
#### ✅ 新建文档
- **Webhook通知配置指南.md** - 完整配置教程
- 平台支持说明
- 钉钉配置步骤
- 飞书配置步骤
- 消息格式示例
- 故障排查指南
- 使用场景推荐
#### ✅ 更新文档
- **环境配置功能说明.md** - 添加通知配置章节
- **config_manager.py** - 配置定义完善
- **app.py** - UI界面完整
---
## 🎯 使用方法
### 第一步:配置Webhook
#### 方法A:Web界面配置(推荐)
1. 进入"⚙️ 环境配置"
2. 选择"📢 通知配置"标签页
3. 勾选"启用Webhook通知"
4. 选择类型(钉钉/飞书)
5. 填写Webhook URL
6. 点击"💾 保存配置"
#### 方法B:手动编辑.env
```env
WEBHOOK_ENABLED=true
WEBHOOK_TYPE=dingtalk
WEBHOOK_URL=https://oapi.dingtalk.com/robot/send?access_token=xxxxx
```
### 第二步:创建机器人
#### 钉钉机器人
1. 钉钉群 → 设置 → 智能群助手
2. 添加机器人 → 自定义
3. 安全设置:自定义关键词(股票、分析、智策)
4. 复制Webhook地址
#### 飞书机器人
1. 飞书群 → 设置 → 群机器人
2. 添加机器人 → 自定义机器人
3. 设置名称:AI股票分析系统
4. 复制Webhook地址
### 第三步:测试通知
#### 在实时监测中测试
1. 进入"📊 实时监测"
2. 滚动到"🔔 通知管理"
3. 点击"📱 发送测试Webhook"
4. 检查群消息
#### 在智策中测试
1. 进入"🎯 智策板块"
2. 展开"⏰ 定时分析设置"
3. 点击"🔄 立即运行一次"
4. 分析完成后查看群消息
---
## 📊 消息格式
### 实时监测通知(钉钉Markdown
```markdown
### 股票监测提醒
**股票代码**: 600519
**股票名称**: 贵州茅台
**提醒类型**: 进场提醒
**提醒内容**: 股票价格 1650.00 进入进场区间
**触发时间**: 2024-01-15 10:30:00
---
_此消息由AI股票分析系统自动发送_
```
### 智策分析通知(钉钉Markdown
```markdown
### 智策板块分析报告
**分析时间**: 2024-01-15 09:00
#### 📊 板块多空
**看多**: 人工智能(8分)、新能源汽车(8分)、半导体(7分)
**看空**: 地产开发(7分)
#### 🔄 潜力接力板块
- 半导体: 关注突破信号
- 军工: 情绪升温,把握机会
#### 🌡️ 热度TOP3
1. 人工智能 - 95分
2. 新能源汽车 - 92分
3. 半导体 - 88分
#### 💡 核心机会
重点关注人工智能、新能源汽车产业链,半导体板块有轮动潜力...
---
*由智策AI系统自动生成*
```
---
## 🔧 技术实现
### 1. Webhook API调用
#### 钉钉API
```python
import requests
data = {
"msgtype": "markdown",
"markdown": {
"title": "标题",
"text": "Markdown格式内容"
}
}
response = requests.post(webhook_url, json=data, timeout=10)
result = response.json()
success = result.get('errcode') == 0
```
#### 飞书API
```python
import requests
data = {
"msg_type": "interactive", # 或 "text"
"card": {
# 交互式卡片内容
}
}
response = requests.post(webhook_url, json=data, timeout=10)
result = response.json()
success = result.get('code') == 0
```
### 2. 通知流程
```
触发条件
检查配置
├─ Webhook启用?
│ ├─ 是 → 发送Webhook
│ └─ 否 → 跳过
└─ 邮件启用?
├─ 是 → 发送邮件
└─ 否 → 跳过
记录日志
├─ 成功:✓ 发送成功
├─ 失败:✗ 发送失败 + 错误信息
└─ 跳过:⚠️ 未配置
```
### 3. 配置管理
```
.env文件
config_manager读取
notification_service加载
实时重新加载(dotenv
Streamlit UI显示
```
---
## 💡 使用场景
### 场景1:日内交易团队协作
**配置**
- 创建钉钉/飞书团队群
- 配置Webhook推送
- 设置实时监测
**效果**
- 股票触发 → 群内实时通知
- 团队讨论 → 快速决策
- 消息记录 → 便于复盘
### 场景2:每日策略推送
**配置**
- 启用智策定时分析
- 配置Webhook + 邮件
- 设置每天9:00运行
**效果**
- 9:00自动分析 → 策略报告
- Webhook推送 → 快速查看
- 邮件发送 → 详细存档
### 场景3:个人投资提醒
**配置**
- 创建个人钉钉/飞书群
- 仅添加机器人
- 配置实时监测
**效果**
- 价格波动 → 手机通知
- 随时随地 → 及时查看
- 不错过 → 投资机会
---
## ⚠️ 注意事项
### 1. 安全配置
#### 钉钉关键词设置
- **推荐**:股票、分析、智策、监测
- 系统消息已包含关键词
- 避免使用过于通用的词
#### Webhook地址保护
- ❌ 不要公开分享
- ❌ 不要提交到版本控制
- ✅ 使用环境变量管理
- ✅ 定期更换地址
### 2. 消息频率
**平台限制**
- 钉钉:20条/分钟
- 飞书:50条/分钟
**系统控制**
- 实时监测:重复通知间隔60分钟
- 智策分析:每天1次
- 不会触发限流
### 3. 网络依赖
- 需要稳定网络连接
- 超时时间:10秒
- 失败不影响核心功能
- 错误会记录日志
### 4. 配置生效
- 修改配置后需重启应用
- 或使用"💾 保存配置"自动重载
- 建议先测试再正式使用
---
## 🐛 故障排查
### 问题1:未收到Webhook消息
**检查清单**
1.`WEBHOOK_ENABLED=true`
2. ✅ Webhook URL完整正确
3. ✅ 网络连接正常
4. ✅ 机器人未被移出群
5. ✅ 钉钉关键词设置正确
**解决方案**
```bash
# 1. 查看系统日志
📱 正在发送钉钉Webhook...
✅ 钉钉Webhook发送成功
# 2. 使用测试功能
点击"📱 发送测试Webhook"
# 3. 检查配置
进入"⚙️ 环境配置""📢 通知配置"
```
### 问题2:钉钉关键词不匹配
**错误信息**`errcode: 310000`
**解决方案**
- 添加关键词:股票、分析、智策
- 系统消息已包含这些词
- 检查是否误删关键词
### 问题3:飞书消息格式异常
**原因**:选择了错误的类型
**解决方案**
- 确认选择 `feishu`
- 重新保存配置
- 测试验证
---
## 📈 功能对比
| 功能 | 邮件通知 | Webhook通知 | 界面通知 |
|------|---------|------------|----------|
| **实时性** | 延迟1-5秒 | 即时推送 | 需打开页面 |
| **详细度** | 完整详细 | 精简摘要 | 简单提示 |
| **查看方式** | 邮箱APP | 钉钉/飞书 | Web界面 |
| **历史记录** | 永久保存 | 群消息历史 | 临时显示 |
| **团队协作** | 转发分享 | 群内讨论 | 单人查看 |
| **移动端** | 邮箱APP | 原生APP | 浏览器 |
| **推荐场景** | 详细存档 | 快速查看 | 即时提示 |
---
## 🚀 未来规划
### v1.1.0 (计划中)
- [ ] 支持多个Webhook URL
- [ ] 企业微信机器人支持
- [ ] Server酱推送支持
- [ ] 消息模板自定义
### v1.2.0 (规划中)
- [ ] 消息去重和合并
- [ ] 智能推送时段设置
- [ ] 重要消息@提醒
- [ ] 消息统计和分析
---
## 📚 相关文档
- [Webhook通知配置指南.md](Webhook通知配置指南.md) - 详细配置教程
- [环境配置功能说明.md](环境配置功能说明.md) - 完整配置说明
- [实时监测优化说明.md](实时监测优化说明.md) - 实时监测功能
- [智策定时分析使用指南.md](智策定时分析使用指南.md) - 智策功能
---
## ✅ 验证清单
完成后请验证:
- [ ] Python环境正常
- [ ] requests库已安装
- [ ] Webhook配置已保存
- [ ] 机器人已创建
- [ ] 测试Webhook成功
- [ ] 收到测试消息
- [ ] 实时监测推送正常
- [ ] 智策分析推送正常
- [ ] 配置界面显示正常
---
## 🎉 总结
Webhook通知功能已全面完成,主要特点:
1. **双平台支持** - 钉钉和飞书群机器人
2. **灵活配置** - Web界面或.env文件
3. **全面集成** - 实时监测和智策分析
4. **可靠传输** - 错误处理和日志记录
5. **完整文档** - 配置指南和故障排查
现在您可以通过钉钉或飞书接收股票分析通知了!📱🔔
---
**Webhook通知功能** - v1.0.0
完成时间:2025-01-15